From 3185f0046d2b8363779f1e339d590c158f610daf Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Fri, 31 Aug 2007 15:24:43 -0400 Subject: [PATCH 001/139] Bug#15776: 32-bit signed int used for length of blob Based on contributed patch from Martin Friebe, CLA from 2007-02-24. The parser lacked support for field sizes after signed long, when it should extend to 2**32-1. Now, we correct that limitation, and also make the error handling consistent for casts. --- mysql-test/r/type_blob.result | 147 +++++++++++++++++++++++++++++++ mysql-test/t/type_blob.test | 161 ++++++++++++++++++++++++++++++++++ sql/field.cc | 16 +++- sql/item_create.cc | 57 +++++++++++- sql/share/errmsg.txt | 60 ++++++------- sql/sql_yacc.yy | 55 ++++++------ sql/unireg.h | 1 + 7 files changed, 434 insertions(+), 63 deletions(-) diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result index c72ee005428..599a2224472 100644 --- a/mysql-test/r/type_blob.result +++ b/mysql-test/r/type_blob.result @@ -807,4 +807,151 @@ set @@sql_mode='TRADITIONAL'; create table t1 (a text default ''); ERROR 42000: BLOB/TEXT column 'a' can't have a default value set @@sql_mode=''; +create table b15776 (data blob(2147483647)); +drop table b15776; +create table b15776 (data blob(-1)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1))' at line 1 +create table b15776 (data blob(2147483648)); +drop table b15776; +create table b15776 (data blob(4294967294)); +drop table b15776; +create table b15776 (data blob(4294967295)); +drop table b15776; +create table b15776 (data blob(4294967296)); +ERROR 42000: Display width out of range for column 'data' (max = 4294967295) +CREATE TABLE b15776 (a blob(2147483647), b blob(2147483648), c blob(4294967295), a1 text(2147483647), b1 text(2147483648), c1 text(4294967295) ); +show columns from b15776; +Field Type Null Key Default Extra +a longblob YES NULL +b longblob YES NULL +c longblob YES NULL +a1 longtext YES NULL +b1 longtext YES NULL +c1 longtext YES NULL +drop table b15776; +CREATE TABLE b15776 (a blob(4294967296)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a text(4294967296)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a blob(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a text(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a int(0)); +INSERT INTO b15776 values (NULL), (1), (42), (654); +SELECT * from b15776 ORDER BY a; +a +NULL +1 +42 +654 +DROP TABLE b15776; +CREATE TABLE b15776 (a int(-1)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1))' at line 1 +CREATE TABLE b15776 (a int(255)); +DROP TABLE b15776; +CREATE TABLE b15776 (a int(256)); +ERROR 42000: Display width out of range for column 'a' (max = 255) +CREATE TABLE b15776 (data blob(-1)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1))' at line 1 +CREATE TABLE b15776 (a char(2147483647)); +ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead +CREATE TABLE b15776 (a char(2147483648)); +ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead +CREATE TABLE b15776 (a char(4294967295)); +ERROR 42000: Column length too big for column 'a' (max = 255); use BLOB or TEXT instead +CREATE TABLE b15776 (a char(4294967296)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a year(4294967295)); +INSERT INTO b15776 VALUES (42); +SELECT * FROM b15776; +a +2042 +DROP TABLE b15776; +CREATE TABLE b15776 (a year(4294967296)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a year(0)); +DROP TABLE b15776; +CREATE TABLE b15776 (a year(-2)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2))' at line 1 +CREATE TABLE b15776 (a timestamp(4294967294)); +Warnings: +Warning 1287 'TIMESTAMP(4294967294)' is deprecated; use 'TIMESTAMP' instead +DROP TABLE b15776; +CREATE TABLE b15776 (a timestamp(4294967295)); +ERROR 42000: Display width out of range for column 'a' (max = 255) +CREATE TABLE b15776 (a timestamp(4294967296)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a timestamp(-2)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2))' at line 1 +CREATE TABLE b15776 (a int(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a char(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a year(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a timestamp(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 select cast(null as char(4294967295)); +show columns from b15776; +Field Type Null Key Default Extra +cast(null as char(4294967295)) char(0) YES NULL +drop table b15776; +CREATE TABLE b15776 select cast(null as nchar(4294967295)); +show columns from b15776; +Field Type Null Key Default Extra +cast(null as nchar(4294967295)) char(0) YES NULL +drop table b15776; +CREATE TABLE b15776 select cast(null as binary(4294967295)); +show columns from b15776; +Field Type Null Key Default Extra +cast(null as binary(4294967295)) binary(0) YES NULL +drop table b15776; +explain select cast(1 as char(4294967295)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used +explain select cast(1 as nchar(4294967295)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used +explain select cast(1 as binary(4294967295)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used +explain select cast(1 as char(4294967296)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select cast(1 as nchar(4294967296)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select cast(1 as binary(4294967296)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select cast(1 as decimal(-1)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1))' at line 1 +explain select cast(1 as decimal(64, 30)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used +explain select cast(1 as decimal(64, 999999999999999999999999999999)); +Got one of the listed errors +explain select cast(1 as decimal(4294967296)); +Got one of the listed errors +explain select cast(1 as decimal(999999999999999999999999999999999999)); +Got one of the listed errors +explain select convert(1, char(4294967295)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used +explain select convert(1, char(4294967296)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select convert(1, char(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select convert(1, nchar(4294967295)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used +explain select convert(1, nchar(4294967296)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select convert(1, nchar(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select convert(1, binary(4294967295)); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used +explain select convert(1, binary(4294967296)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) +explain select convert(1, binary(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +ERROR 42000: Display width out of range for column 'cast as char' (max = 4294967295) End of 5.0 tests diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test index ba9f374a24c..097c749f977 100644 --- a/mysql-test/t/type_blob.test +++ b/mysql-test/t/type_blob.test @@ -436,4 +436,165 @@ set @@sql_mode='TRADITIONAL'; create table t1 (a text default ''); set @@sql_mode=''; +# +# Bug#15776: 32-bit signed int used for length of blob +# """LONGBLOB: A BLOB column with a maximum length of 4,294,967,295 or 4GB.""" +# +# Conditions should be in this order: +# A size is not in the allowed bounds. +# If the type is char-ish AND size is within the max blob size: +# raise ER_TOO_BIG_FIELDLENGTH (suggest using BLOB) +# If size is too small: +# raise ER_PARSE_ERROR +# raise ER_TOO_BIG_DISPLAYWIDTH + +# BLOB and TEXT types +create table b15776 (data blob(2147483647)); +drop table b15776; +--error ER_PARSE_ERROR +create table b15776 (data blob(-1)); +create table b15776 (data blob(2147483648)); +drop table b15776; +create table b15776 (data blob(4294967294)); +drop table b15776; +create table b15776 (data blob(4294967295)); +drop table b15776; +--error ER_TOO_BIG_DISPLAYWIDTH +create table b15776 (data blob(4294967296)); + +CREATE TABLE b15776 (a blob(2147483647), b blob(2147483648), c blob(4294967295), a1 text(2147483647), b1 text(2147483648), c1 text(4294967295) ); +show columns from b15776; +drop table b15776; + +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a blob(4294967296)); +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a text(4294967296)); +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a blob(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a text(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); + +# Int types +# "Another extension is supported by MySQL for optionally specifying the +# display width of integer data types in parentheses following the base keyword +# for the type (for example, INT(4)). This optional display width is used to +# display integer values having a width less than the width specified for the +# column by left-padding them with spaces." § Numeric Types +CREATE TABLE b15776 (a int(0)); # 0 is special case, means default size +INSERT INTO b15776 values (NULL), (1), (42), (654); +SELECT * from b15776 ORDER BY a; +DROP TABLE b15776; +--error ER_PARSE_ERROR +CREATE TABLE b15776 (a int(-1)); +CREATE TABLE b15776 (a int(255)); +DROP TABLE b15776; +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a int(256)); +--error ER_PARSE_ERROR +CREATE TABLE b15776 (data blob(-1)); + +# Char types +# Recommend BLOB +--error ER_TOO_BIG_FIELDLENGTH +CREATE TABLE b15776 (a char(2147483647)); +--error ER_TOO_BIG_FIELDLENGTH +CREATE TABLE b15776 (a char(2147483648)); +--error ER_TOO_BIG_FIELDLENGTH +CREATE TABLE b15776 (a char(4294967295)); +# Even BLOB won't hold +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a char(4294967296)); + + +# Other numeric-ish types +## For year, widths not "2" or "4" are silently rewritten to "4". But +## When we complain about it, we say that the max is 255. We may be +## talking about different things. It's confusing. +CREATE TABLE b15776 (a year(4294967295)); +INSERT INTO b15776 VALUES (42); +SELECT * FROM b15776; +DROP TABLE b15776; +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a year(4294967296)); +CREATE TABLE b15776 (a year(0)); # 0 is special case, means default size +DROP TABLE b15776; +--error ER_PARSE_ERROR +CREATE TABLE b15776 (a year(-2)); + +## For timestamp, we silently rewrite widths to 14 or 19. +CREATE TABLE b15776 (a timestamp(4294967294)); +DROP TABLE b15776; +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a timestamp(4294967295)); +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a timestamp(4294967296)); +--error ER_PARSE_ERROR +CREATE TABLE b15776 (a timestamp(-2)); + + +# We've already tested the case, but this should visually show that +# widths that are too large to be interpreted cause DISPLAYWIDTH errors. +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a int(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a char(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a year(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +--error ER_TOO_BIG_DISPLAYWIDTH +CREATE TABLE b15776 (a timestamp(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); + +## Do not select, too much memory needed. +CREATE TABLE b15776 select cast(null as char(4294967295)); +show columns from b15776; +drop table b15776; +CREATE TABLE b15776 select cast(null as nchar(4294967295)); +show columns from b15776; +drop table b15776; +CREATE TABLE b15776 select cast(null as binary(4294967295)); +show columns from b15776; +drop table b15776; + +explain select cast(1 as char(4294967295)); +explain select cast(1 as nchar(4294967295)); +explain select cast(1 as binary(4294967295)); + +--error ER_TOO_BIG_DISPLAYWIDTH +explain select cast(1 as char(4294967296)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select cast(1 as nchar(4294967296)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select cast(1 as binary(4294967296)); + +--error ER_PARSE_ERROR +explain select cast(1 as decimal(-1)); +explain select cast(1 as decimal(64, 30)); +# It's not as important which errors are raised for these, since the +# limit is nowhere near 3**32. We may fix these eventually to take +# 4294967295 and still reject it because it's greater than 64 or 30, +# but that's not a high priority and the parser needn't worry about +# such a weird case. +--error ER_TOO_BIG_SCALE,ER_PARSE_ERROR +explain select cast(1 as decimal(64, 999999999999999999999999999999)); +--error ER_TOO_BIG_PRECISION,ER_PARSE_ERROR +explain select cast(1 as decimal(4294967296)); +--error ER_TOO_BIG_PRECISION,ER_PARSE_ERROR +explain select cast(1 as decimal(999999999999999999999999999999999999)); + +explain select convert(1, char(4294967295)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select convert(1, char(4294967296)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select convert(1, char(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +explain select convert(1, nchar(4294967295)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select convert(1, nchar(4294967296)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select convert(1, nchar(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); +explain select convert(1, binary(4294967295)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select convert(1, binary(4294967296)); +--error ER_TOO_BIG_DISPLAYWIDTH +explain select convert(1, binary(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); + --echo End of 5.0 tests diff --git a/sql/field.cc b/sql/field.cc index 3f74210807b..2950f349580 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -8395,8 +8395,20 @@ bool create_field::init(THD *thd, char *fld_name, enum_field_types fld_type, (fld_type_modifier & NOT_NULL_FLAG) && fld_type != FIELD_TYPE_TIMESTAMP) flags|= NO_DEFAULT_VALUE_FLAG; - if (fld_length && !(length= (uint) atoi(fld_length))) - fld_length= 0; /* purecov: inspected */ + if (fld_length != 0) + { + errno= 0; + length= strtoul(fld_length, NULL, 10); + if (errno != 0) + { + my_error(ER_TOO_BIG_DISPLAYWIDTH, MYF(0), fld_name, MAX_FIELD_BLOBLENGTH); + DBUG_RETURN(TRUE); + } + + if (length == 0) + fld_length= 0; /* purecov: inspected */ + } + sign_len= fld_type_modifier & UNSIGNED_FLAG ? 0 : 1; switch (fld_type) { diff --git a/sql/item_create.cc b/sql/item_create.cc index 561613032bc..b7a9a1d7feb 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -464,8 +464,42 @@ Item *create_func_cast(Item *a, Cast_target cast_type, case ITEM_CAST_TIME: res= new Item_time_typecast(a); break; case ITEM_CAST_DATETIME: res= new Item_datetime_typecast(a); break; case ITEM_CAST_DECIMAL: - len= c_len ? atoi(c_len) : 0; - dec= c_dec ? atoi(c_dec) : 0; + if (c_len == NULL) + { + len= 0; + } + else + { + ulong decoded_size; + errno= 0; + decoded_size= strtoul(c_len, NULL, 10); + if (errno != 0) + { + my_error(ER_TOO_BIG_PRECISION, MYF(0), c_len, a->name, + DECIMAL_MAX_PRECISION); + return NULL; + } + len= decoded_size; + } + + if (c_dec == NULL) + { + dec= 0; + } + else + { + ulong decoded_size; + errno= 0; + decoded_size= strtoul(c_dec, NULL, 10); + if ((errno != 0) || (decoded_size > UINT_MAX)) + { + my_error(ER_TOO_BIG_SCALE, MYF(0), c_dec, a->name, + DECIMAL_MAX_SCALE); + return NULL; + } + dec= decoded_size; + } + my_decimal_trim(&len, &dec); if (len < dec) { @@ -486,8 +520,25 @@ Item *create_func_cast(Item *a, Cast_target cast_type, } res= new Item_decimal_typecast(a, len, dec); break; + case ITEM_CAST_CHAR: - len= c_len ? atoi(c_len) : -1; + if (c_len == NULL) + { + len= LL(-1); + } + else + { + ulong decoded_size; + errno= 0; + decoded_size= strtoul(c_len, NULL, 10); + if (errno != 0) + { + my_error(ER_TOO_BIG_DISPLAYWIDTH, MYF(0), "cast as char", MAX_FIELD_BLOBLENGTH); + return NULL; + } + len= decoded_size; + } + res= new Item_char_typecast(a, len, cs ? cs : current_thd->variables.collation_connection); break; diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index a52ffa8216c..80ed9c788cc 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -1771,30 +1771,30 @@ ER_BLOB_USED_AS_KEY 42000 S1009 swe "En BLOB '%-.64s' kan inte vara nyckel med den anvnda tabelltypen" ukr "BLOB '%-.64s' Φ Ц æ" ER_TOO_BIG_FIELDLENGTH 42000 S1009 - cze "P-Bli velk dlka sloupce '%-.64s' (nejvce %d). Pouijte BLOB" - dan "For stor feltlngde for kolonne '%-.64s' (maks = %d). Brug BLOB i stedet" - nla "Te grote kolomlengte voor '%-.64s' (max = %d). Maak hiervoor gebruik van het type BLOB" - eng "Column length too big for column '%-.64s' (max = %d); use BLOB or TEXT instead" - jps "column '%-.64s' ,mۂ column ̑傫܂. (ő %d ܂). BLOB ɎgpĂ.", - est "Tulba '%-.64s' pikkus on liiga pikk (maksimaalne pikkus: %d). Kasuta BLOB vljatpi" - fre "Champ '%-.64s' trop long (max = %d). Utilisez un BLOB" - ger "Feldlnge fr Feld '%-.64s' zu gro (maximal %d). BLOB- oder TEXT-Spaltentyp verwenden!" - greek " '%-.64s' (max = %d). BLOB" - hun "A(z) '%-.64s' oszlop tul hosszu. (maximum = %d). Hasznaljon BLOB tipust inkabb." - ita "La colonna '%-.64s' e` troppo grande (max=%d). Utilizza un BLOB." - jpn "column '%-.64s' ,ݤ column 礭¿ޤ. ( %d ޤ). BLOB 򤫤˻ѤƤ." - kor "Į '%-.64s' Į ̰ ʹ ϴ (ִ = %d). ſ BLOB ϼ." - nor "For stor nkkellengde for kolonne '%-.64s' (maks = %d). Bruk BLOB istedenfor" - norwegian-ny "For stor nykkellengde for felt '%-.64s' (maks = %d). Bruk BLOB istadenfor" - pol "Zbyt dua dugo? kolumny '%-.64s' (maks. = %d). W zamian uyj typu BLOB" - por "Comprimento da coluna '%-.64s' grande demais (max = %d); use BLOB em seu lugar" - rum "Lungimea coloanei '%-.64s' este prea lunga (maximum = %d). Foloseste BLOB mai bine" - rus " '%-.64s' ( = %d). BLOB TEXT " - serbian "Previe podataka za kolonu '%-.64s' (maksimum je %d). Upotrebite BLOB polje" - slo "Prli vek dka pre pole '%-.64s' (maximum = %d). Pouite BLOB" - spa "Longitud de columna demasiado grande para la columna '%-.64s' (maximo = %d).Usar BLOB en su lugar" - swe "Fr stor kolumnlngd angiven fr '%-.64s' (max= %d). Anvnd en BLOB instllet" - ukr " '%-.64s' (max = %d). BLOB" + cze "P-Bli velk dlka sloupce '%-.64s' (nejvce %lu). Pouijte BLOB" + dan "For stor feltlngde for kolonne '%-.64s' (maks = %lu). Brug BLOB i stedet" + nla "Te grote kolomlengte voor '%-.64s' (max = %lu). Maak hiervoor gebruik van het type BLOB" + eng "Column length too big for column '%-.64s' (max = %lu); use BLOB or TEXT instead" + jps "column '%-.64s' ,mۂ column ̑傫܂. (ő %lu ܂). BLOB ɎgpĂ.", + est "Tulba '%-.64s' pikkus on liiga pikk (maksimaalne pikkus: %lu). Kasuta BLOB vljatpi" + fre "Champ '%-.64s' trop long (max = %lu). Utilisez un BLOB" + ger "Feldlnge fr Feld '%-.64s' zu gro (maximal %lu). BLOB- oder TEXT-Spaltentyp verwenden!" + greek " '%-.64s' (max = %lu). BLOB" + hun "A(z) '%-.64s' oszlop tul hosszu. (maximum = %lu). Hasznaljon BLOB tipust inkabb." + ita "La colonna '%-.64s' e` troppo grande (max=%lu). Utilizza un BLOB." + jpn "column '%-.64s' ,ݤ column 礭¿ޤ. ( %lu ޤ). BLOB 򤫤˻ѤƤ." + kor "Į '%-.64s' Į ̰ ʹ ϴ (ִ = %lu). ſ BLOB ϼ." + nor "For stor nkkellengde for kolonne '%-.64s' (maks = %lu). Bruk BLOB istedenfor" + norwegian-ny "For stor nykkellengde for felt '%-.64s' (maks = %lu). Bruk BLOB istadenfor" + pol "Zbyt dua dugo? kolumny '%-.64s' (maks. = %lu). W zamian uyj typu BLOB" + por "Comprimento da coluna '%-.64s' grande demais (max = %lu); use BLOB em seu lugar" + rum "Lungimea coloanei '%-.64s' este prea lunga (maximum = %lu). Foloseste BLOB mai bine" + rus " '%-.64s' ( = %lu). BLOB TEXT " + serbian "Previe podataka za kolonu '%-.64s' (maksimum je %lu). Upotrebite BLOB polje" + slo "Prli vek dka pre pole '%-.64s' (maximum = %lu). Pouite BLOB" + spa "Longitud de columna demasiado grande para la columna '%-.64s' (maximo = %lu).Usar BLOB en su lugar" + swe "Fr stor kolumnlngd angiven fr '%-.64s' (max= %lu). Anvnd en BLOB instllet" + ukr " '%-.64s' (max = %lu). BLOB" ER_WRONG_AUTO_KEY 42000 S1009 cze "M-Bete mt pouze jedno AUTO pole a to mus bt definovno jako kl" dan "Der kan kun specificeres eet AUTO_INCREMENT-felt, og det skal vre indekseret" @@ -5508,11 +5508,11 @@ ER_SP_NO_RECURSION eng "Recursive stored functions and triggers are not allowed." ger "Rekursive gespeicherte Routinen und Triggers sind nicht erlaubt" ER_TOO_BIG_SCALE 42000 S1009 - eng "Too big scale %d specified for column '%-.64s'. Maximum is %d." - ger "Zu groer Skalierungsfaktor %d fr Feld '%-.64s' angegeben. Maximum ist %d" + eng "Too big scale %lu specified for column '%-.64s'. Maximum is %d." + ger "Zu groer Skalierungsfaktor %lu fr Feld '%-.64s' angegeben. Maximum ist %d" ER_TOO_BIG_PRECISION 42000 S1009 - eng "Too big precision %d specified for column '%-.64s'. Maximum is %d." - ger "Zu groe Genauigkeit %d fr Feld '%-.64s' angegeben. Maximum ist %d" + eng "Too big precision %lu specified for column '%-.64s'. Maximum is %lu." + ger "Zu groe Genauigkeit %lu fr Feld '%-.64s' angegeben. Maximum ist %lu" ER_M_BIGGER_THAN_D 42000 S1009 eng "For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column '%-.64s')." ger "Fr FLOAT(M,D), DOUBLE(M,D) oder DECIMAL(M,D) muss M >= D sein (Feld '%-.64s')" @@ -5550,8 +5550,8 @@ ER_WARN_CANT_DROP_DEFAULT_KEYCACHE eng "Cannot drop default keycache" ger "Der vorgabemige Schlssel-Cache kann nicht gelscht werden" ER_TOO_BIG_DISPLAYWIDTH 42000 S1009 - eng "Display width out of range for column '%-.64s' (max = %d)" - ger "Anzeigebreite auerhalb des zulssigen Bereichs fr Spalte '%-.64s' (Maximum: %d)" + eng "Display width out of range for column '%-.64s' (max = %lu)" + ger "Anzeigebreite auerhalb des zulssigen Bereichs fr Spalte '%-.64s' (Maximum: %lu)" ER_XAER_DUPID XAE08 eng "XAER_DUPID: The XID already exists" ger "XAER_DUPID: Die XID existiert bereits" diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 638da3b1bb0..c270e005454 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -1171,7 +1171,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); single_multi table_wild_list table_wild_one opt_wild union_clause union_list precision subselect_start opt_and charset - subselect_end select_var_list select_var_list_init help opt_len + subselect_end select_var_list select_var_list_init help opt_field_length field_length opt_extended_describe prepare prepare_src execute deallocate statement sp_suid @@ -3010,7 +3010,7 @@ udf_type: field_list: field_list_item - | field_list ',' field_list_item; + | field_list ',' field_list_item; /* FIXME: Should this be backward? */ field_list_item: @@ -3111,45 +3111,38 @@ field_spec: }; type: - int_type opt_len field_options { $$=$1; } + int_type opt_field_length field_options { $$=$1; } | real_type opt_precision field_options { $$=$1; } | FLOAT_SYM float_options field_options { $$=FIELD_TYPE_FLOAT; } | BIT_SYM { Lex->length= (char*) "1"; $$=FIELD_TYPE_BIT; } - | BIT_SYM '(' NUM ')' { Lex->length= $3.str; - $$=FIELD_TYPE_BIT; } + | BIT_SYM field_length { $$=FIELD_TYPE_BIT; } | BOOL_SYM { Lex->length=(char*) "1"; $$=FIELD_TYPE_TINY; } | BOOLEAN_SYM { Lex->length=(char*) "1"; $$=FIELD_TYPE_TINY; } - | char '(' NUM ')' opt_binary { Lex->length=$3.str; - $$=FIELD_TYPE_STRING; } + | char field_length opt_binary { $$=FIELD_TYPE_STRING; } | char opt_binary { Lex->length=(char*) "1"; $$=FIELD_TYPE_STRING; } - | nchar '(' NUM ')' opt_bin_mod { Lex->length=$3.str; - $$=FIELD_TYPE_STRING; + | nchar field_length opt_bin_mod { $$=FIELD_TYPE_STRING; Lex->charset=national_charset_info; } | nchar opt_bin_mod { Lex->length=(char*) "1"; $$=FIELD_TYPE_STRING; Lex->charset=national_charset_info; } - | BINARY '(' NUM ')' { Lex->length=$3.str; - Lex->charset=&my_charset_bin; + | BINARY field_length { Lex->charset=&my_charset_bin; $$=FIELD_TYPE_STRING; } | BINARY { Lex->length= (char*) "1"; Lex->charset=&my_charset_bin; $$=FIELD_TYPE_STRING; } - | varchar '(' NUM ')' opt_binary { Lex->length=$3.str; - $$= MYSQL_TYPE_VARCHAR; } - | nvarchar '(' NUM ')' opt_bin_mod { Lex->length=$3.str; - $$= MYSQL_TYPE_VARCHAR; + | varchar field_length opt_binary { $$= MYSQL_TYPE_VARCHAR; } + | nvarchar field_length opt_bin_mod { $$= MYSQL_TYPE_VARCHAR; Lex->charset=national_charset_info; } - | VARBINARY '(' NUM ')' { Lex->length=$3.str; - Lex->charset=&my_charset_bin; + | VARBINARY field_length { Lex->charset=&my_charset_bin; $$= MYSQL_TYPE_VARCHAR; } - | YEAR_SYM opt_len field_options { $$=FIELD_TYPE_YEAR; } + | YEAR_SYM opt_field_length field_options { $$=FIELD_TYPE_YEAR; } | DATE_SYM { $$=FIELD_TYPE_DATE; } | TIME_SYM { $$=FIELD_TYPE_TIME; } - | TIMESTAMP opt_len + | TIMESTAMP opt_field_length { if (YYTHD->variables.sql_mode & MODE_MAXDB) $$=FIELD_TYPE_DATETIME; @@ -3165,7 +3158,7 @@ type: | DATETIME { $$=FIELD_TYPE_DATETIME; } | TINYBLOB { Lex->charset=&my_charset_bin; $$=FIELD_TYPE_TINY_BLOB; } - | BLOB_SYM opt_len { Lex->charset=&my_charset_bin; + | BLOB_SYM opt_field_length { Lex->charset=&my_charset_bin; $$=FIELD_TYPE_BLOB; } | spatial_type { @@ -3187,7 +3180,7 @@ type: $$=FIELD_TYPE_MEDIUM_BLOB; } | LONG_SYM varchar opt_binary { $$=FIELD_TYPE_MEDIUM_BLOB; } | TINYTEXT opt_binary { $$=FIELD_TYPE_TINY_BLOB; } - | TEXT_SYM opt_len opt_binary { $$=FIELD_TYPE_BLOB; } + | TEXT_SYM opt_field_length opt_binary { $$=FIELD_TYPE_BLOB; } | MEDIUMTEXT opt_binary { $$=FIELD_TYPE_MEDIUM_BLOB; } | LONGTEXT opt_binary { $$=FIELD_TYPE_LONG_BLOB; } | DECIMAL_SYM float_options field_options @@ -3260,7 +3253,7 @@ real_type: float_options: /* empty */ { Lex->dec=Lex->length= (char*)0; } - | '(' NUM ')' { Lex->length=$2.str; Lex->dec= (char*)0; } + | field_length { Lex->dec= (char*)0; } | precision {}; precision: @@ -3283,9 +3276,15 @@ field_option: | UNSIGNED { Lex->type|= UNSIGNED_FLAG;} | ZEROFILL { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }; -opt_len: - /* empty */ { Lex->length=(char*) 0; } /* use default length */ - | '(' NUM ')' { Lex->length= $2.str; }; +opt_field_length: + /* empty */ { Lex->length=(char*) NULL; } /* use default length */ + | field_length {}; + +field_length: + '(' LONG_NUM ')' { Lex->length= $2.str; } + | '(' ULONGLONG_NUM ')' { Lex->length= $2.str; } + | '(' DECIMAL_NUM ')' { Lex->length= $2.str; } + | '(' NUM ')' { Lex->length= $2.str; }; opt_precision: /* empty */ {} @@ -5466,9 +5465,9 @@ in_sum_expr: }; cast_type: - BINARY opt_len { $$=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; } - | CHAR_SYM opt_len opt_binary { $$=ITEM_CAST_CHAR; Lex->dec= 0; } - | NCHAR_SYM opt_len { $$=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; } + BINARY opt_field_length { $$=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; } + | CHAR_SYM opt_field_length opt_binary { $$=ITEM_CAST_CHAR; Lex->dec= 0; } + | NCHAR_SYM opt_field_length { $$=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; } | SIGNED_SYM { $$=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } | SIGNED_SYM INT_SYM { $$=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } | UNSIGNED { $$=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } diff --git a/sql/unireg.h b/sql/unireg.h index 81ca18c1d32..0ab2a40048b 100644 --- a/sql/unireg.h +++ b/sql/unireg.h @@ -60,6 +60,7 @@ #define MAX_MBWIDTH 3 /* Max multibyte sequence */ #define MAX_FIELD_CHARLENGTH 255 #define MAX_FIELD_VARCHARLENGTH 65535 +#define MAX_FIELD_BLOBLENGTH UINT_MAX #define CONVERT_IF_BIGGER_TO_BLOB 512 /* Used for CREATE ... SELECT */ /* Max column width +1 */ From 2224e030a9cedab39222abe50c50c9851dc74816 Mon Sep 17 00:00:00 2001 From: "bar@mysql.com/bar.myoffice.izhnet.ru" <> Date: Mon, 8 Oct 2007 12:46:38 +0500 Subject: [PATCH 002/139] Bug#27580 SPACE() function collation bug? Problem: when character_set_connection=utf8, mixing SPACE() with a non-Unicode column (e.g. for concat) produced "illegal mix of collations" error. Fix: Item_string() corresponding to space character is now created using "ASCII" repertoire. Previously it was incorrectly created using "UNICODE" repertoure, which didn't allow to convert results of SPACE() to a non-Unicode character set. --- mysql-test/include/ctype_common.inc | 16 +++ mysql-test/r/ctype_big5.result | 19 ++++ mysql-test/r/ctype_cp1250_ch.result | 152 ++++++++++++++++++++++++++++ mysql-test/r/ctype_euckr.result | 19 ++++ mysql-test/r/ctype_gb2312.result | 19 ++++ mysql-test/r/ctype_gbk.result | 19 ++++ mysql-test/r/ctype_uca.result | 19 ++++ mysql-test/r/ctype_ucs.result | 76 ++++++++++++++ mysql-test/t/ctype_cp1250_ch.test | 10 ++ mysql-test/t/ctype_ucs.test | 4 + sql/item_create.cc | 4 +- 11 files changed, 355 insertions(+), 2 deletions(-) diff --git a/mysql-test/include/ctype_common.inc b/mysql-test/include/ctype_common.inc index 202c508a9c9..b9bd7869967 100644 --- a/mysql-test/include/ctype_common.inc +++ b/mysql-test/include/ctype_common.inc @@ -13,6 +13,8 @@ SET @safe_character_set_server= @@character_set_server; SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; SET character_set_server= @test_character_set; SET collation_server= @test_collation; CREATE DATABASE d1; @@ -51,8 +53,22 @@ SELECT c1 as want1result from t1 where c1 like 'locatio%'; SELECT c1 as want1result from t1 where c1 like 'location%'; DROP TABLE t1; +# +# Bug#27580 SPACE() function collation bug? +# +set names utf8; +create table t1 ( + name varchar(10), + level smallint unsigned); +show create table t1; +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +drop table t1; + DROP DATABASE d1; # Restore settings USE test; SET character_set_server= @safe_character_set_server; SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; diff --git a/mysql-test/r/ctype_big5.result b/mysql-test/r/ctype_big5.result index 6d318a445f5..75b231dbe60 100644 --- a/mysql-test/r/ctype_big5.result +++ b/mysql-test/r/ctype_big5.result @@ -3,6 +3,8 @@ SET @test_character_set= 'big5'; SET @test_collation= 'big5_chinese_ci'; SET @safe_character_set_server= @@character_set_server; SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; SET character_set_server= @test_character_set; SET collation_server= @test_collation; CREATE DATABASE d1; @@ -52,10 +54,27 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=big5 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; DROP DATABASE d1; USE test; SET character_set_server= @safe_character_set_server; SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; SET NAMES big5; SET collation_connection='big5_chinese_ci'; create table t1 select repeat('a',4000) a; diff --git a/mysql-test/r/ctype_cp1250_ch.result b/mysql-test/r/ctype_cp1250_ch.result index 73f415732cd..3f22933e260 100644 --- a/mysql-test/r/ctype_cp1250_ch.result +++ b/mysql-test/r/ctype_cp1250_ch.result @@ -2,6 +2,158 @@ DROP TABLE IF EXISTS t1; SHOW COLLATION LIKE 'cp1250_czech_cs'; Collation Charset Id Default Compiled Sortlen cp1250_czech_cs cp1250 34 Yes 2 +SET @test_character_set= 'cp1250'; +SET @test_collation= 'cp1250_general_ci'; +SET @safe_character_set_server= @@character_set_server; +SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; +SET character_set_server= @test_character_set; +SET collation_server= @test_collation; +CREATE DATABASE d1; +USE d1; +CREATE TABLE t1 (c CHAR(10), KEY(c)); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c char(10) cp1250_general_ci YES MUL NULL +INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa'); +SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%'; +want3results +aaa +aaaa +aaaaa +DROP TABLE t1; +CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2))); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c1 varchar(15) cp1250_general_ci YES MUL NULL +INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab'); +SELECT c1 as want3results from t1 where c1 like 'l%'; +want3results +location +loberge +lotre +SELECT c1 as want3results from t1 where c1 like 'lo%'; +want3results +location +loberge +lotre +SELECT c1 as want1result from t1 where c1 like 'loc%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'loca%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locat%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locati%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locatio%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'location%'; +want1result +location +DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp1250 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; +DROP DATABASE d1; +USE test; +SET character_set_server= @safe_character_set_server; +SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; +SET @test_character_set= 'cp1250'; +SET @test_collation= 'cp1250_czech_cs'; +SET @safe_character_set_server= @@character_set_server; +SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; +SET character_set_server= @test_character_set; +SET collation_server= @test_collation; +CREATE DATABASE d1; +USE d1; +CREATE TABLE t1 (c CHAR(10), KEY(c)); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c char(10) cp1250_czech_cs YES MUL NULL +INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa'); +SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%'; +want3results +aaa +aaaa +aaaaa +DROP TABLE t1; +CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2))); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c1 varchar(15) cp1250_czech_cs YES MUL NULL +INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab'); +SELECT c1 as want3results from t1 where c1 like 'l%'; +want3results +location +loberge +lotre +SELECT c1 as want3results from t1 where c1 like 'lo%'; +want3results +location +loberge +lotre +SELECT c1 as want1result from t1 where c1 like 'loc%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'loca%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locat%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locati%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locatio%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'location%'; +want1result +location +DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) collate cp1250_czech_cs default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp1250 COLLATE=cp1250_czech_cs +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; +DROP DATABASE d1; +USE test; +SET character_set_server= @safe_character_set_server; +SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; CREATE TABLE t1 (a char(16)) character set cp1250 collate cp1250_czech_cs; INSERT INTO t1 VALUES (''); SELECT a, length(a), a='', a=' ', a=' ' FROM t1; diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result index 57e3e2ed8f8..3409c278847 100644 --- a/mysql-test/r/ctype_euckr.result +++ b/mysql-test/r/ctype_euckr.result @@ -3,6 +3,8 @@ SET @test_character_set= 'euckr'; SET @test_collation= 'euckr_korean_ci'; SET @safe_character_set_server= @@character_set_server; SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; SET character_set_server= @test_character_set; SET collation_server= @test_collation; CREATE DATABASE d1; @@ -52,10 +54,27 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=euckr +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; DROP DATABASE d1; USE test; SET character_set_server= @safe_character_set_server; SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; SET NAMES euckr; SET collation_connection='euckr_korean_ci'; create table t1 select repeat('a',4000) a; diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result index 314c336bab9..234201f28d0 100644 --- a/mysql-test/r/ctype_gb2312.result +++ b/mysql-test/r/ctype_gb2312.result @@ -3,6 +3,8 @@ SET @test_character_set= 'gb2312'; SET @test_collation= 'gb2312_chinese_ci'; SET @safe_character_set_server= @@character_set_server; SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; SET character_set_server= @test_character_set; SET collation_server= @test_collation; CREATE DATABASE d1; @@ -52,10 +54,27 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=gb2312 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; DROP DATABASE d1; USE test; SET character_set_server= @safe_character_set_server; SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; SET NAMES gb2312; SET collation_connection='gb2312_chinese_ci'; create table t1 select repeat('a',4000) a; diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result index 3f5d8b0d8c6..d78e3dd3097 100644 --- a/mysql-test/r/ctype_gbk.result +++ b/mysql-test/r/ctype_gbk.result @@ -3,6 +3,8 @@ SET @test_character_set= 'gbk'; SET @test_collation= 'gbk_chinese_ci'; SET @safe_character_set_server= @@character_set_server; SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; SET character_set_server= @test_character_set; SET collation_server= @test_collation; CREATE DATABASE d1; @@ -52,10 +54,27 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=gbk +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; DROP DATABASE d1; USE test; SET character_set_server= @safe_character_set_server; SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; SET NAMES gbk; SET collation_connection='gbk_chinese_ci'; create table t1 select repeat('a',4000) a; diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result index 889702e380c..4fe1eb29b19 100644 --- a/mysql-test/r/ctype_uca.result +++ b/mysql-test/r/ctype_uca.result @@ -2538,6 +2538,8 @@ SET @test_character_set= 'utf8'; SET @test_collation= 'utf8_swedish_ci'; SET @safe_character_set_server= @@character_set_server; SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; SET character_set_server= @test_character_set; SET collation_server= @test_collation; CREATE DATABASE d1; @@ -2587,10 +2589,27 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) collate utf8_swedish_ci default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; DROP DATABASE d1; USE test; SET character_set_server= @safe_character_set_server; SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; create table t1 (a varchar(1)) character set utf8 collate utf8_estonian_ci; insert into t1 values ('A'),('B'),('C'),('a'),('b'),('c'); select a, a regexp '[a]' from t1 order by binary a; diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 023267c227c..2b58aebeafe 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -1,4 +1,80 @@ DROP TABLE IF EXISTS t1; +SET @test_character_set= 'ucs2'; +SET @test_collation= 'ucs2_general_ci'; +SET @safe_character_set_server= @@character_set_server; +SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; +SET character_set_server= @test_character_set; +SET collation_server= @test_collation; +CREATE DATABASE d1; +USE d1; +CREATE TABLE t1 (c CHAR(10), KEY(c)); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c char(10) ucs2_general_ci YES MUL NULL +INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa'); +SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%'; +want3results +aaa +aaaa +aaaaa +DROP TABLE t1; +CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2))); +SHOW FULL COLUMNS FROM t1; +Field Type Collation Null Key Default Extra Privileges Comment +c1 varchar(15) ucs2_general_ci YES MUL NULL +INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab'); +SELECT c1 as want3results from t1 where c1 like 'l%'; +want3results +location +loberge +lotre +SELECT c1 as want3results from t1 where c1 like 'lo%'; +want3results +location +loberge +lotre +SELECT c1 as want1result from t1 where c1 like 'loc%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'loca%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locat%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locati%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'locatio%'; +want1result +location +SELECT c1 as want1result from t1 where c1 like 'location%'; +want1result +location +DROP TABLE t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=ucs2 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; +DROP DATABASE d1; +USE test; +SET character_set_server= @safe_character_set_server; +SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; SET NAMES latin1; SET character_set_connection=ucs2; select 'a' = 'a', 'a' = 'a ', 'a ' = 'a'; diff --git a/mysql-test/t/ctype_cp1250_ch.test b/mysql-test/t/ctype_cp1250_ch.test index 86eb8c31d99..b3daa8a02a2 100644 --- a/mysql-test/t/ctype_cp1250_ch.test +++ b/mysql-test/t/ctype_cp1250_ch.test @@ -6,6 +6,16 @@ DROP TABLE IF EXISTS t1; SHOW COLLATION LIKE 'cp1250_czech_cs'; +SET @test_character_set= 'cp1250'; +SET @test_collation= 'cp1250_general_ci'; +-- source include/ctype_common.inc + +SET @test_character_set= 'cp1250'; +SET @test_collation= 'cp1250_czech_cs'; +-- source include/ctype_common.inc + + + # # Bugs: #8840: Empty string comparison and character set 'cp1250' # diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index bca3a9c3a96..17d9f71e316 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -4,6 +4,10 @@ DROP TABLE IF EXISTS t1; --enable_warnings +SET @test_character_set= 'ucs2'; +SET @test_collation= 'ucs2_general_ci'; +-- source include/ctype_common.inc + SET NAMES latin1; SET character_set_connection=ucs2; -- source include/endspace.inc diff --git a/sql/item_create.cc b/sql/item_create.cc index 561613032bc..60a17c21521 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -361,13 +361,13 @@ Item *create_func_space(Item *a) if (cs->mbminlen > 1) { uint dummy_errors; - sp= new Item_string("",0,cs); + sp= new Item_string("", 0, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII); if (sp) sp->str_value.copy(" ", 1, &my_charset_latin1, cs, &dummy_errors); } else { - sp= new Item_string(" ",1,cs); + sp= new Item_string(" ", 1, cs, DERIVATION_COERCIBLE, MY_REPERTOIRE_ASCII); } return sp ? new Item_func_repeat(sp, a) : 0; } From cd1b00e8bba562e579a03ef1882240d0cb9b73ac Mon Sep 17 00:00:00 2001 From: "istruewing@stella.local" <> Date: Tue, 18 Dec 2007 12:29:50 +0100 Subject: [PATCH 003/139] Bug#32705 - myisam corruption: Key in wrong position at page 1024 with ucs2_bin Inserting strings with a common prefix into a table with characterset UCS2 corrupted the table. An efficient search method was used, which compares end space with ASCII blank. This doesn't work for character sets like UCS2, which do not encode blank like ASCII does. Use the less efficient search method _mi_seq_search() for charsets with mbminlen > 1. --- myisam/mi_open.c | 11 ++++++++++- mysql-test/r/myisam.result | 10 ++++++++++ mysql-test/t/myisam.test | 13 +++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/myisam/mi_open.c b/myisam/mi_open.c index ec169ac8785..5314d6a9a6c 100644 --- a/myisam/mi_open.c +++ b/myisam/mi_open.c @@ -791,8 +791,17 @@ static void setup_key_functions(register MI_KEYDEF *keyinfo) keyinfo->get_key= _mi_get_pack_key; if (keyinfo->seg[0].flag & HA_PACK_KEY) { /* Prefix compression */ + /* + _mi_prefix_search() compares end-space against ASCII blank (' '). + It cannot be used for character sets, that do not encode the + blank character like ASCII does. UCS2 is an example. All + character sets with a fixed width > 1 or a mimimum width > 1 + cannot represent blank like ASCII does. In these cases we have + to use _mi_seq_search() for the search. + */ if (!keyinfo->seg->charset || use_strnxfrm(keyinfo->seg->charset) || - (keyinfo->seg->flag & HA_NULL_PART)) + (keyinfo->seg->flag & HA_NULL_PART) || + (keyinfo->seg->charset->mbminlen > 1)) keyinfo->bin_search=_mi_seq_search; else keyinfo->bin_search=_mi_prefix_search; diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 56933f45fbf..4ff7441c02e 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1839,4 +1839,14 @@ CHECK TABLE t1 EXTENDED; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1; +CREATE TABLE t1 ( +c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL, +KEY(c1) +) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('marshall\'s'); +INSERT INTO t1 VALUES ('marsh'); +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index 80c7a92c12f..b182c35514c 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -1193,4 +1193,17 @@ SET @@myisam_repair_threads=1; CHECK TABLE t1 EXTENDED; DROP TABLE t1; +# +# Bug#32705 - myisam corruption: Key in wrong position +# at page 1024 with ucs2_bin +# +CREATE TABLE t1 ( + c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL, + KEY(c1) + ) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('marshall\'s'); +INSERT INTO t1 VALUES ('marsh'); +CHECK TABLE t1 EXTENDED; +DROP TABLE t1; + --echo End of 5.0 tests From b53d161c7f97d1eb55465535db1654e0afdfcad4 Mon Sep 17 00:00:00 2001 From: "istruewing@stella.local" <> Date: Wed, 16 Jan 2008 11:48:04 +0100 Subject: [PATCH 004/139] Bug#32705 - myisam corruption: Key in wrong position at page 1024 with ucs2_bin Post-pushbuild fix. Moved test from myisam.test to ctype_ucs2_def.test. UCS2 is not always available. --- mysql-test/r/ctype_ucs2_def.result | 10 ++++++++++ mysql-test/r/myisam.result | 10 ---------- mysql-test/t/ctype_ucs2_def.test | 13 +++++++++++++ mysql-test/t/myisam.test | 13 ------------- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/mysql-test/r/ctype_ucs2_def.result b/mysql-test/r/ctype_ucs2_def.result index d838c5d66b0..1bbb354798b 100644 --- a/mysql-test/r/ctype_ucs2_def.result +++ b/mysql-test/r/ctype_ucs2_def.result @@ -21,4 +21,14 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C'); INSERT INTO t1 VALUES('A ', 'A '); ERROR 23000: Duplicate entry '' for key 1 DROP TABLE t1; +CREATE TABLE t1 ( +c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL, +KEY(c1) +) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('marshall\'s'); +INSERT INTO t1 VALUES ('marsh'); +CHECK TABLE t1 EXTENDED; +Table Op Msg_type Msg_text +test.t1 check status OK +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 4ff7441c02e..56933f45fbf 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1839,14 +1839,4 @@ CHECK TABLE t1 EXTENDED; Table Op Msg_type Msg_text test.t1 check status OK DROP TABLE t1; -CREATE TABLE t1 ( -c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL, -KEY(c1) -) ENGINE=MyISAM; -INSERT INTO t1 VALUES ('marshall\'s'); -INSERT INTO t1 VALUES ('marsh'); -CHECK TABLE t1 EXTENDED; -Table Op Msg_type Msg_text -test.t1 check status OK -DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/t/ctype_ucs2_def.test b/mysql-test/t/ctype_ucs2_def.test index c80444daddd..b146dc63626 100644 --- a/mysql-test/t/ctype_ucs2_def.test +++ b/mysql-test/t/ctype_ucs2_def.test @@ -39,4 +39,17 @@ INSERT INTO t1 VALUES('A', 'A'), ('B', 'B'), ('C', 'C'); INSERT INTO t1 VALUES('A ', 'A '); DROP TABLE t1; +# +# Bug#32705 - myisam corruption: Key in wrong position +# at page 1024 with ucs2_bin +# +CREATE TABLE t1 ( + c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL, + KEY(c1) + ) ENGINE=MyISAM; +INSERT INTO t1 VALUES ('marshall\'s'); +INSERT INTO t1 VALUES ('marsh'); +CHECK TABLE t1 EXTENDED; +DROP TABLE t1; + --echo End of 5.0 tests diff --git a/mysql-test/t/myisam.test b/mysql-test/t/myisam.test index b182c35514c..80c7a92c12f 100644 --- a/mysql-test/t/myisam.test +++ b/mysql-test/t/myisam.test @@ -1193,17 +1193,4 @@ SET @@myisam_repair_threads=1; CHECK TABLE t1 EXTENDED; DROP TABLE t1; -# -# Bug#32705 - myisam corruption: Key in wrong position -# at page 1024 with ucs2_bin -# -CREATE TABLE t1 ( - c1 CHAR(255) CHARACTER SET UCS2 COLLATE UCS2_BIN NOT NULL, - KEY(c1) - ) ENGINE=MyISAM; -INSERT INTO t1 VALUES ('marshall\'s'); -INSERT INTO t1 VALUES ('marsh'); -CHECK TABLE t1 EXTENDED; -DROP TABLE t1; - --echo End of 5.0 tests From 5e14047e233e62bca79511e3d69ece6ccaa946a3 Mon Sep 17 00:00:00 2001 From: "igor@olga.mysql.com" <> Date: Sat, 26 Jan 2008 21:45:35 -0800 Subject: [PATCH 005/139] Fixed bug #33833. Two disjuncts containing equalities of the form key=const1 and key=const2 can be merged into one if const1 is equal to const2. To check it the common collation of the constants were used rather than the collation of the field key. For example when the default collation of the constants was cases insensitive while the collation of the field was case sensitive, then two or-ed equality predicates key='b' and key='B' incorrectly were merged into one f='b'. As a result ref access was used instead of range access and wrong result sets were returned in many cases. Fixed the problem by comparing constant in the or-ed predicate with collation of the key field. --- mysql-test/r/range.result | 13 ++++++++++++ mysql-test/t/range.test | 17 ++++++++++++++++ sql/item.cc | 43 +++++++++++++++++++++++++++++++++++++++ sql/item.h | 1 + sql/sql_select.cc | 4 +++- 5 files changed, 77 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result index e0084b53320..9b1da4ffc48 100644 --- a/mysql-test/r/range.result +++ b/mysql-test/r/range.result @@ -1153,3 +1153,16 @@ explain select * from t1 where dateval >= '2007-01-01 00:00:00' and dateval <= ' id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range dateval dateval 4 NULL 2 Using where drop table t1; +CREATE TABLE t1 ( +a varchar(32), index (a) +) DEFAULT CHARSET=latin1 COLLATE=latin1_bin; +INSERT INTO t1 VALUES +('B'), ('A'), ('A'), ('C'), ('B'), ('A'), ('A'); +SELECT a FROM t1 WHERE a='b' OR a='B'; +a +B +B +EXPLAIN SELECT a FROM t1 WHERE a='b' OR a='B'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range a a 35 NULL 3 Using where; Using index +DROP TABLE t1; diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test index 87ba3510326..1352b366508 100644 --- a/mysql-test/t/range.test +++ b/mysql-test/t/range.test @@ -955,4 +955,21 @@ explain select * from t1 where dateval >= '2007-01-01 00:00:00' and dateval <= ' drop table t1; +# +# Bug #33833: different or-ed predicates were erroneously merged into one that +# resulted in ref access instead of range access and a wrong result set +# + +CREATE TABLE t1 ( + a varchar(32), index (a) +) DEFAULT CHARSET=latin1 COLLATE=latin1_bin; + +INSERT INTO t1 VALUES + ('B'), ('A'), ('A'), ('C'), ('B'), ('A'), ('A'); + +SELECT a FROM t1 WHERE a='b' OR a='B'; +EXPLAIN SELECT a FROM t1 WHERE a='b' OR a='B'; + +DROP TABLE t1; + # End of 5.0 tests diff --git a/sql/item.cc b/sql/item.cc index 713e7709bcb..182632bb40f 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -4302,6 +4302,49 @@ String *Item::check_well_formed_result(String *str, bool send_error) return str; } +/* + Compare two items using a given collation + + SYNOPSIS + eq_by_collation() + item item to compare with + binary_cmp TRUE <-> compare as binaries + cs collation to use when comparing strings + + DESCRIPTION + This method works exactly as Item::eq if the collation cs coincides with + the collation of the compared objects. Otherwise, first the collations that + differ from cs are replaced for cs and then the items are compared by + Item::eq. After the comparison the original collations of items are + restored. + + RETURN + 1 compared items has been detected as equal + 0 otherwise +*/ + +bool Item::eq_by_collation(Item *item, bool binary_cmp, CHARSET_INFO *cs) +{ + CHARSET_INFO *save_cs= 0; + CHARSET_INFO *save_item_cs= 0; + if (collation.collation != cs) + { + save_cs= collation.collation; + collation.collation= cs; + } + if (item->collation.collation != cs) + { + save_item_cs= item->collation.collation; + item->collation.collation= cs; + } + bool res= eq(item, binary_cmp); + if (save_cs) + collation.collation= save_cs; + if (save_item_cs) + item->collation.collation= save_item_cs; + return res; +} + /* Create a field to hold a string value from an item diff --git a/sql/item.h b/sql/item.h index 5f511557f47..f87499f23e3 100644 --- a/sql/item.h +++ b/sql/item.h @@ -873,6 +873,7 @@ public: virtual Field::geometry_type get_geometry_type() const { return Field::GEOM_GEOMETRY; }; String *check_well_formed_result(String *str, bool send_error= 0); + bool eq_by_collation(Item *item, bool binary_cmp, CHARSET_INFO *cs); }; diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 87935b5548f..bdea25ab99d 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -2887,7 +2887,9 @@ merge_key_fields(KEY_FIELD *start,KEY_FIELD *new_fields,KEY_FIELD *end, } } else if (old->eq_func && new_fields->eq_func && - old->val->eq(new_fields->val, old->field->binary())) + old->val->eq_by_collation(new_fields->val, + old->field->binary(), + old->field->charset())) { old->level= and_level; From 3b5c25ba656187eac5c20625cdc3a93e22f2eb93 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/april.(none)" <> Date: Thu, 31 Jan 2008 18:51:20 +0400 Subject: [PATCH 006/139] BUG#22989 - START SLAVE causes Error on COM_REGISTER_SLAVE: 1105 'Wrong parameters to functi START SLAVE reports vague error when it fails to register on master: "Wrong parameters to function register_slave". If master failed to register slave because of too long 'report-host'/'report-user'/'report-password', return better error messages: "Failed to register slave: too long 'report-host'" "Failed to register slave: too long 'report-user'" "Failed to register slave; too long 'report-password'" No test case for this fix. --- sql/repl_failsafe.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sql/repl_failsafe.cc b/sql/repl_failsafe.cc index 896315ec82f..f1826678c9f 100644 --- a/sql/repl_failsafe.cc +++ b/sql/repl_failsafe.cc @@ -109,11 +109,14 @@ void change_rpl_status(RPL_STATUS from_status, RPL_STATUS to_status) } -#define get_object(p, obj) \ +#define get_object(p, obj, msg) \ {\ uint len = (uint)*p++; \ if (p + len > p_end || len >= sizeof(obj)) \ + {\ + errmsg= msg;\ goto err; \ + }\ strmake(obj,(char*) p,len); \ p+= len; \ }\ @@ -158,6 +161,7 @@ int register_slave(THD* thd, uchar* packet, uint packet_length) int res; SLAVE_INFO *si; uchar *p= packet, *p_end= packet + packet_length; + const char *errmsg= "Wrong parameters to function register_slave"; if (check_access(thd, REPL_SLAVE_ACL, any_db,0,0,0,0)) return 1; @@ -166,9 +170,9 @@ int register_slave(THD* thd, uchar* packet, uint packet_length) thd->server_id= si->server_id= uint4korr(p); p+= 4; - get_object(p,si->host); - get_object(p,si->user); - get_object(p,si->password); + get_object(p,si->host, "Failed to register slave: too long 'report-host'"); + get_object(p,si->user, "Failed to register slave: too long 'report-user'"); + get_object(p,si->password, "Failed to register slave; too long 'report-password'"); if (p+10 > p_end) goto err; si->port= uint2korr(p); @@ -187,8 +191,7 @@ int register_slave(THD* thd, uchar* packet, uint packet_length) err: my_free((gptr) si, MYF(MY_WME)); - my_message(ER_UNKNOWN_ERROR, "Wrong parameters to function register_slave", - MYF(0)); + my_message(ER_UNKNOWN_ERROR, errmsg, MYF(0)); err2: return 1; } From f967e24718e72b13d5e3c4ae11c80d5012432c4f Mon Sep 17 00:00:00 2001 From: "evgen@moonbone.local" <> Date: Thu, 31 Jan 2008 23:46:26 +0300 Subject: [PATCH 007/139] Bug#30787: Stored function ignores user defined alias. Simple subselects are pulled into upper selects. This operation substitutes the pulled subselect for the first item from the select list of the subselect. If an alias is defined for a subselect it is inherited by the replacement item. As this is done after fix_fields phase this alias isn't showed if the replacement item is a stored function. This happens because the Item_func_sp::make_field function makes send field from its result_field and ignores the defined alias. Now when an alias is defined the Item_func_sp::make_field function sets it for the returned field. --- mysql-test/r/sp.result | 17 +++++++++++++++++ mysql-test/t/sp.test | 19 +++++++++++++++++++ sql/item_func.cc | 2 ++ 3 files changed, 38 insertions(+) diff --git a/mysql-test/r/sp.result b/mysql-test/r/sp.result index 061bbafd9a1..d93bc858cc3 100644 --- a/mysql-test/r/sp.result +++ b/mysql-test/r/sp.result @@ -6578,6 +6578,23 @@ DROP PROCEDURE db28318_a.t1; DROP PROCEDURE db28318_b.t2; DROP DATABASE db28318_a; DROP DATABASE db28318_b; +# +# Bug#30787: Stored function ignores user defined alias. +# +use test; +drop function if exists func30787; +create table t1(f1 int); +insert into t1 values(1),(2); +create function func30787(p1 int) returns int +begin +return p1; +end | +select (select func30787(f1)) as ttt from t1; +ttt +1 +2 +drop function func30787; +drop table t1; # ------------------------------------------------------------------ # -- End of 5.0 tests # ------------------------------------------------------------------ diff --git a/mysql-test/t/sp.test b/mysql-test/t/sp.test index 785e7e3793c..b9cba0f489f 100644 --- a/mysql-test/t/sp.test +++ b/mysql-test/t/sp.test @@ -7699,6 +7699,25 @@ DROP PROCEDURE db28318_b.t2; DROP DATABASE db28318_a; DROP DATABASE db28318_b; +--echo # +--echo # Bug#30787: Stored function ignores user defined alias. +--echo # +use test; +--disable_warnings +drop function if exists func30787; +--enable_warnings +create table t1(f1 int); +insert into t1 values(1),(2); +delimiter |; +create function func30787(p1 int) returns int +begin + return p1; +end | +delimiter ;| +select (select func30787(f1)) as ttt from t1; +drop function func30787; +drop table t1; + --echo # ------------------------------------------------------------------ --echo # -- End of 5.0 tests diff --git a/sql/item_func.cc b/sql/item_func.cc index 639e069d24e..dbde4237511 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -5515,6 +5515,8 @@ Item_func_sp::make_field(Send_field *tmp_field) DBUG_ENTER("Item_func_sp::make_field"); DBUG_ASSERT(sp_result_field); sp_result_field->make_field(tmp_field); + if (name) + tmp_field->col_name= name; DBUG_VOID_RETURN; } From 663453d572cdce425787885cf25b6a547b6f2bb1 Mon Sep 17 00:00:00 2001 From: "kaa@mbp.local" <> Date: Fri, 1 Feb 2008 13:00:40 +0500 Subject: [PATCH 008/139] Fix for bug #25162: Backing up DB from 5.1 adds 'USING BTREE' to KEYs on table creates The problem was in incompatible syntax for key definition in CREATE TABLE. 5.0 supports only the following syntax for key definition (see "CREATE TABLE syntax" in the manual): {INDEX|KEY} [index_name] [index_type] (index_col_name,...) While 5.1 parser supports the above syntax, the "preferred" syntax was changed to: {INDEX|KEY} [index_name] (index_col_name,...) [index_type] The above syntax is used in 5.1 for the SHOW CREATE TABLE output, which led to dumps generated by 5.1 being incompatible with 5.0. Fixed by changing the parser in 5.0 to support both 5.0 and 5.1 syntax for key definition. --- mysql-test/r/create.result | 14 ++++++++++++++ mysql-test/t/create.test | 24 ++++++++++++++++++++++++ sql/sql_yacc.yy | 6 +++--- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/create.result b/mysql-test/r/create.result index 3d7486b6ba2..53c2058f3ec 100644 --- a/mysql-test/r/create.result +++ b/mysql-test/r/create.result @@ -1532,4 +1532,18 @@ Handler_read_prev 0 Handler_read_rnd 0 Handler_read_rnd_next 7 drop table t1,t2; +CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1)); +DROP TABLE t1; +CREATE TABLE t1(c1 VARCHAR(33), KEY (c1) USING BTREE); +DROP TABLE t1; +CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1) USING HASH) ENGINE=MEMORY; +SHOW INDEX FROM t1; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t1 1 c1 1 c1 NULL 0 NULL NULL YES HASH +DROP TABLE t1; +CREATE TABLE t1(c1 VARCHAR(33), KEY USING HASH (c1) USING BTREE) ENGINE=MEMORY; +SHOW INDEX FROM t1; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t1 1 c1 1 c1 A NULL NULL NULL YES BTREE +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/t/create.test b/mysql-test/t/create.test index 64081c0248a..97a7ea71b29 100644 --- a/mysql-test/t/create.test +++ b/mysql-test/t/create.test @@ -1148,4 +1148,28 @@ create table t2 select sql_big_result f1,count(f2) from t1 group by f1; show status like 'handler_read%'; drop table t1,t2; +# +# Bug #25162: Backing up DB from 5.1 adds 'USING BTREE' to KEYs on table creates +# + +# Show that the old syntax for index type is supported +CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1)); +DROP TABLE t1; + +# Show that the new syntax for index type is supported +CREATE TABLE t1(c1 VARCHAR(33), KEY (c1) USING BTREE); +DROP TABLE t1; + +# Show that in case of multiple index type definitions, the last one takes +# precedence + +CREATE TABLE t1(c1 VARCHAR(33), KEY USING BTREE (c1) USING HASH) ENGINE=MEMORY; +SHOW INDEX FROM t1; +DROP TABLE t1; + +CREATE TABLE t1(c1 VARCHAR(33), KEY USING HASH (c1) USING BTREE) ENGINE=MEMORY; +SHOW INDEX FROM t1; +DROP TABLE t1; + + --echo End of 5.0 tests diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index c4aca1df7ec..af57fbdb108 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -2982,15 +2982,15 @@ column_def: ; key_def: - key_type opt_ident key_alg '(' key_list ')' + key_type opt_ident key_alg '(' key_list ')' key_alg { LEX *lex=Lex; - Key *key= new Key($1, $2, $3, 0, lex->col_list); + Key *key= new Key($1, $2, $7 ? $7 : $3, 0, lex->col_list); lex->alter_info.key_list.push_back(key); lex->col_list.empty(); /* Alloced by sql_alloc */ } - | opt_constraint constraint_key_type opt_ident key_alg '(' key_list ')' + | opt_constraint constraint_key_type opt_ident key_alg '(' key_list ')' key_alg { LEX *lex=Lex; const char *key_name= $3 ? $3:$1; From 323e9a4c53613ed229759422068ef1822a8d1d63 Mon Sep 17 00:00:00 2001 From: "thek@adventure.(none)" <> Date: Fri, 1 Feb 2008 14:10:46 +0100 Subject: [PATCH 009/139] Bug#33201 Crash occurs when granting update privilege on one column of a view When issuing a column level grant on a table which require pre-locking the server crashed. The reason behind the crash was that data structures used by the lock api wasn't properly reinitialized in the case of a column level grant. --- mysql-test/r/grant.result | 22 ++++++++++++++++++++++ mysql-test/t/grant.test | 22 ++++++++++++++++++++++ sql/sql_acl.cc | 7 +++++++ 3 files changed, 51 insertions(+) diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index e27ef64af43..98a21b14585 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -1129,4 +1129,26 @@ DROP USER mysqltest_1@localhost; DROP DATABASE db27878; use test; DROP TABLE t1; +drop table if exists test; +Warnings: +Note 1051 Unknown table 'test' +drop function if exists test_function; +Warnings: +Note 1305 FUNCTION test_function does not exist +drop view if exists v1; +Warnings: +Note 1051 Unknown table 'test.v1' +create table test (col1 varchar(30)); +create function test_function() returns varchar(30) +begin +declare tmp varchar(30); +select col1 from test limit 1 into tmp; +return '1'; +end| +create view v1 as select test.* from test where test.col1=test_function(); +grant update (col1) on v1 to 'greg'; +revoke all privileges on v1 from 'greg'; +drop view v1; +drop table test; +drop function test_function; End of 5.0 tests diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test index ed95d90c8f8..43548094a33 100644 --- a/mysql-test/t/grant.test +++ b/mysql-test/t/grant.test @@ -1153,4 +1153,26 @@ DROP DATABASE db27878; use test; DROP TABLE t1; +# +# Bug #33201 Crash occurs when granting update privilege on one column of a view +# +drop table if exists test; +drop function if exists test_function; +drop view if exists v1; +create table test (col1 varchar(30)); +delimiter |; +create function test_function() returns varchar(30) +begin + declare tmp varchar(30); + select col1 from test limit 1 into tmp; + return '1'; +end| +delimiter ;| +create view v1 as select test.* from test where test.col1=test_function(); +grant update (col1) on v1 to 'greg'; +revoke all privileges on v1 from 'greg'; +drop view v1; +drop table test; +drop function test_function; + --echo End of 5.0 tests diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 134541368e9..703918329c2 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -2878,6 +2878,12 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list, } #endif + /* + The lock api is depending on the thd->lex variable which needs to be + re-initialized. + */ + Query_tables_list backup; + thd->lex->reset_n_backup_query_tables_list(&backup); if (simple_open_n_lock_tables(thd,tables)) { // Should never happen close_thread_tables(thd); /* purecov: deadcode */ @@ -3016,6 +3022,7 @@ bool mysql_table_grant(THD *thd, TABLE_LIST *table_list, send_ok(thd); /* Tables are automatically closed */ + thd->lex->restore_backup_query_tables_list(&backup); DBUG_RETURN(result); } From 3a438cf57a69d254ea5e6cdf9949929b1f0d367c Mon Sep 17 00:00:00 2001 From: "bar@mysql.com/bar.myoffice.izhnet.ru" <> Date: Mon, 4 Feb 2008 11:10:40 +0400 Subject: [PATCH 010/139] Bug#32510 LIKE search fails with indexed 'eucjpms' and 'ujis' char column Problem: some collation handlers called incorrect version of my_like_range_xxx(), which led to wrong min_str and max_str, so like range optimizer threw away good records. Fix: changing the wrong handlers to call proper version of my_like_range_xxx(). --- mysql-test/include/ctype_like_range_f1f2.inc | 25 ++++++++++++++ mysql-test/r/ctype_big5.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_cp932.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_eucjpms.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_euckr.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_gb2312.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_gbk.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_sjis.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_uca.result | 17 ++++++++++ mysql-test/r/ctype_ucs.result | 34 ++++++++++++++++++++ mysql-test/r/ctype_ujis.result | 34 ++++++++++++++++++++ mysql-test/t/ctype_big5.test | 2 ++ mysql-test/t/ctype_cp932.test | 2 ++ mysql-test/t/ctype_eucjpms.test | 3 +- mysql-test/t/ctype_euckr.test | 2 ++ mysql-test/t/ctype_gb2312.test | 2 ++ mysql-test/t/ctype_gbk.test | 2 ++ mysql-test/t/ctype_sjis.test | 2 ++ mysql-test/t/ctype_uca.test | 3 +- mysql-test/t/ctype_ucs.test | 2 ++ mysql-test/t/ctype_ujis.test | 2 ++ strings/ctype-euc_kr.c | 2 +- strings/ctype-eucjpms.c | 2 +- strings/ctype-gb2312.c | 2 +- strings/ctype-ucs2.c | 2 +- strings/ctype-ujis.c | 2 +- 26 files changed, 373 insertions(+), 7 deletions(-) create mode 100644 mysql-test/include/ctype_like_range_f1f2.inc diff --git a/mysql-test/include/ctype_like_range_f1f2.inc b/mysql-test/include/ctype_like_range_f1f2.inc new file mode 100644 index 00000000000..54ea1b4c665 --- /dev/null +++ b/mysql-test/include/ctype_like_range_f1f2.inc @@ -0,0 +1,25 @@ +# +# Bug#32510 LIKE search fails with indexed 'eucjpms' and 'ujis' char column +# +# Testing my_ctype_like_range_xxx +# (used in LIKE optimization for an indexed column) +# + +# Create table using @@character_set_connection and @@collation_connection +# for the string columns. + +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); + +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); + +# Check pattern (important for ucs2, utf16, utf32) +SELECT hex(concat(repeat(0xF1F2, 10), '%')); + +--echo 3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +DROP TABLE t1; diff --git a/mysql-test/r/ctype_big5.result b/mysql-test/r/ctype_big5.result index b190273cc64..d61051588b3 100644 --- a/mysql-test/r/ctype_big5.result +++ b/mysql-test/r/ctype_big5.result @@ -120,6 +120,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='big5_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -170,6 +187,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET NAMES big5; CREATE TABLE t1 (a text) character set big5; INSERT INTO t1 VALUES (''); diff --git a/mysql-test/r/ctype_cp932.result b/mysql-test/r/ctype_cp932.result index e3598f00777..5c70da37142 100755 --- a/mysql-test/r/ctype_cp932.result +++ b/mysql-test/r/ctype_cp932.result @@ -11325,6 +11325,23 @@ cp932_japanese_ci 6109 cp932_japanese_ci 61 cp932_japanese_ci 6120 drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='cp932_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -11335,6 +11352,23 @@ cp932_bin 6109 cp932_bin 61 cp932_bin 6120 drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; create table t2 (a char(1)); insert into t2 values ('0'),('1'),('2'),('3'),('4'),('5'),('6'),('7'); insert into t2 values ('8'),('9'),('A'),('B'),('C'),('D'),('E'),('F'); diff --git a/mysql-test/r/ctype_eucjpms.result b/mysql-test/r/ctype_eucjpms.result index ad9666d0c86..21aa38b7fe6 100755 --- a/mysql-test/r/ctype_eucjpms.result +++ b/mysql-test/r/ctype_eucjpms.result @@ -9809,6 +9809,23 @@ eucjpms_japanese_ci 6109 eucjpms_japanese_ci 61 eucjpms_japanese_ci 6120 drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='eucjpms_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -9819,6 +9836,23 @@ eucjpms_bin 6109 eucjpms_bin 61 eucjpms_bin 6120 drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; select hex(convert(_eucjpms 0xA5FE41 using ucs2)); hex(convert(_eucjpms 0xA5FE41 using ucs2)) 003F0041 diff --git a/mysql-test/r/ctype_euckr.result b/mysql-test/r/ctype_euckr.result index ee786202c01..3c31495539d 100644 --- a/mysql-test/r/ctype_euckr.result +++ b/mysql-test/r/ctype_euckr.result @@ -120,6 +120,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='euckr_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -170,6 +187,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET NAMES euckr; CREATE TABLE t1 (a text) character set euckr; INSERT INTO t1 VALUES (0xA2E6),(0xFEF7); diff --git a/mysql-test/r/ctype_gb2312.result b/mysql-test/r/ctype_gb2312.result index 90c94c3b299..eaf644d2075 100644 --- a/mysql-test/r/ctype_gb2312.result +++ b/mysql-test/r/ctype_gb2312.result @@ -120,6 +120,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='gb2312_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -170,6 +187,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET NAMES gb2312; CREATE TABLE t1 (a text) character set gb2312; INSERT INTO t1 VALUES (0xA2A1),(0xD7FE); diff --git a/mysql-test/r/ctype_gbk.result b/mysql-test/r/ctype_gbk.result index fe90c7bff29..9c782ff8040 100644 --- a/mysql-test/r/ctype_gbk.result +++ b/mysql-test/r/ctype_gbk.result @@ -120,6 +120,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='gbk_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -170,6 +187,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET NAMES gbk; CREATE TABLE t1 (a text) character set gbk; INSERT INTO t1 VALUES (0xA3A0),(0xA1A1); diff --git a/mysql-test/r/ctype_sjis.result b/mysql-test/r/ctype_sjis.result index dab5991b505..37750120b31 100644 --- a/mysql-test/r/ctype_sjis.result +++ b/mysql-test/r/ctype_sjis.result @@ -121,6 +121,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='sjis_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -171,6 +188,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET NAMES sjis; SELECT HEX('@\') FROM DUAL; HEX('@\') diff --git a/mysql-test/r/ctype_uca.result b/mysql-test/r/ctype_uca.result index ae9146fc9db..a11de9739ff 100644 --- a/mysql-test/r/ctype_uca.result +++ b/mysql-test/r/ctype_uca.result @@ -2811,5 +2811,22 @@ NULL NULL NULL drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; set names utf8; End for 5.0 tests diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index 5a84dd0c3c0..53c96b325d0 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -613,6 +613,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET NAMES latin1; SET collation_connection='ucs2_bin'; create table t1 select repeat('a',4000) a; @@ -642,6 +659,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F20025 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; select hex(substr(_ucs2 0x00e400e50068,1)); hex(substr(_ucs2 0x00e400e50068,1)) 00E400E50068 diff --git a/mysql-test/r/ctype_ujis.result b/mysql-test/r/ctype_ujis.result index 091d96c56d3..9f3346a8bbf 100644 --- a/mysql-test/r/ctype_ujis.result +++ b/mysql-test/r/ctype_ujis.result @@ -2257,6 +2257,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; SET collation_connection='ujis_bin'; create table t1 select repeat('a',4000) a; delete from t1; @@ -2307,6 +2324,23 @@ select c1 as c2h from t1 where c1 like 'ab#_def' escape '#'; c2h ab_def drop table t1; +CREATE TABLE t1 AS +SELECT 10 AS a, REPEAT('a',20) AS b, REPEAT('a',8) AS c, REPEAT('a',8) AS d; +ALTER TABLE t1 ADD PRIMARY KEY(a), ADD KEY(b); +INSERT INTO t1 (a, b) VALUES (1, repeat(0xF1F2,5)); +INSERT INTO t1 (a, b) VALUES (2, repeat(0xF1F2,10)); +INSERT INTO t1 (a, b) VALUES (3, repeat(0xF1F2,11)); +INSERT INTO t1 (a, b) VALUES (4, repeat(0xF1F2,12)); +SELECT hex(concat(repeat(0xF1F2, 10), '%')); +hex(concat(repeat(0xF1F2, 10), '%')) +F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F225 +3 rows expected +SELECT a, hex(b), c FROM t1 WHERE b LIKE concat(repeat(0xF1F2,10), '%'); +a hex(b) c +2 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +3 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +4 F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2F1F2 +DROP TABLE t1; select hex(convert(_ujis 0xA5FE41 using ucs2)); hex(convert(_ujis 0xA5FE41 using ucs2)) 003F0041 diff --git a/mysql-test/t/ctype_big5.test b/mysql-test/t/ctype_big5.test index 5f3357e0406..0ed21091110 100644 --- a/mysql-test/t/ctype_big5.test +++ b/mysql-test/t/ctype_big5.test @@ -16,10 +16,12 @@ SET collation_connection='big5_chinese_ci'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='big5_bin'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc # # Bugs#9357: TEXT columns break string with special word in BIG5 charset. diff --git a/mysql-test/t/ctype_cp932.test b/mysql-test/t/ctype_cp932.test index 633f3af0d2b..aced1754e66 100644 --- a/mysql-test/t/ctype_cp932.test +++ b/mysql-test/t/ctype_cp932.test @@ -400,8 +400,10 @@ DROP TABLE t4; SET collation_connection='cp932_japanese_ci'; -- source include/ctype_filesort.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='cp932_bin'; -- source include/ctype_filesort.inc +-- source include/ctype_like_range_f1f2.inc # # Bug#29333 myisam corruption with diff --git a/mysql-test/t/ctype_eucjpms.test b/mysql-test/t/ctype_eucjpms.test index 8f813fbd82b..ec358d94900 100644 --- a/mysql-test/t/ctype_eucjpms.test +++ b/mysql-test/t/ctype_eucjpms.test @@ -361,9 +361,10 @@ DROP TABLE t1; SET collation_connection='eucjpms_japanese_ci'; -- source include/ctype_filesort.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='eucjpms_bin'; -- source include/ctype_filesort.inc - +-- source include/ctype_like_range_f1f2.inc # # Bugs#15375: Unassigned multibyte codes are broken diff --git a/mysql-test/t/ctype_euckr.test b/mysql-test/t/ctype_euckr.test index 05e4b04eded..0aba830e725 100644 --- a/mysql-test/t/ctype_euckr.test +++ b/mysql-test/t/ctype_euckr.test @@ -16,10 +16,12 @@ SET collation_connection='euckr_korean_ci'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='euckr_bin'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc # # Bug#15377 Valid multibyte sequences are truncated on INSERT diff --git a/mysql-test/t/ctype_gb2312.test b/mysql-test/t/ctype_gb2312.test index 835818d441c..86d1c7f72c9 100644 --- a/mysql-test/t/ctype_gb2312.test +++ b/mysql-test/t/ctype_gb2312.test @@ -16,10 +16,12 @@ SET collation_connection='gb2312_chinese_ci'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='gb2312_bin'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc # # Bug#15377 Valid multibyte sequences are truncated on INSERT diff --git a/mysql-test/t/ctype_gbk.test b/mysql-test/t/ctype_gbk.test index 5ff138fa97b..3ea696338dc 100644 --- a/mysql-test/t/ctype_gbk.test +++ b/mysql-test/t/ctype_gbk.test @@ -16,10 +16,12 @@ SET collation_connection='gbk_chinese_ci'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='gbk_bin'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc # # Bug#11987 mysql will truncate the text when diff --git a/mysql-test/t/ctype_sjis.test b/mysql-test/t/ctype_sjis.test index 01e0b334554..27cbdff451b 100644 --- a/mysql-test/t/ctype_sjis.test +++ b/mysql-test/t/ctype_sjis.test @@ -68,10 +68,12 @@ SET collation_connection='sjis_japanese_ci'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='sjis_bin'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc # Check parsing of string literals in SJIS with multibyte characters that # have an embedded \ in them. (Bug #8303) diff --git a/mysql-test/t/ctype_uca.test b/mysql-test/t/ctype_uca.test index 0d917428efb..27f833c0695 100644 --- a/mysql-test/t/ctype_uca.test +++ b/mysql-test/t/ctype_uca.test @@ -539,7 +539,8 @@ select * from t1 where a like 'c%'; drop table t1; set collation_connection=ucs2_unicode_ci; ---source include/ctype_regex.inc +-- source include/ctype_regex.inc +-- source include/ctype_like_range_f1f2.inc set names utf8; -- echo End for 5.0 tests diff --git a/mysql-test/t/ctype_ucs.test b/mysql-test/t/ctype_ucs.test index b837f53a17f..50c7a4fca5d 100644 --- a/mysql-test/t/ctype_ucs.test +++ b/mysql-test/t/ctype_ucs.test @@ -373,10 +373,12 @@ drop table t1; SET collation_connection='ucs2_general_ci'; -- source include/ctype_filesort.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc SET NAMES latin1; SET collation_connection='ucs2_bin'; -- source include/ctype_filesort.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc # # Bug#10344 Some string functions fail for UCS2 diff --git a/mysql-test/t/ctype_ujis.test b/mysql-test/t/ctype_ujis.test index 14b37569b11..7d191931934 100644 --- a/mysql-test/t/ctype_ujis.test +++ b/mysql-test/t/ctype_ujis.test @@ -1147,10 +1147,12 @@ SET collation_connection='ujis_japanese_ci'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc SET collation_connection='ujis_bin'; -- source include/ctype_filesort.inc -- source include/ctype_innodb_like.inc -- source include/ctype_like_escape.inc +-- source include/ctype_like_range_f1f2.inc # # Bugs#15375: Unassigned multibyte codes are broken diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c index 511a81f0cd4..0e10f50fce0 100644 --- a/strings/ctype-euc_kr.c +++ b/strings/ctype-euc_kr.c @@ -8695,7 +8695,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = my_strnncollsp_simple, my_strnxfrm_simple, /* strnxfrm */ my_strnxfrmlen_simple, - my_like_range_simple, /* like_range */ + my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ my_strcasecmp_mb, my_instr_mb, diff --git a/strings/ctype-eucjpms.c b/strings/ctype-eucjpms.c index 8343211015c..d96b34d2838 100644 --- a/strings/ctype-eucjpms.c +++ b/strings/ctype-eucjpms.c @@ -8643,7 +8643,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = my_strnncollsp_simple, my_strnxfrm_simple, /* strnxfrm */ my_strnxfrmlen_simple, - my_like_range_simple,/* like_range */ + my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ my_strcasecmp_mb, my_instr_mb, diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c index 267299ace7f..6ffe29430db 100644 --- a/strings/ctype-gb2312.c +++ b/strings/ctype-gb2312.c @@ -5725,7 +5725,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = my_strnncollsp_simple, my_strnxfrm_simple, /* strnxfrm */ my_strnxfrmlen_simple, - my_like_range_simple, /* like_range */ + my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ my_strcasecmp_mb, /* instr */ my_instr_mb, diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c index b5353c55e4c..f391e4977b3 100644 --- a/strings/ctype-ucs2.c +++ b/strings/ctype-ucs2.c @@ -1666,7 +1666,7 @@ static MY_COLLATION_HANDLER my_collation_ucs2_bin_handler = my_strnncollsp_ucs2_bin, my_strnxfrm_ucs2_bin, my_strnxfrmlen_simple, - my_like_range_simple, + my_like_range_ucs2, my_wildcmp_ucs2_bin, my_strcasecmp_ucs2_bin, my_instr_mb, diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c index cd1ab7da425..4a75244807d 100644 --- a/strings/ctype-ujis.c +++ b/strings/ctype-ujis.c @@ -8511,7 +8511,7 @@ static MY_COLLATION_HANDLER my_collation_ci_handler = my_strnncollsp_simple, my_strnxfrm_simple, /* strnxfrm */ my_strnxfrmlen_simple, - my_like_range_simple,/* like_range */ + my_like_range_mb, /* like_range */ my_wildcmp_mb, /* wildcmp */ my_strcasecmp_mb, my_instr_mb, From 991b48200e18d81bbaaefa48f94692e01a848027 Mon Sep 17 00:00:00 2001 From: "aelkin/elkin@koti.dsl.inet.fi" <> Date: Mon, 4 Feb 2008 16:35:41 +0200 Subject: [PATCH 011/139] Bug #32790 crash in trigger.test with InnoDB for a table the reason for the failure were incorrect asserts. Removing asserts altogether as there is no the implication does not hold (as explained in the comments for the file). --- sql/sql_delete.cc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index a28a39a769d..52e3ab73de0 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -730,8 +730,6 @@ void multi_delete::send_error(uint errcode,const char *err) } thd->transaction.all.modified_non_trans_table= true; } - DBUG_ASSERT(!normal_tables || !deleted || - thd->transaction.stmt.modified_non_trans_table); DBUG_VOID_RETURN; } @@ -839,8 +837,6 @@ bool multi_delete::send_eof() { query_cache_invalidate3(thd, delete_tables, 1); } - DBUG_ASSERT(!normal_tables || !deleted || - thd->transaction.stmt.modified_non_trans_table); if ((local_error == 0) || thd->transaction.stmt.modified_non_trans_table) { if (mysql_bin_log.is_open()) From 7880fade24dec704a5df54d0278f4aae905fc7a5 Mon Sep 17 00:00:00 2001 From: "aelkin/elkin@koti.dsl.inet.fi" <> Date: Mon, 4 Feb 2008 16:37:41 +0200 Subject: [PATCH 012/139] Bug#33329 extraneous ROLLBACK in binlog on connection does not use trans tables There had been two issues. Rollback statement was recorded in binlog even though a multi-update had not modified any non-transactional table. The reason for this artifact was a false initial value of multi_update::transactional_tables. Yet another artifact that explained on the bug page is that `ha_autocommit_or_rollback' works differently depending on whether a transaction engine has been compiled in. Fixed: with setting multi_update::transactional_tables to zero at initialization time. Multi-update on non-trans table won't cause ROLLBACK in binlog with either compilation option. The 2nd mentioned artifact comprises a self-standing issue (to be reported separately). --- mysql-test/r/multi_update.result | 4 ++-- sql/sql_update.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result index 8a0eacd9eeb..7a12fc87bdc 100644 --- a/mysql-test/r/multi_update.result +++ b/mysql-test/r/multi_update.result @@ -545,7 +545,7 @@ a b 4 4 show master status /* there must be the UPDATE query event */; File Position Binlog_Do_DB Binlog_Ignore_DB -master-bin.000001 328 +master-bin.000001 189 delete from t1; delete from t2; insert into t1 values (1,2),(3,4),(4,4); @@ -555,7 +555,7 @@ UPDATE t2,t1 SET t2.a=t2.b where t2.a=t1.a; ERROR 23000: Duplicate entry '4' for key 1 show master status /* there must be the UPDATE query event */; File Position Binlog_Do_DB Binlog_Ignore_DB -master-bin.000001 343 +master-bin.000001 204 drop table t1, t2; drop table if exists t1, t2, t3; CREATE TABLE t1 (a int, PRIMARY KEY (a)); diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 84349a40977..e5017058659 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -979,7 +979,7 @@ multi_update::multi_update(TABLE_LIST *table_list, tmp_tables(0), updated(0), found(0), fields(field_list), values(value_list), table_count(0), copy_field(0), handle_duplicates(handle_duplicates_arg), do_update(1), trans_safe(1), - transactional_tables(1), ignore(ignore_arg), error_handled(0) + transactional_tables(0), ignore(ignore_arg), error_handled(0) {} From 9928dac5f359444d195591741da495cf769b272c Mon Sep 17 00:00:00 2001 From: "tnurnberg@blasphemy.intern.azundris.com" <> Date: Tue, 5 Feb 2008 12:56:49 +0100 Subject: [PATCH 013/139] Bug#21567: mysqld doesn't react to Ctrl-C when run under GDB even with the --gdb option Don't block SIGINT (Control-C) when --gdb is passed to mysqld. Was broken at least on OS X. (kudos to Mattias Jonsson) --- sql/mysqld.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 08c2b60fa79..2f65597e2b7 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -2211,10 +2211,6 @@ static void init_signals(void) struct sigaction sa; DBUG_ENTER("init_signals"); - if (test_flags & TEST_SIGINT) - { - my_sigset(thr_kill_signal, end_thread_signal); - } my_sigset(THR_SERVER_ALARM,print_signal_warning); // Should never be called! if (!(test_flags & TEST_NO_STACKTRACE) || (test_flags & TEST_CORE_ON_SIGNAL)) @@ -2251,7 +2247,6 @@ static void init_signals(void) (void) sigemptyset(&set); my_sigset(SIGPIPE,SIG_IGN); sigaddset(&set,SIGPIPE); - sigaddset(&set,SIGINT); #ifndef IGNORE_SIGHUP_SIGQUIT sigaddset(&set,SIGQUIT); sigaddset(&set,SIGHUP); @@ -2273,9 +2268,12 @@ static void init_signals(void) sigaddset(&set,THR_SERVER_ALARM); if (test_flags & TEST_SIGINT) { + my_sigset(thr_kill_signal, end_thread_signal); // May be SIGINT sigdelset(&set, thr_kill_signal); } + else + sigaddset(&set,SIGINT); sigprocmask(SIG_SETMASK,&set,NULL); pthread_sigmask(SIG_SETMASK,&set,NULL); DBUG_VOID_RETURN; From 8715855aa056013f418fd9c055e6f0d8badf58a3 Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Thu, 7 Feb 2008 02:33:21 +0400 Subject: [PATCH 014/139] Fixed bug#30059. Server handles truncation for assignment of too-long values into CHAR/VARCHAR/TEXT columns in a different ways when the truncated characters are spaces: 1. CHAR(N) columns silently ignore end-space truncation; 2. TEXT columns post a truncation warning/error in the non-strict/strict mode. 3. VARCHAR columns always post a truncation note in any mode. Space truncation processing has been synchronised over CHAR/VARCHAR/TEXT columns: current behavior of VARCHAR columns has been propagated as standard. Binary-encoded string/BLOB columns are not affected. --- mysql-test/r/heap.result | 1 + mysql-test/r/innodb.result | 1 + mysql-test/r/myisam.result | 1 + mysql-test/r/strict.result | 2 + mysql-test/r/type_binary.result | 1 + mysql-test/r/warnings.result | 38 +++++++++++++++++ mysql-test/t/warnings.test | 33 +++++++++++++++ sql/field.cc | 74 ++++++++++++++------------------- sql/field.h | 2 + 9 files changed, 110 insertions(+), 43 deletions(-) diff --git a/mysql-test/r/heap.result b/mysql-test/r/heap.result index 906c431b834..adfcc00174f 100644 --- a/mysql-test/r/heap.result +++ b/mysql-test/r/heap.result @@ -256,6 +256,7 @@ set @a=repeat(' ',20); insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a)); Warnings: Note 1265 Data truncated for column 'v' at row 1 +Note 1265 Data truncated for column 'c' at row 1 select concat('*',v,'*',c,'*',t,'*') from t1; concat('*',v,'*',c,'*',t,'*') *+ *+*+ * diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result index 854712fdb1d..774e0bd167b 100644 --- a/mysql-test/r/innodb.result +++ b/mysql-test/r/innodb.result @@ -1901,6 +1901,7 @@ set @a=repeat(' ',20); insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a)); Warnings: Note 1265 Data truncated for column 'v' at row 1 +Note 1265 Data truncated for column 'c' at row 1 select concat('*',v,'*',c,'*',t,'*') from t1; concat('*',v,'*',c,'*',t,'*') *+ *+*+ * diff --git a/mysql-test/r/myisam.result b/mysql-test/r/myisam.result index 33f64d600bb..24c1cecfb4f 100644 --- a/mysql-test/r/myisam.result +++ b/mysql-test/r/myisam.result @@ -1104,6 +1104,7 @@ set @a=repeat(' ',20); insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a)); Warnings: Note 1265 Data truncated for column 'v' at row 1 +Note 1265 Data truncated for column 'c' at row 1 select concat('*',v,'*',c,'*',t,'*') from t1; concat('*',v,'*',c,'*',t,'*') *+ *+*+ * diff --git a/mysql-test/r/strict.result b/mysql-test/r/strict.result index 34869862a63..0a714635f70 100644 --- a/mysql-test/r/strict.result +++ b/mysql-test/r/strict.result @@ -934,6 +934,8 @@ NULL NULL DROP TABLE t1; CREATE TABLE t1 (col1 CHAR(5), col2 VARCHAR(6)); INSERT INTO t1 VALUES ('hello', 'hello'),('he', 'he'),('hello ', 'hello '); +Warnings: +Note 1265 Data truncated for column 'col1' at row 3 INSERT INTO t1 (col1) VALUES ('hellobob'); ERROR 22001: Data too long for column 'col1' at row 1 INSERT INTO t1 (col2) VALUES ('hellobob'); diff --git a/mysql-test/r/type_binary.result b/mysql-test/r/type_binary.result index debf4ff8fb8..aaa46ab415e 100644 --- a/mysql-test/r/type_binary.result +++ b/mysql-test/r/type_binary.result @@ -125,6 +125,7 @@ create table t1 (c char(2), vc varchar(2)); insert into t1 values(0x4120, 0x4120); insert into t1 values(0x412020, 0x412020); Warnings: +Note 1265 Data truncated for column 'c' at row 1 Note 1265 Data truncated for column 'vc' at row 1 drop table t1; set @old_sql_mode= @@sql_mode, sql_mode= 'traditional'; diff --git a/mysql-test/r/warnings.result b/mysql-test/r/warnings.result index 9ce1f9c825d..e74f92205aa 100644 --- a/mysql-test/r/warnings.result +++ b/mysql-test/r/warnings.result @@ -298,4 +298,42 @@ DROP TABLE t3; DROP PROCEDURE sp1; DROP PROCEDURE sp2; DROP PROCEDURE sp3; +create table t1 (c_char char(255), c_varchar varchar(255), c_tinytext tinytext); +create table t2 (c_tinyblob tinyblob); +set @c = repeat(' ', 256); +set @q = repeat('q', 256); +set sql_mode = ''; +insert into t1 values(@c, @c, @c); +Warnings: +Note 1265 Data truncated for column 'c_char' at row 1 +Note 1265 Data truncated for column 'c_varchar' at row 1 +Note 1265 Data truncated for column 'c_tinytext' at row 1 +insert into t2 values(@c); +Warnings: +Warning 1265 Data truncated for column 'c_tinyblob' at row 1 +insert into t1 values(@q, @q, @q); +Warnings: +Warning 1265 Data truncated for column 'c_char' at row 1 +Warning 1265 Data truncated for column 'c_varchar' at row 1 +Warning 1265 Data truncated for column 'c_tinytext' at row 1 +insert into t2 values(@q); +Warnings: +Warning 1265 Data truncated for column 'c_tinyblob' at row 1 +set sql_mode = 'traditional'; +insert into t1 values(@c, @c, @c); +Warnings: +Note 1265 Data truncated for column 'c_char' at row 1 +Note 1265 Data truncated for column 'c_varchar' at row 1 +Note 1265 Data truncated for column 'c_tinytext' at row 1 +insert into t2 values(@c); +ERROR 22001: Data too long for column 'c_tinyblob' at row 1 +insert into t1 values(@q, NULL, NULL); +ERROR 22001: Data too long for column 'c_char' at row 1 +insert into t1 values(NULL, @q, NULL); +ERROR 22001: Data too long for column 'c_varchar' at row 1 +insert into t1 values(NULL, NULL, @q); +ERROR 22001: Data too long for column 'c_tinytext' at row 1 +insert into t2 values(@q); +ERROR 22001: Data too long for column 'c_tinyblob' at row 1 +drop table t1, t2; End of 5.0 tests diff --git a/mysql-test/t/warnings.test b/mysql-test/t/warnings.test index 5e9d25aa09b..c42dd22024c 100644 --- a/mysql-test/t/warnings.test +++ b/mysql-test/t/warnings.test @@ -212,4 +212,37 @@ DROP PROCEDURE sp1; DROP PROCEDURE sp2; DROP PROCEDURE sp3; + +# +# Bug#30059: End-space truncation warnings are inconsistent or incorrect +# + +create table t1 (c_char char(255), c_varchar varchar(255), c_tinytext tinytext); +create table t2 (c_tinyblob tinyblob); # not affected by bug, for regression testing +set @c = repeat(' ', 256); +set @q = repeat('q', 256); + +set sql_mode = ''; + +insert into t1 values(@c, @c, @c); +insert into t2 values(@c); +insert into t1 values(@q, @q, @q); +insert into t2 values(@q); + +set sql_mode = 'traditional'; + +insert into t1 values(@c, @c, @c); +--error 1406 +insert into t2 values(@c); +--error 1406 +insert into t1 values(@q, NULL, NULL); +--error 1406 +insert into t1 values(NULL, @q, NULL); +--error 1406 +insert into t1 values(NULL, NULL, @q); +--error 1406 +insert into t2 values(@q); + +drop table t1, t2; + --echo End of 5.0 tests diff --git a/sql/field.cc b/sql/field.cc index f1e2b6a4f27..3753318b8fa 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -5861,26 +5861,41 @@ check_string_copy_error(Field_str *field, } - /* - Send a truncation warning or a truncation error - after storing a too long character string info a field. + Check if we lost any important data and send a truncation error/warning SYNOPSIS - report_data_too_long() - field - Field + Field_longstr::report_if_important_data() + ptr - Truncated rest of string + end - End of truncated string - RETURN - N/A + RETURN VALUES + 0 - None was truncated (or we don't count cut fields) + 2 - Some bytes was truncated + + NOTE + Check if we lost any important data (anything in a binary string, + or any non-space in others). If only trailing spaces was lost, + send a truncation note, otherwise send a truncation error. */ -inline void -report_data_too_long(Field_str *field) +int +Field_longstr::report_if_important_data(const char *ptr, const char *end) { - if (field->table->in_use->abort_on_warning) - field->set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1); - else - field->set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, WARN_DATA_TRUNCATED, 1); + if ((ptr < end) && table->in_use->count_cuted_fields) + { + if (test_if_important_data(field_charset, ptr, end)) + { + if (table->in_use->abort_on_warning) + set_warning(MYSQL_ERROR::WARN_LEVEL_ERROR, ER_DATA_TOO_LONG, 1); + else + set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, WARN_DATA_TRUNCATED, 1); + } + else /* If we lost only spaces then produce a NOTE, not a WARNING */ + set_warning(MYSQL_ERROR::WARN_LEVEL_NOTE, WARN_DATA_TRUNCATED, 1); + return 2; + } + return 0; } @@ -5914,19 +5929,7 @@ int Field_string::store(const char *from,uint length,CHARSET_INFO *cs) cannot_convert_error_pos, from + length)) return 2; - /* - Check if we lost any important data (anything in a binary string, - or any non-space in others). - */ - if ((from_end_pos < from + length) && table->in_use->count_cuted_fields) - { - if (test_if_important_data(field_charset, from_end_pos, from + length)) - { - report_data_too_long(this); - return 2; - } - } - return 0; + return report_if_important_data(from_end_pos, from + length); } @@ -6385,16 +6388,7 @@ int Field_varstring::store(const char *from,uint length,CHARSET_INFO *cs) cannot_convert_error_pos, from + length)) return 2; - // Check if we lost something other than just trailing spaces - if ((from_end_pos < from + length) && table->in_use->count_cuted_fields) - { - if (test_if_important_data(field_charset, from_end_pos, from + length)) - report_data_too_long(this); - else /* If we lost only spaces then produce a NOTE, not a WARNING */ - set_warning(MYSQL_ERROR::WARN_LEVEL_NOTE, WARN_DATA_TRUNCATED, 1); - return 2; - } - return 0; + return report_if_important_data(from_end_pos, from + length); } @@ -7030,13 +7024,7 @@ int Field_blob::store(const char *from,uint length,CHARSET_INFO *cs) cannot_convert_error_pos, from + length)) return 2; - if (from_end_pos < from + length) - { - report_data_too_long(this); - return 2; - } - - return 0; + return report_if_important_data(from_end_pos, from + length); oom_error: /* Fatal OOM error */ diff --git a/sql/field.h b/sql/field.h index d681229a9fd..c82d65147ac 100644 --- a/sql/field.h +++ b/sql/field.h @@ -454,6 +454,8 @@ public: class Field_longstr :public Field_str { +protected: + int report_if_important_data(const char *ptr, const char *end); public: Field_longstr(char *ptr_arg, uint32 len_arg, uchar *null_ptr_arg, uchar null_bit_arg, utype unireg_check_arg, From 8adc63ad36b6294aba50a43065996525cc73ee2b Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Thu, 7 Feb 2008 04:14:50 +0400 Subject: [PATCH 015/139] Fixed bug#34223: Failure on assignment to my_innodb_autoextend_increment and my_innodb_commit_concurrency global variables. Type of the my_innodb_autoextend_increment and the my_innodb_commit_concurrency variables has been changed to GET_ULONG. --- mysql-test/r/variables.result | 6 ++++++ mysql-test/t/variables.test | 13 +++++++++++++ sql/mysqld.cc | 4 ++-- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index 9c360ef4ab3..35f8a5bf6cb 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -838,6 +838,12 @@ SELECT @@log_slow_queries; 1 SET GLOBAL log_slow_queries=0; ERROR HY000: Variable 'log_slow_queries' is a read only variable +set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; +set global innodb_autoextend_increment=8; +set global innodb_autoextend_increment=@my_innodb_autoextend_increment; +set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency; +set global innodb_commit_concurrency=0; +set global innodb_commit_concurrency=@my_innodb_commit_concurrency; End of 5.0 tests set global binlog_cache_size =@my_binlog_cache_size; set global connect_timeout =@my_connect_timeout; diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test index c86e7dfa7f3..191022f44fb 100644 --- a/mysql-test/t/variables.test +++ b/mysql-test/t/variables.test @@ -696,6 +696,19 @@ SELECT @@log_slow_queries; --error 1238 SET GLOBAL log_slow_queries=0; +# +# Bug #34223: Assertion failed: (optp->var_type & 127) == 8, +# file .\my_getopt.c, line 830 +# + +set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; +set global innodb_autoextend_increment=8; +set global innodb_autoextend_increment=@my_innodb_autoextend_increment; + +set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency; +set global innodb_commit_concurrency=0; +set global innodb_commit_concurrency=@my_innodb_commit_concurrency; + --echo End of 5.0 tests # This is at the very after the versioned tests, since it involves doing diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 693b72f5c98..f98b09f4ef6 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -5798,7 +5798,7 @@ log and this option does nothing anymore.", "Data file autoextend increment in megabytes", (gptr*) &srv_auto_extend_increment, (gptr*) &srv_auto_extend_increment, - 0, GET_LONG, REQUIRED_ARG, 8L, 1L, 1000L, 0, 1L, 0}, + 0, GET_ULONG, REQUIRED_ARG, 8L, 1L, 1000L, 0, 1L, 0}, {"innodb_buffer_pool_awe_mem_mb", OPT_INNODB_BUFFER_POOL_AWE_MEM_MB, "If Windows AWE is used, the size of InnoDB buffer pool allocated from the AWE memory.", (gptr*) &innobase_buffer_pool_awe_mem_mb, (gptr*) &innobase_buffer_pool_awe_mem_mb, 0, @@ -5811,7 +5811,7 @@ log and this option does nothing anymore.", {"innodb_commit_concurrency", OPT_INNODB_COMMIT_CONCURRENCY, "Helps in performance tuning in heavily concurrent environments.", (gptr*) &srv_commit_concurrency, (gptr*) &srv_commit_concurrency, - 0, GET_LONG, REQUIRED_ARG, 0, 0, 1000, 0, 1, 0}, + 0, GET_ULONG, REQUIRED_ARG, 0, 0, 1000, 0, 1, 0}, {"innodb_concurrency_tickets", OPT_INNODB_CONCURRENCY_TICKETS, "Number of times a thread is allowed to enter InnoDB within the same \ SQL query after it has once got the ticket", From 543140a6d8d24f2e10c76d3604c361a1c150fe60 Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Thu, 7 Feb 2008 04:54:58 +0400 Subject: [PATCH 016/139] bdb.result: Minor post-fix for bug#30059. --- mysql-test/r/bdb.result | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/r/bdb.result b/mysql-test/r/bdb.result index 3356d23053f..fefeeb405c5 100644 --- a/mysql-test/r/bdb.result +++ b/mysql-test/r/bdb.result @@ -1325,6 +1325,7 @@ set @a=repeat(' ',20); insert into t1 values (concat('+',@a),concat('+',@a),concat('+',@a)); Warnings: Note 1265 Data truncated for column 'v' at row 1 +Note 1265 Data truncated for column 'c' at row 1 select concat('*',v,'*',c,'*',t,'*') from t1; concat('*',v,'*',c,'*',t,'*') *+ *+*+ * From 954a16c6d3f7bfd4f5be5d8fa4e933526293bf34 Mon Sep 17 00:00:00 2001 From: "sergefp@mysql.com" <> Date: Thu, 7 Feb 2008 05:10:04 +0300 Subject: [PATCH 017/139] BUG#27732 "Possible memory leak with index_merge" The bug was that handler::clone/handler::ha_open() call caused allocation of cloned_copy->ref on the handler->table->mem_root. The allocated memory could not be reclaimed until the table is flushed, so it was possible to exhaust memory by repeatedly running index_merge queries without doing table flushes. The fix: - make handler::clone() allocate new_handler->ref on the passed mem_root - make handler::ha_open() not allocate this->ref if it has already been allocated There is no testcase as it is not possible to check small leaks from testsuite. --- sql/handler.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sql/handler.cc b/sql/handler.cc index 27204ae725b..bfad10f986f 100644 --- a/sql/handler.cc +++ b/sql/handler.cc @@ -1381,6 +1381,13 @@ int ha_delete_table(THD *thd, enum db_type table_type, const char *path, handler *handler::clone(MEM_ROOT *mem_root) { handler *new_handler= get_new_handler(table, mem_root, table->s->db_type); + /* + Allocate handler->ref here because otherwise ha_open will allocate it + on this->table->mem_root and we will not be able to reclaim that memory + when the clone handler object is destroyed. + */ + if (!(new_handler->ref= (byte*) alloc_root(mem_root, ALIGN_SIZE(ref_length)*2))) + return NULL; if (new_handler && !new_handler->ha_open(table->s->path, table->db_stat, HA_OPEN_IGNORE_IF_LOCKED)) return new_handler; @@ -1420,8 +1427,9 @@ int handler::ha_open(const char *name, int mode, int test_if_locked) (void) extra(HA_EXTRA_NO_READCHECK); // Not needed in SQL DBUG_ASSERT(alloc_root_inited(&table->mem_root)); - - if (!(ref= (byte*) alloc_root(&table->mem_root, ALIGN_SIZE(ref_length)*2))) + /* ref is already allocated for us if we're called from handler::clone() */ + if (!ref && !(ref= (byte*) alloc_root(&table->mem_root, + ALIGN_SIZE(ref_length)*2))) { close(); error=HA_ERR_OUT_OF_MEM; From fa1f0d6b17662a93bc0fa30a90b3657fa4e8d007 Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Thu, 7 Feb 2008 11:12:49 +0400 Subject: [PATCH 018/139] innodb_mysql.test, variables.result, variables.test, innodb_mysql.result: Minor post-fix for bug#34223. --- mysql-test/r/innodb_mysql.result | 6 ++++++ mysql-test/r/variables.result | 6 ------ mysql-test/t/innodb_mysql.test | 14 ++++++++++++++ mysql-test/t/variables.test | 13 ------------- 4 files changed, 20 insertions(+), 19 deletions(-) diff --git a/mysql-test/r/innodb_mysql.result b/mysql-test/r/innodb_mysql.result index 2ab463e7f85..b487cfd9a4b 100644 --- a/mysql-test/r/innodb_mysql.result +++ b/mysql-test/r/innodb_mysql.result @@ -1240,4 +1240,10 @@ t1 CREATE TABLE `t1` ( UNIQUE KEY `aa` (`a`(1)) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 drop table t1; +set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; +set global innodb_autoextend_increment=8; +set global innodb_autoextend_increment=@my_innodb_autoextend_increment; +set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency; +set global innodb_commit_concurrency=0; +set global innodb_commit_concurrency=@my_innodb_commit_concurrency; End of 5.0 tests diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index 35f8a5bf6cb..9c360ef4ab3 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -838,12 +838,6 @@ SELECT @@log_slow_queries; 1 SET GLOBAL log_slow_queries=0; ERROR HY000: Variable 'log_slow_queries' is a read only variable -set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; -set global innodb_autoextend_increment=8; -set global innodb_autoextend_increment=@my_innodb_autoextend_increment; -set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency; -set global innodb_commit_concurrency=0; -set global innodb_commit_concurrency=@my_innodb_commit_concurrency; End of 5.0 tests set global binlog_cache_size =@my_binlog_cache_size; set global connect_timeout =@my_connect_timeout; diff --git a/mysql-test/t/innodb_mysql.test b/mysql-test/t/innodb_mysql.test index 020295684b0..59ee7c274bb 100644 --- a/mysql-test/t/innodb_mysql.test +++ b/mysql-test/t/innodb_mysql.test @@ -982,4 +982,18 @@ desc t1; show create table t1; drop table t1; + +# +# Bug #34223: Assertion failed: (optp->var_type & 127) == 8, +# file .\my_getopt.c, line 830 +# + +set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; +set global innodb_autoextend_increment=8; +set global innodb_autoextend_increment=@my_innodb_autoextend_increment; + +set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency; +set global innodb_commit_concurrency=0; +set global innodb_commit_concurrency=@my_innodb_commit_concurrency; + --echo End of 5.0 tests diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test index 191022f44fb..c86e7dfa7f3 100644 --- a/mysql-test/t/variables.test +++ b/mysql-test/t/variables.test @@ -696,19 +696,6 @@ SELECT @@log_slow_queries; --error 1238 SET GLOBAL log_slow_queries=0; -# -# Bug #34223: Assertion failed: (optp->var_type & 127) == 8, -# file .\my_getopt.c, line 830 -# - -set @my_innodb_autoextend_increment=@@global.innodb_autoextend_increment; -set global innodb_autoextend_increment=8; -set global innodb_autoextend_increment=@my_innodb_autoextend_increment; - -set @my_innodb_commit_concurrency=@@global.innodb_commit_concurrency; -set global innodb_commit_concurrency=0; -set global innodb_commit_concurrency=@my_innodb_commit_concurrency; - --echo End of 5.0 tests # This is at the very after the versioned tests, since it involves doing From a927bdbe3e07a6b3e6f7fb57d3741f764a3561af Mon Sep 17 00:00:00 2001 From: "evgen@sunlight.local" <> Date: Fri, 8 Feb 2008 13:35:00 +0300 Subject: [PATCH 019/139] Bug#31590: Wrong error message on sort buffer being too small. The out of memory error was thrown when the sort buffer size were too small. This led to a user confusion. Now filesort throws the error message about sort buffer being too small. --- mysql-test/r/order_by.result | 12 ++++++++++++ mysql-test/t/order_by.test | 12 ++++++++++++ sql/filesort.cc | 3 +-- 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/order_by.result b/mysql-test/r/order_by.result index eedc2fa476b..9f6a1b3932c 100644 --- a/mysql-test/r/order_by.result +++ b/mysql-test/r/order_by.result @@ -1064,3 +1064,15 @@ a b 10 00:00:10 0 00:00:00 DROP TABLE t1; +# +# Bug#31590: Wrong error message on sort buffer being too small. +# +create table t1(a int, b tinytext); +insert into t1 values (1,2),(3,2); +set session sort_buffer_size= 30000; +Warnings: +Warning 1292 Truncated incorrect sort_buffer_size value: '30000' +set session max_sort_length= 2180; +select * from t1 order by b; +ERROR HY001: Out of sort memory; increase server sort buffer size +drop table t1; diff --git a/mysql-test/t/order_by.test b/mysql-test/t/order_by.test index 29a290c7fbf..9a55c27df99 100644 --- a/mysql-test/t/order_by.test +++ b/mysql-test/t/order_by.test @@ -726,3 +726,15 @@ SELECT a, b FROM t1 ORDER BY b DESC; SELECT a, b FROM t1 ORDER BY SEC_TO_TIME(a) DESC; DROP TABLE t1; + +--echo # +--echo # Bug#31590: Wrong error message on sort buffer being too small. +--echo # +create table t1(a int, b tinytext); +insert into t1 values (1,2),(3,2); +set session sort_buffer_size= 30000; +set session max_sort_length= 2180; +--error 1038 +select * from t1 order by b; +drop table t1; + diff --git a/sql/filesort.cc b/sql/filesort.cc index 43b079e83d5..a85f9caefbe 100644 --- a/sql/filesort.cc +++ b/sql/filesort.cc @@ -215,8 +215,7 @@ ha_rows filesort(THD *thd, TABLE *table, SORT_FIELD *sortorder, uint s_length, sort_keys= table_sort.sort_keys; if (memavl < min_sort_memory) { - my_error(ER_OUTOFMEMORY,MYF(ME_ERROR+ME_WAITTANG), - thd->variables.sortbuff_size); + my_error(ER_OUT_OF_SORTMEMORY,MYF(ME_ERROR+ME_WAITTANG)); goto err; } if (open_cached_file(&buffpek_pointers,mysql_tmpdir,TEMP_PREFIX, From 2e9f2b678c278b38c0c21334d4410a4959020f2c Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Fri, 8 Feb 2008 16:04:01 +0400 Subject: [PATCH 020/139] Fixed bug#15409: Columns with 64-element SET may not be updated with integers. SET column storing procedure has been modified to be 64bit-clean. --- mysql-test/r/type_set.result | 8 ++++++++ mysql-test/t/type_set.test | 20 ++++++++++++++++++++ sql/field.cc | 6 +++--- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/type_set.result b/mysql-test/r/type_set.result index 03de20baef2..9829d4951c9 100644 --- a/mysql-test/r/type_set.result +++ b/mysql-test/r/type_set.result @@ -85,3 +85,11 @@ t1 CREATE TABLE `t1` ( `f1` set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','1') default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; +CREATE TABLE t1(c set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64')); +INSERT INTO t1 VALUES(7); +INSERT INTO t1 VALUES(9223372036854775808); +SELECT * FROM t1; +c +1,2,3 +64 +DROP TABLE t1; diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test index b1c816f3371..c7f8c59de28 100644 --- a/mysql-test/t/type_set.test +++ b/mysql-test/t/type_set.test @@ -56,3 +56,23 @@ set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17', '50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','1')); show create table t1; drop table t1; + +# +# Bug#15409: Columns with SET datatype with 64-element sets +# may not be updated with integers +# + +let $i=64; +let $s='$i'; +dec $i; +while ($i) { + let $s='$i',$s; + dec $i; +} +--eval CREATE TABLE t1(c set($s)) +INSERT INTO t1 VALUES(7); +INSERT INTO t1 VALUES(9223372036854775808); +SELECT * FROM t1; +DROP TABLE t1; + +--# echo End of 5.0 tests diff --git a/sql/field.cc b/sql/field.cc index 3753318b8fa..53eafcaf2cc 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -7871,10 +7871,10 @@ int Field_set::store(const char *from,uint length,CHARSET_INFO *cs) int Field_set::store(longlong nr, bool unsigned_val) { int error= 0; - if ((ulonglong) nr > (ulonglong) (((longlong) 1 << typelib->count) - - (longlong) 1)) + ulonglong max_nr= set_bits(ulonglong, typelib->count); + if ((ulonglong) nr > max_nr) { - nr&= (longlong) (((longlong) 1 << typelib->count) - (longlong) 1); + nr&= max_nr; set_warning(MYSQL_ERROR::WARN_LEVEL_WARN, WARN_DATA_TRUNCATED, 1); error=1; } From f01531b7c04985f43ddefcaf6a7ba166b132a0ea Mon Sep 17 00:00:00 2001 From: "aelkin/andrei@mysql1000.dsl.inet.fi" <> Date: Fri, 8 Feb 2008 21:03:10 +0200 Subject: [PATCH 021/139] bug#34427 slave misses rendezvous in rpl_variables There was no instruction in the test that enforces the slave successfully connect to the master. The way the test was been written allowed the slave to had been late for rendezvous so that about-connecting time queries to the master failed and are error-logged to had been seen in Warnings of pb. Fixed with adding a sychronization primitive to the test. No test case is possible, observe error logs on pb. Todo: revise need of rpl_report.pl's rules due to failing execution of queries from get_master_verion_and_clock(). Any test should try to use a synchornization primitive like the current fix makes and do not let the slave to miss successful connecting. --- mysql-test/t/rpl_variables.test | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mysql-test/t/rpl_variables.test b/mysql-test/t/rpl_variables.test index d0801e524e4..4e2d07cad54 100644 --- a/mysql-test/t/rpl_variables.test +++ b/mysql-test/t/rpl_variables.test @@ -1,5 +1,7 @@ source include/master-slave.inc; +connection master; + # Init for rstore of variable values set @my_slave_net_timeout =@@global.slave_net_timeout; @@ -18,3 +20,8 @@ show variables like 'slave_skip_errors'; # Restore touched values set global slave_net_timeout =@my_slave_net_timeout; + +# bug#34427 slave misses rendezvous +# don't let the master be shut down until the slave has connected +sync_slave_with_master; + From 367e7e87dd7531d4e289c7d224eddee22bf34444 Mon Sep 17 00:00:00 2001 From: "holyfoot/hf@mysql.com/hfmain.mysql.com" <> Date: Sun, 10 Feb 2008 23:41:57 +0400 Subject: [PATCH 022/139] Bug #33796 Memory leak for prepared statements in embedded server. Field data for a query was stored to the stmt->alloc that is emptied with mysql_stmt_close statement only. That means a lot of memory can be occupied without a reason if used doesn't call mysql_stmt_close often. --- libmysql/libmysql.c | 13 +++++-------- libmysqld/lib_sql.cc | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index e963c0e429c..6916c643f6c 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -4522,14 +4522,11 @@ my_bool STDCALL mysql_stmt_free_result(MYSQL_STMT *stmt) { MYSQL *mysql= stmt->mysql; - if (result->data) - { - /* Result buffered */ - free_root(&result->alloc, MYF(MY_KEEP_PREALLOC)); - result->data= NULL; - result->rows= 0; - stmt->data_cursor= NULL; - } + /* Result buffered */ + free_root(&result->alloc, MYF(MY_KEEP_PREALLOC)); + result->data= NULL; + result->rows= 0; + stmt->data_cursor= NULL; if (mysql && stmt->field_count && (int) stmt->state > (int) MYSQL_STMT_PREPARE_DONE) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index 7f2059db7cd..0665641d3b6 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -668,7 +668,7 @@ bool Protocol::send_fields(List *list, uint flag) DBUG_RETURN(0); field_count= list->elements; - field_alloc= thd->current_stmt ? &thd->current_stmt->mem_root : + field_alloc= thd->current_stmt ? &thd->current_stmt->result.alloc : &mysql->field_alloc; if (!(client_field= mysql->fields= (MYSQL_FIELD *)alloc_root(field_alloc, From 97c105cc17b79ff8c2a55e0619a7c737e789f071 Mon Sep 17 00:00:00 2001 From: "kaa@mbp." <> Date: Tue, 12 Feb 2008 12:43:55 +0300 Subject: [PATCH 023/139] Fix for bug #33389: Selecting from a view into a table from within SP or trigger crashes server Under some circumstances a combination of VIEWs, subselects with outer references and PS/SP/triggers could lead to use of uninitialized memory and server crash as a result. Fixed by changing the code in Item_field::fix_fields() so that in cases when the field is a VIEW reference, we first check whether the field is also an outer reference, and mark it appropriately before returning. --- mysql-test/r/view.result | 16 ++++++++++++++++ mysql-test/t/view.test | 22 ++++++++++++++++++++++ sql/item.cc | 24 ++++++++++++------------ 3 files changed, 50 insertions(+), 12 deletions(-) diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index fb36304e562..f7f6debee6e 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -3618,4 +3618,20 @@ ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default val set @@sql_mode=@old_mode; drop view v1; drop table t1; +create table t1 (a int, key(a)); +create table t2 (c int); +create view v1 as select a b from t1; +create view v2 as select 1 a from t2, v1 where c in +(select 1 from t1 where b = a); +insert into t1 values (1), (1); +insert into t2 values (1), (1); +prepare stmt from "select * from v2 where a = 1"; +execute stmt; +a +1 +1 +1 +1 +drop view v1, v2; +drop table t1, t2; End of 5.0 tests. diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 340a34db5a1..b321f8604f7 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -3470,5 +3470,27 @@ insert into v1 values(1); set @@sql_mode=@old_mode; drop view v1; drop table t1; + +# +# Bug #33389: Selecting from a view into a table from within SP or trigger +# crashes server +# + +create table t1 (a int, key(a)); +create table t2 (c int); + +create view v1 as select a b from t1; +create view v2 as select 1 a from t2, v1 where c in + (select 1 from t1 where b = a); + +insert into t1 values (1), (1); +insert into t2 values (1), (1); + +prepare stmt from "select * from v2 where a = 1"; +execute stmt; + +drop view v1, v2; +drop table t1, t2; + --echo End of 5.0 tests. diff --git a/sql/item.cc b/sql/item.cc index 713e7709bcb..8283e1a13d3 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -3903,6 +3903,18 @@ bool Item_field::fix_fields(THD *thd, Item **reference) else if (!from_field) goto error; + if (!outer_fixed && cached_table && cached_table->select_lex && + context->select_lex && + cached_table->select_lex != context->select_lex) + { + int ret; + if ((ret= fix_outer_field(thd, &from_field, reference)) < 0) + goto error; + else if (!ret) + return FALSE; + outer_fixed= 1; + } + /* if it is not expression from merged VIEW we will set this field. @@ -3918,18 +3930,6 @@ bool Item_field::fix_fields(THD *thd, Item **reference) if (from_field == view_ref_found) return FALSE; - if (!outer_fixed && cached_table && cached_table->select_lex && - context->select_lex && - cached_table->select_lex != context->select_lex) - { - int ret; - if ((ret= fix_outer_field(thd, &from_field, reference)) < 0) - goto error; - else if (!ret) - return FALSE; - outer_fixed= 1; - } - set_field(from_field); if (thd->lex->in_sum_func && thd->lex->in_sum_func->nest_level == From a64d12ce3a7da13c60bf9c486341dcdda4cfd116 Mon Sep 17 00:00:00 2001 From: "ramil/ram@mysql.com/ramil.myoffice.izhnet.ru" <> Date: Tue, 12 Feb 2008 15:12:45 +0400 Subject: [PATCH 024/139] Fix for bug #33758: Got query result when using ORDER BY ASC, but empty result when using DESC Problem: fetching MyISAM keys we copy a key block pointer to the end of the key buffer. However, we don't take into account the pointer length calculatig the buffer size, that may leads to memory overwriting and in turn to unpredictable results. Fix: increase key buffer size by length of the key block pointer. Note: no simple test case. --- myisam/mi_open.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/myisam/mi_open.c b/myisam/mi_open.c index 5314d6a9a6c..d4d8458a669 100644 --- a/myisam/mi_open.c +++ b/myisam/mi_open.c @@ -270,6 +270,9 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) if (share->options & HA_OPTION_COMPRESS_RECORD) share->base.max_key_length+=2; /* For safety */ + /* Add space for node pointer */ + share->base.max_key_length+= share->base.key_reflength; + if (!my_multi_malloc(MY_WME, &share,sizeof(*share), &share->state.rec_per_key_part,sizeof(long)*key_parts, From 22072c5c5777c94adc8c7fb694d4679837883dfd Mon Sep 17 00:00:00 2001 From: "aelkin/andrei@mysql1000.dsl.inet.fi" <> Date: Wed, 13 Feb 2008 14:09:41 +0200 Subject: [PATCH 025/139] Bug #33931 assertion at write_ignored_events_info_to_relay_log if init_slave_thread() fails and bug#33932 assertion at handle_slave_sql if init_slave_thread() fails the asserts were caused by bug33931: having thd deleted at time of executing err: code plus a missed initialization; bug33932: initialization of slave_is_running member was missed; fixed with relocating mi members initialization and removing delete thd It is safe to do as deletion happens later explicitly in the caller of init_slave_thread(). Todo: at merging the test is better to be moved into suite/bugs for 5.x (when x>0). --- mysql-test/r/rpl_bug33931.result | 38 +++++++++++++++++++++++++++++ mysql-test/t/rpl_bug33931-slave.opt | 1 + mysql-test/t/rpl_bug33931.test | 37 ++++++++++++++++++++++++++++ sql/slave.cc | 18 +++++++++++--- 4 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 mysql-test/r/rpl_bug33931.result create mode 100644 mysql-test/t/rpl_bug33931-slave.opt create mode 100644 mysql-test/t/rpl_bug33931.test diff --git a/mysql-test/r/rpl_bug33931.result b/mysql-test/r/rpl_bug33931.result new file mode 100644 index 00000000000..519bd73aa6a --- /dev/null +++ b/mysql-test/r/rpl_bug33931.result @@ -0,0 +1,38 @@ +reset master; +stop slave; +reset slave; +start slave; +show slave status; +Slave_IO_State # +Master_Host 127.0.0.1 +Master_User root +Master_Port MASTER_PORT +Connect_Retry 1 +Master_Log_File +Read_Master_Log_Pos 4 +Relay_Log_File # +Relay_Log_Pos # +Relay_Master_Log_File +Slave_IO_Running No +Slave_SQL_Running No +Replicate_Do_DB +Replicate_Ignore_DB +Replicate_Do_Table +Replicate_Ignore_Table +Replicate_Wild_Do_Table +Replicate_Wild_Ignore_Table +Last_Errno 0 +Last_Error +Skip_Counter 0 +Exec_Master_Log_Pos 0 +Relay_Log_Space # +Until_Condition None +Until_Log_File +Until_Log_Pos 0 +Master_SSL_Allowed No +Master_SSL_CA_File +Master_SSL_CA_Path +Master_SSL_Cert +Master_SSL_Cipher +Master_SSL_Key +Seconds_Behind_Master # diff --git a/mysql-test/t/rpl_bug33931-slave.opt b/mysql-test/t/rpl_bug33931-slave.opt new file mode 100644 index 00000000000..55fe328a41d --- /dev/null +++ b/mysql-test/t/rpl_bug33931-slave.opt @@ -0,0 +1 @@ +--loose-debug=d,simulate_io_slave_error_on_init,simulate_sql_slave_error_on_init diff --git a/mysql-test/t/rpl_bug33931.test b/mysql-test/t/rpl_bug33931.test new file mode 100644 index 00000000000..788f79d4c1c --- /dev/null +++ b/mysql-test/t/rpl_bug33931.test @@ -0,0 +1,37 @@ +# Test for +# Bug #33931 assertion at write_ignored_events_info_to_relay_log if init_slave_thread() fails +# Bug #33932 assertion at handle_slave_sql if init_slave_thread() fails + +source include/have_debug.inc; +source include/have_log_bin.inc; + +connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,); +connect (slave,127.0.0.1,root,,test,$SLAVE_MYPORT,); + + +connection master; +reset master; + +connection slave; +--disable_warnings +stop slave; +--enable_warnings +reset slave; +start slave; + +connection master; +save_master_pos; +connection slave; + +# +# slave is going to stop because of emulated failures +# but there won't be any crashes nor asserts hit. +# +source include/wait_for_slave_to_stop.inc; + +--replace_result $MASTER_MYPORT MASTER_PORT +--replace_column 1 # 8 # 9 # 23 # 33 # +query_vertical show slave status; + +# no clean-up is needed + diff --git a/sql/slave.cc b/sql/slave.cc index 4a65e9aaa85..272d6f117e9 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -2895,6 +2895,9 @@ void set_slave_thread_default_charset(THD* thd, RELAY_LOG_INFO *rli) static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type) { DBUG_ENTER("init_slave_thread"); +#if !defined(DBUG_OFF) + int simulate_error= 0; +#endif thd->system_thread = (thd_type == SLAVE_THD_SQL) ? SYSTEM_THREAD_SLAVE_SQL : SYSTEM_THREAD_SLAVE_IO; thd->security_ctx->skip_grants(); @@ -2914,10 +2917,17 @@ static int init_slave_thread(THD* thd, SLAVE_THD_TYPE thd_type) thd->thread_id = thread_id++; pthread_mutex_unlock(&LOCK_thread_count); + DBUG_EXECUTE_IF("simulate_io_slave_error_on_init", + simulate_error|= (1 << SLAVE_THD_IO);); + DBUG_EXECUTE_IF("simulate_sql_slave_error_on_init", + simulate_error|= (1 << SLAVE_THD_SQL);); +#if !defined(DBUG_OFF) + if (init_thr_lock() || thd->store_globals() || simulate_error & (1<< thd_type)) +#else if (init_thr_lock() || thd->store_globals()) +#endif { thd->cleanup(); - delete thd; DBUG_RETURN(-1); } @@ -3515,6 +3525,7 @@ slave_begin: thd= new THD; // note that contructor of THD uses DBUG_ ! THD_CHECK_SENTRY(thd); + mi->io_thd = thd; pthread_detach_this_thread(); thd->thread_stack= (char*) &thd; // remember where our stack is @@ -3525,7 +3536,6 @@ slave_begin: sql_print_error("Failed during slave I/O thread initialization"); goto err; } - mi->io_thd = thd; pthread_mutex_lock(&LOCK_thread_count); threads.append(thd); pthread_mutex_unlock(&LOCK_thread_count); @@ -3865,9 +3875,11 @@ slave_begin: thd = new THD; // note that contructor of THD uses DBUG_ ! thd->thread_stack = (char*)&thd; // remember where our stack is + rli->sql_thd= thd; /* Inform waiting threads that slave has started */ rli->slave_run_id++; + rli->slave_running = 1; pthread_detach_this_thread(); if (init_slave_thread(thd, SLAVE_THD_SQL)) @@ -3882,7 +3894,6 @@ slave_begin: goto err; } thd->init_for_queries(); - rli->sql_thd= thd; thd->temporary_tables = rli->save_temporary_tables; // restore temp tables pthread_mutex_lock(&LOCK_thread_count); threads.append(thd); @@ -3895,7 +3906,6 @@ slave_begin: start receiving data so we realize we are not caught up and Seconds_Behind_Master grows. No big deal. */ - rli->slave_running = 1; rli->abort_slave = 0; pthread_mutex_unlock(&rli->run_lock); pthread_cond_broadcast(&rli->start_cond); From 8f6ecbca829b558f3a977a4d4104610535999eba Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Wed, 13 Feb 2008 19:32:19 +0400 Subject: [PATCH 026/139] Fixed bug#33764: Wrong result with IN(), CONCAT() and implicit type conversion. Instead of copying of whole character string from a temporary buffer, the server copied a short-living pointer to that string into a long-living structure. That has been fixed. --- mysql-test/r/select.result | 6 ++++++ mysql-test/t/select.test | 11 +++++++++++ sql/item_cmpfunc.cc | 5 ++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 3ca84bcf34b..180da5cd7d7 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -4328,4 +4328,10 @@ SELECT * FROM t1 WHERE c1 > NULL + 1; c1 DROP TABLE t1; +CREATE TABLE t1 (a VARCHAR(10) NOT NULL PRIMARY KEY); +INSERT INTO t1 (a) VALUES ('foo0'), ('bar0'), ('baz0'); +SELECT * FROM t1 WHERE a IN (CONCAT('foo', 0), 'bar'); +a +foo0 +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index c48f2771aa8..4b52dac680c 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -3672,4 +3672,15 @@ DROP TABLE t1; --echo +########################################################################### + +# +# Bug #33764: Wrong result with IN(), CONCAT() and implicit type conversion +# + +CREATE TABLE t1 (a VARCHAR(10) NOT NULL PRIMARY KEY); +INSERT INTO t1 (a) VALUES ('foo0'), ('bar0'), ('baz0'); +SELECT * FROM t1 WHERE a IN (CONCAT('foo', 0), 'bar'); +DROP TABLE t1; + --echo End of 5.0 tests diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 98bcb256138..17345e76bba 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -2995,7 +2995,10 @@ void in_string::set(uint pos,Item *item) { if (res->uses_buffer_owned_by(str)) res->copy(); - *str= *res; + if (item->type() == Item::FUNC_ITEM) + str->copy(*res); + else + *str= *res; } if (!str->charset()) { From 18770a0de850da1ced460ac117e253c6b6cd0c5d Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Wed, 13 Feb 2008 19:34:12 +0400 Subject: [PATCH 027/139] Fixed bug#31194: Privilege ordering does not order properly for wildcard values. The server ignored escape character before wildcards during the calculation of priority values for sorting of a privilege list. (Actually the server counted an escape character as an ordinary wildcard like % or _). I.e. the table name template with a wildcard character like 'tbl_1' had higher priority in a privilege list than concrete table name without wildcards like 'tbl\_1', and some privileges of 'tbl\_1' was hidden by privileges for 'tbl_1'. The get_sort function has been modified to ignore escaped wildcards as usual. --- mysql-test/r/grant3.result | 17 +++++++++++++++++ mysql-test/t/grant3.test | 26 ++++++++++++++++++++++++++ sql/sql_acl.cc | 4 +++- 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/grant3.result b/mysql-test/r/grant3.result index cc7f46855b2..f38848111ad 100644 --- a/mysql-test/r/grant3.result +++ b/mysql-test/r/grant3.result @@ -138,3 +138,20 @@ SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by user host db select_priv DROP USER CUser2@localhost; DROP USER CUser2@LOCALHOST; +CREATE DATABASE mysqltest_1; +CREATE TABLE mysqltest_1.t1 (a INT); +CREATE USER 'mysqltest1'@'%'; +GRANT SELECT, UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%'; +REVOKE SELECT ON `mysqltest_1`.* FROM 'mysqltest1'@'%'; +GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%'; +FLUSH PRIVILEGES; +SHOW GRANTS; +Grants for mysqltest1@% +GRANT USAGE ON *.* TO 'mysqltest1'@'%' +GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%' +GRANT UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%' +SELECT * FROM mysqltest_1.t1; +a +DROP USER 'mysqltest1'@'%'; +DROP DATABASE mysqltest_1; +End of 5.0 tests diff --git a/mysql-test/t/grant3.test b/mysql-test/t/grant3.test index fac577ef0ff..8eceb851c29 100644 --- a/mysql-test/t/grant3.test +++ b/mysql-test/t/grant3.test @@ -134,3 +134,29 @@ SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by DROP USER CUser2@localhost; DROP USER CUser2@LOCALHOST; + + +# +# Bug#31194: Privilege ordering does not order properly for wildcard values +# + +CREATE DATABASE mysqltest_1; +CREATE TABLE mysqltest_1.t1 (a INT); +CREATE USER 'mysqltest1'@'%'; +GRANT SELECT, UPDATE ON `mysqltest_1`.* TO 'mysqltest1'@'%'; +REVOKE SELECT ON `mysqltest_1`.* FROM 'mysqltest1'@'%'; +GRANT SELECT, UPDATE ON `mysqltest\_1`.* TO 'mysqltest1'@'%'; +FLUSH PRIVILEGES; + +connect (conn1,localhost,mysqltest1,,); +connection conn1; +SHOW GRANTS; +SELECT * FROM mysqltest_1.t1; +disconnect conn1; + +connection default; +DROP USER 'mysqltest1'@'%'; +DROP DATABASE mysqltest_1; + + +--echo End of 5.0 tests diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 134541368e9..851af35da32 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -668,7 +668,9 @@ static ulong get_sort(uint count,...) { for (; *str ; str++) { - if (*str == wild_many || *str == wild_one || *str == wild_prefix) + if (*str == wild_prefix && str[1]) + str++; + else if (*str == wild_many || *str == wild_one) { wild_pos= (uint) (str - start) + 1; break; From 7fa875e42bdcfb48e176c883c071cc5644d0c0ec Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/april.(none)" <> Date: Thu, 14 Feb 2008 16:27:01 +0400 Subject: [PATCH 028/139] BUG#33946 - Join on Federated tables with Unique index gives error 1430 from storage engine Federated may crash a server, return wrong result set, return "ERROR 1030 (HY000): Got error 1430 from storage engine" message when local (engine=federated) table has a key against nullable column. The problem was wrong implementation of function that creates WHERE clause for remote query from key. --- mysql-test/r/federated.result | 24 ++++++++++++++++++++++++ mysql-test/t/federated.test | 21 +++++++++++++++++++++ sql/ha_federated.cc | 22 +++++++++++++++++++--- 3 files changed, 64 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result index a005db4deac..3a934e7fe3c 100644 --- a/mysql-test/r/federated.result +++ b/mysql-test/r/federated.result @@ -2045,6 +2045,30 @@ select 1 from t1 order by a; drop table t1; drop table t1; drop view v1; +CREATE TABLE t1 (a INT, b INT, KEY(a,b)); +INSERT INTO t1 VALUES(NULL,1),(1,NULL),(NULL,NULL),(1,1),(2,2); +CREATE TABLE t1 (a INT, b INT, KEY(a,b)) ENGINE=federated +CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/test/t1'; +SELECT * FROM t1 WHERE a IS NULL; +a b +NULL NULL +NULL 1 +SELECT * FROM t1 WHERE a IS NOT NULL; +a b +1 NULL +1 1 +2 2 +SELECT * FROM t1 WHERE a=1 AND b=1; +a b +1 1 +SELECT * FROM t1 WHERE a IS NULL AND b=1; +a b +NULL 1 +SELECT * FROM t1 WHERE a IS NOT NULL AND b=1; +a b +1 1 +DROP TABLE t1; +DROP TABLE t1; DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; DROP TABLE IF EXISTS federated.t1; diff --git a/mysql-test/t/federated.test b/mysql-test/t/federated.test index d4f22650a32..934db5cd68b 100644 --- a/mysql-test/t/federated.test +++ b/mysql-test/t/federated.test @@ -1716,5 +1716,26 @@ connection slave; drop table t1; drop view v1; +# +# BUG#33946 - Join on Federated tables with Unique index gives error 1430 +# from storage engine +# +connection slave; +CREATE TABLE t1 (a INT, b INT, KEY(a,b)); +INSERT INTO t1 VALUES(NULL,1),(1,NULL),(NULL,NULL),(1,1),(2,2); + +connection master; +--replace_result $SLAVE_MYPORT SLAVE_PORT +eval CREATE TABLE t1 (a INT, b INT, KEY(a,b)) ENGINE=federated +CONNECTION='mysql://root@127.0.0.1:$SLAVE_MYPORT/test/t1'; +SELECT * FROM t1 WHERE a IS NULL; +SELECT * FROM t1 WHERE a IS NOT NULL; +SELECT * FROM t1 WHERE a=1 AND b=1; +SELECT * FROM t1 WHERE a IS NULL AND b=1; +SELECT * FROM t1 WHERE a IS NOT NULL AND b=1; +DROP TABLE t1; + +connection slave; +DROP TABLE t1; source include/federated_cleanup.inc; diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index ac1e0962ffb..c0743bd6c9a 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -1094,10 +1094,20 @@ bool ha_federated::create_where_from_key(String *to, { if (*ptr++) { + /* + We got "IS [NOT] NULL" condition against nullable column. We + distinguish between "IS NOT NULL" and "IS NULL" by flag. For + "IS NULL", flag is set to HA_READ_KEY_EXACT. + */ if (emit_key_part_name(&tmp, key_part) || - tmp.append(FEDERATED_ISNULL)) + tmp.append(ranges[i]->flag == HA_READ_KEY_EXACT ? + FEDERATED_ISNULL : " IS NOT NULL ")) DBUG_RETURN(1); - continue; + /* + We need to adjust pointer and length to be prepared for next + key part. As well as check if this was last key part. + */ + goto prepare_for_next_key_part; } } @@ -1199,12 +1209,18 @@ bool ha_federated::create_where_from_key(String *to, if (tmp.append(FEDERATED_CLOSEPAREN)) DBUG_RETURN(1); +prepare_for_next_key_part: if (store_length >= length) break; DBUG_PRINT("info", ("remainder %d", remainder)); DBUG_ASSERT(remainder > 1); length-= store_length; - ptr+= store_length; + /* + For nullable columns, null-byte is already skipped before, that is + ptr was incremented by 1. Since store_length still counts null-byte, + we need to subtract 1 from store_length. + */ + ptr+= store_length - test(key_part->null_bit); if (tmp.append(FEDERATED_AND)) DBUG_RETURN(1); From 871eb3e5adc5f61918d74c307e145d9bf1ee3791 Mon Sep 17 00:00:00 2001 From: "aelkin/andrei@mysql1000.dsl.inet.fi" <> Date: Thu, 14 Feb 2008 16:28:32 +0200 Subject: [PATCH 029/139] bug#33329 extraneous ROLLBACK in binlog on connection does not use trans tables changes for an assert and an updated results file. --- mysql-test/r/mix_innodb_myisam_binlog.result | 2 +- sql/sql_update.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/mix_innodb_myisam_binlog.result b/mysql-test/r/mix_innodb_myisam_binlog.result index e1968ac7ef8..b1d328a61dc 100644 --- a/mysql-test/r/mix_innodb_myisam_binlog.result +++ b/mysql-test/r/mix_innodb_myisam_binlog.result @@ -447,7 +447,7 @@ UPDATE t4,t3 SET t4.a=t3.a + bug27417(1) /* top level non-ta table */; ERROR 23000: Duplicate entry '2' for key 1 show master status /* the offset must denote there is the query */; File Position Binlog_Do_DB Binlog_Ignore_DB -master-bin.000001 369 +master-bin.000001 230 select count(*) from t1 /* must be 4 */; count(*) 4 diff --git a/sql/sql_update.cc b/sql/sql_update.cc index e5017058659..9c82bde9497 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -1482,7 +1482,7 @@ void multi_update::send_error(uint errcode,const char *err) if (trans_safe) { - DBUG_ASSERT(transactional_tables); + DBUG_ASSERT(!updated || transactional_tables); (void) ha_autocommit_or_rollback(thd, 1); } else From fe6d4aef3a692847cc908f6970f8c7c778484ff0 Mon Sep 17 00:00:00 2001 From: "ramil/ram@mysql.com/ramil.myoffice.izhnet.ru" <> Date: Fri, 15 Feb 2008 16:03:54 +0400 Subject: [PATCH 030/139] Fix for bug #33304: Test 'func_group' hangs on Mac OS X 10.4 PowerPC 64-bit Problem: SLEEP(0) never returns on 64-bit Mac OS X due to a bug in pthread_cond_timedwait(). Fix: when given a very short timeout just return immediately. --- sql/item_func.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sql/item_func.cc b/sql/item_func.cc index 639e069d24e..e20b0762ea2 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -3729,6 +3729,18 @@ longlong Item_func_sleep::val_int() DBUG_ASSERT(fixed == 1); double time= args[0]->val_real(); + /* + On 64-bit OSX pthread_cond_timedwait() waits forever + if passed abstime time has already been exceeded by + the system time. + When given a very short timeout (< 10 mcs) just return + immediately. + We assume that the lines between this test and the call + to pthread_cond_timedwait() will be executed in less than 0.00001 sec. + */ + if (time < 0.00001) + return 0; + set_timespec_nsec(abstime, (ulonglong)(time * ULL(1000000000))); pthread_cond_init(&cond, NULL); From 490ec62be470508b007b0edfd3d35421bb359a4e Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@magare.gmz" <> Date: Fri, 15 Feb 2008 15:47:32 +0200 Subject: [PATCH 031/139] Bug #31887: DML Select statement not returning same results when executed in version 5 Zero fill is a field attribute only. So we can't always propagate constants for zerofill fields : the values and expression results don't have that flag. Fixed by converting the const value to a string and using that in const propagation when the context allows it. Disable const propagation for fields with ZEROFILL flag in all the other cases. --- mysql-test/r/compare.result | 38 +++++++++++++++++++++++++++++++++++++ mysql-test/t/compare.test | 31 ++++++++++++++++++++++++++++++ sql/item.cc | 31 ++++++++++++++++++++++++++++++ sql/mysql_priv.h | 1 + 4 files changed, 101 insertions(+) diff --git a/mysql-test/r/compare.result b/mysql-test/r/compare.result index c141b255716..c9ef41e0582 100644 --- a/mysql-test/r/compare.result +++ b/mysql-test/r/compare.result @@ -53,3 +53,41 @@ a b Warnings: Warning 1292 Truncated incorrect DOUBLE value: '' drop table if exists t1; +CREATE TABLE t1 (b int(2) zerofill, c int(2) zerofill); +INSERT INTO t1 (b,c) VALUES (1,2), (1,1), (2,2); +SELECT CONCAT(b,c), CONCAT(b,c) = '0101' FROM t1; +CONCAT(b,c) CONCAT(b,c) = '0101' +0102 0 +0101 1 +0202 0 +EXPLAIN EXTENDED SELECT b,c FROM t1 WHERE b = 1 AND CONCAT(b,c) = '0101'; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 ALL NULL NULL NULL NULL 3 Using where +Warnings: +Note 1003 select `test`.`t1`.`b` AS `b`,`test`.`t1`.`c` AS `c` from `test`.`t1` where ((`test`.`t1`.`b` = 1) and (concat(_binary'01',`test`.`t1`.`c`) = _latin1'0101')) +SELECT b,c FROM t1 WHERE b = 1 AND CONCAT(b,c) = '0101'; +b c +01 01 +CREATE TABLE t2 (a int); +INSERT INTO t2 VALUES (1),(2); +SELECT a, +(SELECT COUNT(*) FROM t1 +WHERE b = t2.a AND CONCAT(b,c) = CONCAT('0',t2.a,'01')) x +FROM t2 ORDER BY a; +a x +1 1 +2 0 +EXPLAIN EXTENDED +SELECT a, +(SELECT COUNT(*) FROM t1 +WHERE b = t2.a AND CONCAT(b,c) = CONCAT('0',t2.a,'01')) x +FROM t2 ORDER BY a; +id select_type table type possible_keys key key_len ref rows Extra +1 PRIMARY t2 ALL NULL NULL NULL NULL 2 Using filesort +2 DEPENDENT SUBQUERY t1 ALL NULL NULL NULL NULL 3 Using where +Warnings: +Note 1276 Field or reference 'test.t2.a' of SELECT #2 was resolved in SELECT #1 +Note 1276 Field or reference 'test.t2.a' of SELECT #2 was resolved in SELECT #1 +Note 1003 select `test`.`t2`.`a` AS `a`,(select count(0) AS `COUNT(*)` from `test`.`t1` where ((`test`.`t1`.`b` = `test`.`t2`.`a`) and (concat(`test`.`t1`.`b`,`test`.`t1`.`c`) = concat(_latin1'0',`test`.`t2`.`a`,_latin1'01')))) AS `x` from `test`.`t2` order by `test`.`t2`.`a` +DROP TABLE t1,t2; +End of 5.0 tests diff --git a/mysql-test/t/compare.test b/mysql-test/t/compare.test index 337035a8095..8863ed825c2 100644 --- a/mysql-test/t/compare.test +++ b/mysql-test/t/compare.test @@ -46,3 +46,34 @@ insert into t1 values (0x01,0x01); select * from t1 where a=b; select * from t1 where a=b and b=0x01; drop table if exists t1; + +# +# Bug #31887: DML Select statement not returning same results when executed +# in version 5 +# + +CREATE TABLE t1 (b int(2) zerofill, c int(2) zerofill); +INSERT INTO t1 (b,c) VALUES (1,2), (1,1), (2,2); + +SELECT CONCAT(b,c), CONCAT(b,c) = '0101' FROM t1; + +EXPLAIN EXTENDED SELECT b,c FROM t1 WHERE b = 1 AND CONCAT(b,c) = '0101'; +SELECT b,c FROM t1 WHERE b = 1 AND CONCAT(b,c) = '0101'; + +CREATE TABLE t2 (a int); +INSERT INTO t2 VALUES (1),(2); + +SELECT a, + (SELECT COUNT(*) FROM t1 + WHERE b = t2.a AND CONCAT(b,c) = CONCAT('0',t2.a,'01')) x +FROM t2 ORDER BY a; + +EXPLAIN EXTENDED +SELECT a, + (SELECT COUNT(*) FROM t1 + WHERE b = t2.a AND CONCAT(b,c) = CONCAT('0',t2.a,'01')) x +FROM t2 ORDER BY a; + +DROP TABLE t1,t2; + +--echo End of 5.0 tests diff --git a/sql/item.cc b/sql/item.cc index 3555df40060..e3e17a3ceea 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -4072,6 +4072,30 @@ bool Item_field::subst_argument_checker(byte **arg) } +/** + Convert a numeric value to a zero-filled string + + @param[in,out] item the item to operate on + @param field The field that this value is equated to + + This function converts a numeric value to a string. In this conversion + the zero-fill flag of the field is taken into account. + This is required so the resulting string value can be used instead of + the field reference when propagating equalities. +*/ + +static void convert_zerofill_number_to_string(Item **item, Field_num *field) +{ + char buff[MAX_FIELD_WIDTH],*pos; + String tmp(buff,sizeof(buff), field->charset()), *res; + + res= (*item)->val_str(&tmp); + field->prepend_zeros(res); + pos= (char *) sql_strmake (res->ptr(), res->length()); + *item= new Item_string(pos, res->length(), field->charset()); +} + + /* Set a pointer to the multiple equality the field reference belongs to (if any) @@ -4120,6 +4144,13 @@ Item *Item_field::equal_fields_propagator(byte *arg) if (!item || (cmp_context != (Item_result)-1 && item->cmp_context != cmp_context)) item= this; + else if (field && (field->flags & ZEROFILL_FLAG) && IS_NUM(field->type())) + { + if (item && cmp_context != INT_RESULT) + convert_zerofill_number_to_string(&item, (Field_num *)field); + else + item= this; + } return item; } diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 47396748da6..821495ddecb 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -73,6 +73,7 @@ extern const char *primary_key_name; #include "mysql_com.h" #include #include "unireg.h" +#define IS_NUM(t) ((t) <= FIELD_TYPE_INT24 || (t) == FIELD_TYPE_YEAR || (t) == FIELD_TYPE_NEWDECIMAL) void init_sql_alloc(MEM_ROOT *root, uint block_size, uint pre_alloc_size); gptr sql_alloc(unsigned size); From 7abba3b0212461a4a0b5b83e5a8b2dfb9efe2658 Mon Sep 17 00:00:00 2001 From: "holyfoot/hf@mysql.com/hfmain.(none)" <> Date: Sun, 17 Feb 2008 15:48:17 +0400 Subject: [PATCH 032/139] Bug #32942 now() - interval '7200' second NOT pre-calculated, causing "full table scan" Problem is not about intervals and doesn't actually cause 'full table scan'. We have an optimization for DISTINCT when we have 'DISTINCT field_from_first_join_table' we don't need to read all the rows from the JOIN-ed table if we found one conforming row. It stopped working in 5.0 as we return NESTED_LOOP_OK if we came upon that case in the evaluate_join_record() and that doesn't break the recordreading loop in sub_select(). Fixed by returning NESTED_LOOP_NO_MORE_ROWS in this case. --- mysql-test/r/select.result | 21 +++++++++++++++++++++ mysql-test/t/select.test | 18 ++++++++++++++++++ sql/sql_select.cc | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/select.result b/mysql-test/r/select.result index 3ca84bcf34b..b70809d5d78 100644 --- a/mysql-test/r/select.result +++ b/mysql-test/r/select.result @@ -4328,4 +4328,25 @@ SELECT * FROM t1 WHERE c1 > NULL + 1; c1 DROP TABLE t1; +CREATE TABLE t1 (a INT, b INT); +CREATE TABLE t2 (a INT, c INT, KEY(a)); +INSERT INTO t1 VALUES (1, 1), (2, 2); +INSERT INTO t2 VALUES (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), +(2, 1), (2, 2), (2, 3), (2, 4), (2, 5), +(3, 1), (3, 2), (3, 3), (3, 4), (3, 5), +(4, 1), (4, 2), (4, 3), (4, 4), (4, 5); +FLUSH STATUS; +SELECT DISTINCT b FROM t1 LEFT JOIN t2 USING(a) WHERE c <= 3; +b +1 +2 +SHOW STATUS LIKE 'Handler_read%'; +Variable_name Value +Handler_read_first 0 +Handler_read_key 2 +Handler_read_next 0 +Handler_read_prev 0 +Handler_read_rnd 0 +Handler_read_rnd_next 6 +DROP TABLE t1, t2; End of 5.0 tests diff --git a/mysql-test/t/select.test b/mysql-test/t/select.test index c48f2771aa8..51e0aeace7c 100644 --- a/mysql-test/t/select.test +++ b/mysql-test/t/select.test @@ -3672,4 +3672,22 @@ DROP TABLE t1; --echo +# +# Bug #32942 now() - interval '7200' second is NOT pre-calculated, causing "full table scan" +# + +CREATE TABLE t1 (a INT, b INT); +CREATE TABLE t2 (a INT, c INT, KEY(a)); + +INSERT INTO t1 VALUES (1, 1), (2, 2); +INSERT INTO t2 VALUES (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), + (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), + (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), + (4, 1), (4, 2), (4, 3), (4, 4), (4, 5); + +FLUSH STATUS; +SELECT DISTINCT b FROM t1 LEFT JOIN t2 USING(a) WHERE c <= 3; +SHOW STATUS LIKE 'Handler_read%'; +DROP TABLE t1, t2; + --echo End of 5.0 tests diff --git a/sql/sql_select.cc b/sql/sql_select.cc index d6cb072ce9b..60ce01c9d89 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -10791,7 +10791,7 @@ evaluate_join_record(JOIN *join, JOIN_TAB *join_tab, we found a row, as no new rows can be added to the result. */ if (not_used_in_distinct && found_records != join->found_records) - return NESTED_LOOP_OK; + return NESTED_LOOP_NO_MORE_ROWS; } else join_tab->read_record.file->unlock_row(); From 921e1cc4bb217b74f29e3e0b28df253df34c8d83 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/june.mysql.com" <> Date: Tue, 19 Feb 2008 18:16:17 +0400 Subject: [PATCH 033/139] BUG#34289 - Incorrect NAME_CONST substitution in stored procedures breaks replication NAME_CONST() didn't replicate constant character set and collation correctly. With this fix NAME_CONST() inherits collation from the value argument. --- mysql-test/r/func_misc.result | 3 +++ mysql-test/t/func_misc.test | 6 ++++++ sql/item.cc | 1 + 3 files changed, 10 insertions(+) diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result index 4f6b6d3a0d8..fa9ca3539d6 100644 --- a/mysql-test/r/func_misc.result +++ b/mysql-test/r/func_misc.result @@ -225,4 +225,7 @@ select min(a) from t1 group by inet_ntoa(a); min(a) -2 drop table t1; +SELECT NAME_CONST('var', 'value') COLLATE latin1_general_cs; +NAME_CONST('var', 'value') COLLATE latin1_general_cs +value End of 5.0 tests diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test index ccb59df5677..17a0dbe50a7 100644 --- a/mysql-test/t/func_misc.test +++ b/mysql-test/t/func_misc.test @@ -237,5 +237,11 @@ insert into t1 values (-1), (-2); select min(a) from t1 group by inet_ntoa(a); drop table t1; +# +# BUG#34289 - Incorrect NAME_CONST substitution in stored procedures breaks +# replication +# +SELECT NAME_CONST('var', 'value') COLLATE latin1_general_cs; + --echo End of 5.0 tests diff --git a/sql/item.cc b/sql/item.cc index ffb18054750..d0dc8201577 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1240,6 +1240,7 @@ bool Item_name_const::fix_fields(THD *thd, Item **ref) return TRUE; } set_name(item_name->ptr(), (uint) item_name->length(), system_charset_info); + collation.set(value_item->collation.collation, DERIVATION_IMPLICIT); max_length= value_item->max_length; decimals= value_item->decimals; fixed= 1; From 5b508f2d16078eed2e439442557580810ac95fcb Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@magare.gmz" <> Date: Tue, 19 Feb 2008 17:27:18 +0200 Subject: [PATCH 034/139] Bug #30604: different flagging of time_zone_used in normal and ps-protocol Finding a routine should be a transparent operation as far as the binary log is concerned. But it was influencing the binary log because of the TIMESTAMP column in the proc table. Fixed by preserving and restoring the time_zone usage flag when searching for a stored routine in the proc table. --- mysql-test/r/binlog_innodb.result | 16 ++++++++++++++++ mysql-test/r/ctype_cp932_binlog.result | 6 +++--- mysql-test/t/binlog_innodb.test | 25 +++++++++++++++++++++++++ sql/sp.cc | 6 ++++++ 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/binlog_innodb.result b/mysql-test/r/binlog_innodb.result index 93414a13ba1..18b4b7c1c93 100644 --- a/mysql-test/r/binlog_innodb.result +++ b/mysql-test/r/binlog_innodb.result @@ -21,3 +21,19 @@ show status like "binlog_cache_disk_use"; Variable_name Value Binlog_cache_disk_use 1 drop table t1; +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=MyISAM; +CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB; +CREATE FUNCTION bug23333() +RETURNS int(11) +DETERMINISTIC +BEGIN +INSERT INTO t1 VALUES (NULL); +SELECT COUNT(*) FROM t1 INTO @a; +RETURN @a; +END| +INSERT INTO t2 VALUES (2),(10+bug23333()); +SHOW MASTER STATUS; +File Position Binlog_Do_DB Binlog_Ignore_DB +# 184136 +DROP FUNCTION bug23333; +DROP TABLE t1, t2; diff --git a/mysql-test/r/ctype_cp932_binlog.result b/mysql-test/r/ctype_cp932_binlog.result index 3385cd20ec4..0b4ca93a0dd 100644 --- a/mysql-test/r/ctype_cp932_binlog.result +++ b/mysql-test/r/ctype_cp932_binlog.result @@ -40,6 +40,6 @@ IN ind DECIMAL(10,2)) BEGIN INSERT INTO t4 VALUES (ins1, ins2, ind); END -master-bin.000001 776 Query 1 995 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93)) -master-bin.000001 995 Query 1 1084 use `test`; DROP PROCEDURE bug18293 -master-bin.000001 1084 Query 1 1163 use `test`; DROP TABLE t4 +master-bin.000001 776 Query 1 987 use `test`; INSERT INTO t4 VALUES ( NAME_CONST('ins1',_latin1 0x466F6F2773206120426172), NAME_CONST('ins2',_cp932 0xED40ED41ED42), NAME_CONST('ind',47.93)) +master-bin.000001 987 Query 1 1076 use `test`; DROP PROCEDURE bug18293 +master-bin.000001 1076 Query 1 1155 use `test`; DROP TABLE t4 diff --git a/mysql-test/t/binlog_innodb.test b/mysql-test/t/binlog_innodb.test index 2da7b2b0895..47b09719ef5 100644 --- a/mysql-test/t/binlog_innodb.test +++ b/mysql-test/t/binlog_innodb.test @@ -37,3 +37,28 @@ show status like "binlog_cache_disk_use"; drop table t1; +# +# Bug #30604: different flagging of time_zone_used in normal and ps-protocol +# + +CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=MyISAM; +CREATE TABLE t2 (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY) ENGINE=InnoDB; + +DELIMITER |; +# the function does not deal with time objects +CREATE FUNCTION bug23333() +RETURNS int(11) +DETERMINISTIC +BEGIN + INSERT INTO t1 VALUES (NULL); + SELECT COUNT(*) FROM t1 INTO @a; + RETURN @a; +END| + +DELIMITER ;| + +INSERT INTO t2 VALUES (2),(10+bug23333()); +--replace_column 1 # +SHOW MASTER STATUS; +DROP FUNCTION bug23333; +DROP TABLE t1, t2; diff --git a/sql/sp.cc b/sql/sp.cc index f8b039626f9..7224d3c4f0e 100644 --- a/sql/sp.cc +++ b/sql/sp.cc @@ -261,6 +261,7 @@ db_find_routine(THD *thd, int type, sp_name *name, sp_head **sphp) char buff[65]; String str(buff, sizeof(buff), &my_charset_bin); ulong sql_mode; + bool saved_time_zone_used= thd->time_zone_used; Open_tables_state open_tables_state_backup; DBUG_ENTER("db_find_routine"); DBUG_PRINT("enter", ("type: %d name: %.*s", @@ -370,6 +371,11 @@ db_find_routine(THD *thd, int type, sp_name *name, sp_head **sphp) definer, created, modified); done: + /* + Restore the time zone flag as the timezone usage in proc table + does not affect replication. + */ + thd->time_zone_used= saved_time_zone_used; if (table) close_proc_table(thd, &open_tables_state_backup); DBUG_RETURN(ret); From 56d955a5a00ede27e386d80989297779c689e405 Mon Sep 17 00:00:00 2001 From: "evgen@moonbone.local" <> Date: Wed, 20 Feb 2008 17:41:39 +0300 Subject: [PATCH 035/139] Bug#33266: Incorrect test case for the bug#31048 failing on some platforms. The test case for the bug#31048 checks that there is no crash on stack overrun. But due to different stack sizes on different platforms it failed on some of them. The new test case check that a query with at least 4 level subquery nesting works without the stack overrun nesting and other levels of nesting doesn't cause a crash. --- mysql-test/r/subselect.result | 128 ++++++++-------------------------- mysql-test/t/subselect.test | 124 ++++++++++---------------------- 2 files changed, 69 insertions(+), 183 deletions(-) diff --git a/mysql-test/r/subselect.result b/mysql-test/r/subselect.result index 527c45671f4..2de2589fc92 100644 --- a/mysql-test/r/subselect.result +++ b/mysql-test/r/subselect.result @@ -4147,103 +4147,37 @@ DROP TABLE t1,t2; create table t1(a int,b int,key(a),key(b)); insert into t1(a,b) values (1,2),(2,1),(2,3),(3,4),(5,4),(5,5), (6,7),(7,4),(5,3); -select sum(a),a from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 -)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1) -group by a; -sum(a) a -select sum(a),a from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1) -group by a; -ERROR HY000: Thread stack overrun detected -explain select sum(a),a from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 -)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1) -group by a; -id select_type table type possible_keys key key_len ref rows Extra -1 PRIMARY t1 index a a 5 NULL 9 Using where; Using index -2 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -3 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -4 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -5 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -6 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -7 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -8 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -9 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -10 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -11 SUBQUERY t1 range a a 5 NULL 9 Using where; Using temporary; Using filesort -12 SUBQUERY t1 range a a 5 NULL 1 Using where; Using temporary; Using filesort -13 SUBQUERY t1 index NULL a 5 NULL 9 Using index -explain select sum(a),a from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( -select sum(a) from t1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1 -)group by b limit 1)group by b limit 1)group by b limit 1) -group by a; -ERROR HY000: Thread stack overrun detected +5 +4 +3 +2 +1 +26 +25 +24 +23 +22 +21 +20 +19 +18 +17 +16 +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 drop table t1; CREATE TABLE t1 (a1 INT, a2 INT); CREATE TABLE t2 (b1 INT, b2 INT); diff --git a/mysql-test/t/subselect.test b/mysql-test/t/subselect.test index 326d80f84c1..c5edd5414e3 100644 --- a/mysql-test/t/subselect.test +++ b/mysql-test/t/subselect.test @@ -3006,92 +3006,44 @@ DROP TABLE t1,t2; create table t1(a int,b int,key(a),key(b)); insert into t1(a,b) values (1,2),(2,1),(2,3),(3,4),(5,4),(5,5), (6,7),(7,4),(5,3); -# test for the stack overflow bug -select sum(a),a from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 - )group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1) -group by a; ---replace_regex /overrun.*$/overrun detected/ ---error 1436 -select sum(a),a from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1) -group by a; -# test for the memory consumption & subquery slowness bug -explain select sum(a),a from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 - )group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1) -group by a; ---replace_regex /overrun.*$/overrun detected/ ---error 1436 -explain select sum(a),a from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 where a> ( select sum(a) from t1 where a> ( - select sum(a) from t1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1 - )group by b limit 1)group by b limit 1)group by b limit 1) -group by a; + +let $nesting= 26; +let $should_work_nesting= 5; +let $start= select sum(a),a from t1 where a> ( select sum(a) from t1 ; +let $end= )group by a ; +let $start_app= where a> ( select sum(a) from t1 ; +let $end_pre= )group by b limit 1 ; + +--disable_result_log +--disable_query_log +# At least 4 level nesting should work without errors +while ($should_work_nesting) +{ +--echo $should_work_nesting + eval $start $end; + eval explain $start $end; + let $start= $start + $start_app; + let $end= $end_pre + $end; + dec $should_work_nesting; +} +# Other may fail with the 'stack overrun error' +while ($nesting) +{ +--echo $nesting +--error 0,1436 + eval $start $end; +--error 0,1436 + eval explain $start $end; + let $start= $start + $start_app; + let $end= $end_pre + $end; + dec $nesting; +} +--enable_result_log +--enable_query_log drop table t1; # From 0473205592a3cae199d67bff312dc5d0d02a68d6 Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Wed, 20 Feb 2008 16:45:24 -0300 Subject: [PATCH 036/139] Bug#32265 Server returns different metadata if prepared statement is used Executing a prepared statement associated with a materialized cursor yields to the client a metadata packet with wrong table and database names. The problem was occurring because the server was sending the the name of the temporary table used by the cursor instead of the table name of the original table. The same problem occurs when selecting from views, in which case the table name was being sent and not the name of the view. The solution is to fill the list item from the temporary table but preserving the table and database names of the original fields. This is achieved by tweaking the Select_materialize to accept a pointer to the Materialized_cursor class which contains the item list to be filled. --- sql/sql_cursor.cc | 98 ++++++++++++++++++++++++++++++--------- tests/mysql_client_test.c | 82 ++++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+), 22 deletions(-) diff --git a/sql/sql_cursor.cc b/sql/sql_cursor.cc index 2e98da42be1..c2345f1f2cd 100644 --- a/sql/sql_cursor.cc +++ b/sql/sql_cursor.cc @@ -88,6 +88,7 @@ class Materialized_cursor: public Server_side_cursor public: Materialized_cursor(select_result *result, TABLE *table); + int fill_item_list(THD *thd, List &send_fields); virtual bool is_open() const { return table != 0; } virtual int open(JOIN *join __attribute__((unused))); virtual void fetch(ulong num_rows); @@ -109,6 +110,7 @@ class Select_materialize: public select_union { select_result *result; /* the result object of the caller (PS or SP) */ public: + Materialized_cursor *materialized_cursor; Select_materialize(select_result *result_arg) :result(result_arg) {} virtual bool send_fields(List &list, uint flags); }; @@ -152,7 +154,7 @@ int mysql_open_cursor(THD *thd, uint flags, select_result *result, if (! (sensitive_cursor= new (thd->mem_root) Sensitive_cursor(thd, result))) { - delete result; + delete result_materialize; return 1; } @@ -174,13 +176,13 @@ int mysql_open_cursor(THD *thd, uint flags, select_result *result, /* Possible options here: - a sensitive cursor is open. In this case rc is 0 and - result_materialize->table is NULL, or + result_materialize->materialized_cursor is NULL, or - a materialized cursor is open. In this case rc is 0 and - result_materialize->table is not NULL - - an error occured during materializaton. - result_materialize->table is not NULL, but rc != 0 + result_materialize->materialized is not NULL + - an error occurred during materialization. + result_materialize->materialized_cursor is not NULL, but rc != 0 - successful completion of mysql_execute_command without - a cursor: rc is 0, result_materialize->table is NULL, + a cursor: rc is 0, result_materialize->materialized_cursor is NULL, sensitive_cursor is not open. This is possible if some command writes directly to the network, bypassing select_result mechanism. An example of @@ -191,7 +193,7 @@ int mysql_open_cursor(THD *thd, uint flags, select_result *result, if (sensitive_cursor->is_open()) { - DBUG_ASSERT(!result_materialize->table); + DBUG_ASSERT(!result_materialize->materialized_cursor); /* It's safer if we grab THD state after mysql_execute_command is finished and not in Sensitive_cursor::open(), because @@ -202,18 +204,10 @@ int mysql_open_cursor(THD *thd, uint flags, select_result *result, *pcursor= sensitive_cursor; goto end; } - else if (result_materialize->table) + else if (result_materialize->materialized_cursor) { - Materialized_cursor *materialized_cursor; - TABLE *table= result_materialize->table; - MEM_ROOT *mem_root= &table->mem_root; - - if (!(materialized_cursor= new (mem_root) - Materialized_cursor(result, table))) - { - rc= 1; - goto err_open; - } + Materialized_cursor *materialized_cursor= + result_materialize->materialized_cursor; if ((rc= materialized_cursor->open(0))) { @@ -229,8 +223,6 @@ int mysql_open_cursor(THD *thd, uint flags, select_result *result, err_open: DBUG_ASSERT(! (sensitive_cursor && sensitive_cursor->is_open())); delete sensitive_cursor; - if (result_materialize->table) - free_tmp_table(thd, result_materialize->table); end: delete result_materialize; return rc; @@ -544,6 +536,51 @@ Materialized_cursor::Materialized_cursor(select_result *result_arg, } +/** + Preserve the original metadata that would be sent to the client. + + @param thd Thread identifier. + @param send_fields List of fields that would be sent. +*/ + +int Materialized_cursor::fill_item_list(THD *thd, List &send_fields) +{ + Query_arena backup_arena; + int rc; + List_iterator_fast it_org(send_fields); + List_iterator_fast it_dst(item_list); + Item *item_org; + Item *item_dst; + + thd->set_n_backup_active_arena(this, &backup_arena); + + if ((rc= table->fill_item_list(&item_list))) + goto end; + + DBUG_ASSERT(send_fields.elements == item_list.elements); + + /* + Unless we preserve the original metadata, it will be lost, + since new fields describe columns of the temporary table. + Allocate a copy of the name for safety only. Currently + items with original names are always kept in memory, + but in case this changes a memory leak may be hard to notice. + */ + while ((item_dst= it_dst++, item_org= it_org++)) + { + Send_field send_field; + Item_ident *ident= static_cast(item_dst); + item_org->make_field(&send_field); + + ident->db_name= thd->strdup(send_field.db_name); + ident->table_name= thd->strdup(send_field.table_name); + } +end: + thd->restore_active_arena(this, &backup_arena); + /* Check for thd->is_error() in case of OOM */ + return rc || thd->net.report_error; +} + int Materialized_cursor::open(JOIN *join __attribute__((unused))) { THD *thd= fake_unit.thd; @@ -552,8 +589,7 @@ int Materialized_cursor::open(JOIN *join __attribute__((unused))) thd->set_n_backup_active_arena(this, &backup_arena); /* Create a list of fields and start sequential scan */ - rc= (table->fill_item_list(&item_list) || - result->prepare(item_list, &fake_unit) || + rc= (result->prepare(item_list, &fake_unit) || table->file->ha_rnd_init(TRUE)); thd->restore_active_arena(this, &backup_arena); if (rc == 0) @@ -664,6 +700,24 @@ bool Select_materialize::send_fields(List &list, uint flags) if (create_result_table(unit->thd, unit->get_unit_column_types(), FALSE, thd->options | TMP_TABLE_ALL_COLUMNS, "")) return TRUE; + + materialized_cursor= new (&table->mem_root) + Materialized_cursor(result, table); + + if (! materialized_cursor) + { + free_tmp_table(table->in_use, table); + table= 0; + return TRUE; + } + if (materialized_cursor->fill_item_list(unit->thd, list)) + { + delete materialized_cursor; + table= 0; + materialized_cursor= 0; + return TRUE; + } + return FALSE; } diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 9cc2af25529..bb264ba8a53 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -16152,6 +16152,87 @@ static void test_bug31669() DBUG_VOID_RETURN; } + +/** + Bug#32265 Server returns different metadata if prepared statement is used +*/ + +static void test_bug32265() +{ + int rc, i; + MYSQL_STMT *stmt; + MYSQL_FIELD *field; + + DBUG_ENTER("test_bug32265"); + myheader("test_bug32265"); + + rc= mysql_query(mysql, "DROP TABLE IF EXISTS t1"); + myquery(rc); + rc= mysql_query(mysql, "CREATE TABLE t1 (a INTEGER)"); + myquery(rc); + rc= mysql_query(mysql, "INSERT INTO t1 VALUES (1)"); + myquery(rc); + rc= mysql_query(mysql, "CREATE VIEW v1 AS SELECT * FROM t1"); + myquery(rc); + + stmt= open_cursor("SELECT * FROM t1"); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + + field= stmt->mysql->fields; + DIE_UNLESS(strcmp(field->table, "t1") == 0); + DIE_UNLESS(strcmp(field->org_table, "t1") == 0); + DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_stmt_close(stmt); + + stmt= open_cursor("SELECT a '' FROM t1 ``"); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + + field= stmt->mysql->fields; + DIE_UNLESS(strcmp(field->table, "") == 0); + DIE_UNLESS(strcmp(field->org_table, "t1") == 0); + DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_stmt_close(stmt); + + stmt= open_cursor("SELECT a '' FROM t1 ``"); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + + field= stmt->mysql->fields; + DIE_UNLESS(strcmp(field->table, "") == 0); + DIE_UNLESS(strcmp(field->org_table, "t1") == 0); + DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_stmt_close(stmt); + + stmt= open_cursor("SELECT * FROM v1"); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + + field= stmt->mysql->fields; + DIE_UNLESS(strcmp(field->table, "v1") == 0); + DIE_UNLESS(strcmp(field->org_table, "t1") == 0); + DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_stmt_close(stmt); + + stmt= open_cursor("SELECT * FROM v1 /* SIC */ GROUP BY 1"); + rc= mysql_stmt_execute(stmt); + check_execute(stmt, rc); + + field= stmt->mysql->fields; + DIE_UNLESS(strcmp(field->table, "v1") == 0); + DIE_UNLESS(strcmp(field->org_table, "t1") == 0); + DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_stmt_close(stmt); + + rc= mysql_query(mysql, "DROP VIEW v1"); + myquery(rc); + rc= mysql_query(mysql, "DROP TABLE t1"); + myquery(rc); + + DBUG_VOID_RETURN; +} + /* Read and parse arguments and MySQL options from my.cnf */ @@ -16446,6 +16527,7 @@ static struct my_tests_st my_tests[]= { { "test_bug29948", test_bug29948 }, { "test_bug29306", test_bug29306 }, { "test_bug31669", test_bug31669 }, + { "test_bug32265", test_bug32265 }, { 0, 0 } }; From 4b821c0cbd7bf87b1ac6de6a84207e9fd0383e62 Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Wed, 20 Feb 2008 22:11:06 -0300 Subject: [PATCH 037/139] Post-merge fix to silence a compilation warning introduced by patch for bug 32265 . --- tests/mysql_client_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index bb264ba8a53..25522a88445 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -16159,7 +16159,7 @@ static void test_bug31669() static void test_bug32265() { - int rc, i; + int rc; MYSQL_STMT *stmt; MYSQL_FIELD *field; From f5cb5fdc4fce3b6469655ee2ecc828606d41f7c2 Mon Sep 17 00:00:00 2001 From: "anozdrin/alik@quad." <> Date: Thu, 21 Feb 2008 12:17:32 +0300 Subject: [PATCH 038/139] Fix for Bug#34337: Server crash when Altering a view using a table name. The problem was that fill_defined_view_parts() did not return an error if a table is going to be altered. That happened if the table was already in the table cache. In that case, open_table() returned non-NULL value (valid TABLE-instance from the cache). The fix is to ensure that an error is thrown even if the table is in the cache. (This is a backport of the original patch for 5.1) --- mysql-test/r/view.result | 21 +++++++++++++++++++- mysql-test/r/view_grant.result | 1 + mysql-test/t/view.test | 36 +++++++++++++++++++++++++++++++++- mysql-test/t/view_grant.test | 1 + sql/sql_view.cc | 29 ++++++++++++++++++++++++--- 5 files changed, 83 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index fb36304e562..633278a9781 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -3618,4 +3618,23 @@ ERROR HY000: Field of view 'test.v1' underlying table doesn't have a default val set @@sql_mode=@old_mode; drop view v1; drop table t1; -End of 5.0 tests. +# ----------------------------------------------------------------- +# -- Bug#34337: Server crash when Altering a view using a table name. +# ----------------------------------------------------------------- + +DROP TABLE IF EXISTS t1; + +CREATE TABLE t1(c1 INT); + +SELECT * FROM t1; +c1 +ALTER ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW t1 (c2) AS SELECT (1); +ERROR HY000: 'test.t1' is not VIEW + +DROP TABLE t1; + +# -- End of test case for Bug#34337. + +# ----------------------------------------------------------------- +# -- End of 5.0 tests. +# ----------------------------------------------------------------- diff --git a/mysql-test/r/view_grant.result b/mysql-test/r/view_grant.result index eef61c65fb8..53ad8642ba4 100644 --- a/mysql-test/r/view_grant.result +++ b/mysql-test/r/view_grant.result @@ -467,6 +467,7 @@ use test; REVOKE ALL PRIVILEGES, GRANT OPTION FROM mysqltest_1@localhost; drop database mysqltest; drop view if exists v1; +drop table if exists t1; create table t1 as select * from mysql.user where user=''; delete from mysql.user where user=''; flush privileges; diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 340a34db5a1..5a87128f69e 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -3470,5 +3470,39 @@ insert into v1 values(1); set @@sql_mode=@old_mode; drop view v1; drop table t1; ---echo End of 5.0 tests. +########################################################################### + +--echo # ----------------------------------------------------------------- +--echo # -- Bug#34337: Server crash when Altering a view using a table name. +--echo # ----------------------------------------------------------------- +--echo + +--disable_warnings +DROP TABLE IF EXISTS t1; +--enable_warnings + +--echo + +CREATE TABLE t1(c1 INT); + +--echo + +SELECT * FROM t1; + +--error ER_WRONG_OBJECT +ALTER ALGORITHM=TEMPTABLE SQL SECURITY INVOKER VIEW t1 (c2) AS SELECT (1); + +--echo + +DROP TABLE t1; + +--echo +--echo # -- End of test case for Bug#34337. +--echo + +########################################################################### + +--echo # ----------------------------------------------------------------- +--echo # -- End of 5.0 tests. +--echo # ----------------------------------------------------------------- diff --git a/mysql-test/t/view_grant.test b/mysql-test/t/view_grant.test index 7f9eb4e1cff..be9daacec4f 100644 --- a/mysql-test/t/view_grant.test +++ b/mysql-test/t/view_grant.test @@ -608,6 +608,7 @@ drop database mysqltest; # --disable_warnings drop view if exists v1; +drop table if exists t1; --enable_warnings # Backup anonymous users and remove them. (They get in the way of diff --git a/sql/sql_view.cc b/sql/sql_view.cc index dd0b92a06f8..48ab5b3af9e 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -182,10 +182,33 @@ fill_defined_view_parts (THD *thd, TABLE_LIST *view) TABLE_LIST decoy; memcpy (&decoy, view, sizeof (TABLE_LIST)); - if (!open_table(thd, &decoy, thd->mem_root, ¬_used, OPEN_VIEW_NO_PARSE) && - !decoy.view) + + /* + Let's reset decoy.view before calling open_table(): when we start + supporting ALTER VIEW in PS/SP that may save us from a crash. + */ + + decoy.view= NULL; + + /* + open_table() will return NULL if 'decoy' is idenitifying a view *and* + there is no TABLE object for that view in the table cache. However, + decoy.view will be set to 1. + + If there is a TABLE-instance for the oject identified by 'decoy', + open_table() will return that instance no matter if it is a table or + a view. + + Thus, there is no need to check for the return value of open_table(), + since the return value itself does not mean anything. + */ + + open_table(thd, &decoy, thd->mem_root, ¬_used, OPEN_VIEW_NO_PARSE); + + if (!decoy.view) { - /* It's a table */ + /* It's a table. */ + my_error(ER_WRONG_OBJECT, MYF(0), view->db, view->table_name, "VIEW"); return TRUE; } From 0e91461842b7b59e156019776ef6da451594a08a Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Thu, 21 Feb 2008 14:58:29 -0300 Subject: [PATCH 039/139] Bug#32890 Crash after repeated create and drop of tables and views The problem is that CREATE VIEW statements inside prepared statements weren't being expanded during the prepare phase, which leads to objects not being allocated in the appropriate memory arenas. The solution is to perform the validation of CREATE VIEW statements during the prepare phase of a prepared statement. The validation during the prepare phase assures that transformations of the parsed tree will use the permanent arena of the prepared statement. --- mysql-test/r/ps.result | 152 ++++++++++++++++++++++++++ mysql-test/t/ps.test | 123 +++++++++++++++++++++ sql/item.h | 43 ++++---- sql/sql_prepare.cc | 40 +++++++ sql/sql_view.cc | 243 ++++++++++++++++++++++++----------------- sql/sql_view.h | 3 + 6 files changed, 482 insertions(+), 122 deletions(-) diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index 8845f011971..32f48a688e2 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -1709,4 +1709,156 @@ a b 9999999999999999 14632475938453979136 deallocate prepare stmt; drop table t1; +drop view if exists v1; +drop table if exists t1; +create table t1 (a int, b int); +insert into t1 values (1,1), (2,2), (3,3); +insert into t1 values (3,1), (1,2), (2,3); +prepare stmt from "create view v1 as select * from t1"; +execute stmt; +drop table t1; +create table t1 (a int, b int); +drop view v1; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` +drop view v1; +prepare stmt from "create view v1 (c,d) as select a,b from t1"; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d` from `t1` +select * from v1; +c d +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d` from `t1` +select * from v1; +c d +drop view v1; +prepare stmt from "create view v1 (c) as select b+1 from t1"; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1` +select * from v1; +c +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (`t1`.`b` + 1) AS `c` from `t1` +select * from v1; +c +drop view v1; +prepare stmt from "create view v1 (c,d,e,f) as select a,b,a in (select a+2 from t1), a = all (select a from t1) from t1"; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d`,`t1`.`a` in (select (`t1`.`a` + 2) AS `a+2` from `t1`) AS `e`,`t1`.`a` = all (select `t1`.`a` AS `a` from `t1`) AS `f` from `t1` +select * from v1; +c d e f +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `c`,`t1`.`b` AS `d`,`t1`.`a` in (select (`t1`.`a` + 2) AS `a+2` from `t1`) AS `e`,`t1`.`a` = all (select `t1`.`a` AS `a` from `t1`) AS `f` from `t1` +select * from v1; +c d e f +drop view v1; +prepare stmt from "create or replace view v1 as select 1"; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` +select * from v1; +1 +1 +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` +deallocate prepare stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` +select * from v1; +1 +1 +drop view v1; +prepare stmt from "create view v1 as select 1, 1"; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`,1 AS `My_exp_1` +select * from v1; +1 My_exp_1 +1 1 +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1`,1 AS `My_exp_1` +select * from v1; +1 My_exp_1 +1 1 +drop view v1; +prepare stmt from "create view v1 (x) as select a from t1 where a > 1"; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `x` from `t1` where (`t1`.`a` > 1) +select * from v1; +x +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `x` from `t1` where (`t1`.`a` > 1) +select * from v1; +x +drop view v1; +prepare stmt from "create view v1 as select * from `t1` `b`"; +execute stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `b`.`a` AS `a`,`b`.`b` AS `b` from `t1` `b` +select * from v1; +a b +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `b`.`a` AS `a`,`b`.`b` AS `b` from `t1` `b` +select * from v1; +a b +drop view v1; +prepare stmt from "create view v1 (a,b,c) as select * from t1"; +execute stmt; +ERROR HY000: View's SELECT and view's field list have different column counts +execute stmt; +ERROR HY000: View's SELECT and view's field list have different column counts +deallocate prepare stmt; +drop table t1; +create temporary table t1 (a int, b int); +prepare stmt from "create view v1 as select * from t1"; +execute stmt; +ERROR HY000: View's SELECT refers to a temporary table 't1' +execute stmt; +ERROR HY000: View's SELECT refers to a temporary table 't1' +deallocate prepare stmt; +drop table t1; +prepare stmt from "create view v1 as select * from t1"; +ERROR 42S02: Table 'test.t1' doesn't exist +prepare stmt from "create view v1 as select * from `t1` `b`"; +ERROR 42S02: Table 'test.t1' doesn't exist End of 5.0 tests. diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index 3f4b37f13f4..58ba901d82b 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -1824,4 +1824,127 @@ select * from t1 where a = @a and b = @b; deallocate prepare stmt; drop table t1; +# +# Bug#32890 Crash after repeated create and drop of tables and views +# + +--disable_warnings +drop view if exists v1; +drop table if exists t1; +--enable_warnings + +create table t1 (a int, b int); +insert into t1 values (1,1), (2,2), (3,3); +insert into t1 values (3,1), (1,2), (2,3); + +prepare stmt from "create view v1 as select * from t1"; +execute stmt; +drop table t1; +create table t1 (a int, b int); +drop view v1; +execute stmt; +show create view v1; +drop view v1; + +prepare stmt from "create view v1 (c,d) as select a,b from t1"; +execute stmt; +show create view v1; +select * from v1; +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +select * from v1; +drop view v1; + +prepare stmt from "create view v1 (c) as select b+1 from t1"; +execute stmt; +show create view v1; +select * from v1; +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +select * from v1; +drop view v1; + +prepare stmt from "create view v1 (c,d,e,f) as select a,b,a in (select a+2 from t1), a = all (select a from t1) from t1"; +execute stmt; +show create view v1; +select * from v1; +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +select * from v1; +drop view v1; + +prepare stmt from "create or replace view v1 as select 1"; +execute stmt; +show create view v1; +select * from v1; +execute stmt; +show create view v1; +deallocate prepare stmt; +show create view v1; +select * from v1; +drop view v1; + +prepare stmt from "create view v1 as select 1, 1"; +execute stmt; +show create view v1; +select * from v1; +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +select * from v1; +drop view v1; + +prepare stmt from "create view v1 (x) as select a from t1 where a > 1"; +execute stmt; +show create view v1; +select * from v1; +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +select * from v1; +drop view v1; + +prepare stmt from "create view v1 as select * from `t1` `b`"; +execute stmt; +show create view v1; +select * from v1; +drop view v1; +execute stmt; +deallocate prepare stmt; +show create view v1; +select * from v1; +drop view v1; + +prepare stmt from "create view v1 (a,b,c) as select * from t1"; +--error ER_VIEW_WRONG_LIST +execute stmt; +--error ER_VIEW_WRONG_LIST +execute stmt; +deallocate prepare stmt; + +drop table t1; +create temporary table t1 (a int, b int); + +prepare stmt from "create view v1 as select * from t1"; +--error ER_VIEW_SELECT_TMPTABLE +execute stmt; +--error ER_VIEW_SELECT_TMPTABLE +execute stmt; +deallocate prepare stmt; + +drop table t1; + +--error ER_NO_SUCH_TABLE +prepare stmt from "create view v1 as select * from t1"; +--error ER_NO_SUCH_TABLE +prepare stmt from "create view v1 as select * from `t1` `b`"; + --echo End of 5.0 tests. diff --git a/sql/item.h b/sql/item.h index 5f511557f47..ae3e240778a 100644 --- a/sql/item.h +++ b/sql/item.h @@ -879,6 +879,23 @@ public: class sp_head; +class Item_basic_constant :public Item +{ +public: + /* to prevent drop fixed flag (no need parent cleanup call) */ + void cleanup() + { + /* + Restore the original field name as it might not have been allocated + in the statement memory. If the name is auto generated, it must be + done again between subsequent executions of a prepared statement. + */ + if (orig_name) + name= orig_name; + } +}; + + /***************************************************************************** The class is a base class for representation of stored routine variables in the Item-hierarchy. There are the following kinds of SP-vars: @@ -1161,7 +1178,7 @@ bool agg_item_charsets(DTCollation &c, const char *name, Item **items, uint nitems, uint flags, int item_sep); -class Item_num: public Item +class Item_num: public Item_basic_constant { public: Item_num() {} /* Remove gcc warning */ @@ -1352,7 +1369,7 @@ public: friend class st_select_lex_unit; }; -class Item_null :public Item +class Item_null :public Item_basic_constant { public: Item_null(char *name_par=0) @@ -1374,8 +1391,6 @@ public: bool send(Protocol *protocol, String *str); enum Item_result result_type () const { return STRING_RESULT; } enum_field_types field_type() const { return MYSQL_TYPE_NULL; } - /* to prevent drop fixed flag (no need parent cleanup call) */ - void cleanup() {} bool basic_const_item() const { return 1; } Item *clone_item() { return new Item_null(name); } bool is_null() { return 1; } @@ -1567,8 +1582,6 @@ public: int save_in_field(Field *field, bool no_conversions); bool basic_const_item() const { return 1; } Item *clone_item() { return new Item_int(name,value,max_length); } - // to prevent drop fixed flag (no need parent cleanup call) - void cleanup() {} void print(String *str); Item_num *neg() { value= -value; return this; } uint decimal_precision() const @@ -1621,8 +1634,6 @@ public: { return new Item_decimal(name, &decimal_value, decimals, max_length); } - // to prevent drop fixed flag (no need parent cleanup call) - void cleanup() {} void print(String *str); Item_num *neg() { @@ -1673,8 +1684,6 @@ public: String *val_str(String*); my_decimal *val_decimal(my_decimal *); bool basic_const_item() const { return 1; } - // to prevent drop fixed flag (no need parent cleanup call) - void cleanup() {} Item *clone_item() { return new Item_float(name, value, decimals, max_length); } Item_num *neg() { value= -value; return this; } @@ -1696,7 +1705,7 @@ public: }; -class Item_string :public Item +class Item_string :public Item_basic_constant { public: Item_string(const char *str,uint length, @@ -1780,8 +1789,6 @@ public: max_length= str_value.numchars() * collation.collation->mbmaxlen; } void print(String *str); - // to prevent drop fixed flag (no need parent cleanup call) - void cleanup() {} }; @@ -1839,10 +1846,10 @@ public: }; -class Item_hex_string: public Item +class Item_hex_string: public Item_basic_constant { public: - Item_hex_string(): Item() {} + Item_hex_string() {} Item_hex_string(const char *str,uint str_length); enum Type type() const { return VARBIN_ITEM; } double val_real() @@ -1858,8 +1865,6 @@ public: enum Item_result result_type () const { return STRING_RESULT; } enum Item_result cast_to_int_type() const { return INT_RESULT; } enum_field_types field_type() const { return MYSQL_TYPE_VARCHAR; } - // to prevent drop fixed flag (no need parent cleanup call) - void cleanup() {} void print(String *str); bool eq(const Item *item, bool binary_cmp) const; virtual Item *safe_charset_converter(CHARSET_INFO *tocs); @@ -2449,7 +2454,7 @@ private: }; -class Item_cache: public Item +class Item_cache: public Item_basic_constant { protected: Item *example; @@ -2486,8 +2491,6 @@ public: static Item_cache* get_cache(const Item *item); table_map used_tables() const { return used_table_map; } virtual void keep_array() {} - // to prevent drop fixed flag (no need parent cleanup call) - void cleanup() {} void print(String *str); bool eq_def(Field *field) { diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 74cbd2c5505..4972b259693 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1512,6 +1512,45 @@ static bool mysql_test_create_table(Prepared_statement *stmt) } +/** + @brief Validate and prepare for execution CREATE VIEW statement + + @param stmt prepared statement + + @note This function handles create view commands. + + @retval FALSE Operation was a success. + @retval TRUE An error occured. +*/ + +static bool mysql_test_create_view(Prepared_statement *stmt) +{ + DBUG_ENTER("mysql_test_create_view"); + THD *thd= stmt->thd; + LEX *lex= stmt->lex; + SELECT_LEX *select_lex= &lex->select_lex; + bool res= TRUE; + /* Skip first table, which is the view we are creating */ + bool link_to_local; + TABLE_LIST *view= lex->unlink_first_table(&link_to_local); + TABLE_LIST *tables= lex->query_tables; + + if (create_view_precheck(thd, tables, view, lex->create_view_mode)) + goto err; + + if (open_normal_and_derived_tables(thd, tables, 0)) + goto err; + + lex->view_prepare_mode= 1; + res= select_like_stmt_test(stmt, 0, 0); + +err: + /* put view back for PS rexecuting */ + lex->link_first_table_back(view, link_to_local); + DBUG_RETURN(res); +} + + /* Validate and prepare for execution a multi update statement. @@ -1730,6 +1769,7 @@ static bool check_prepared_statement(Prepared_statement *stmt, my_message(ER_UNSUPPORTED_PS, ER(ER_UNSUPPORTED_PS), MYF(0)); goto error; } + res= mysql_test_create_view(stmt); break; case SQLCOM_DO: res= mysql_test_do_fields(stmt, tables, lex->insert_list); diff --git a/sql/sql_view.cc b/sql/sql_view.cc index 48ab5b3af9e..4c8e6e80c41 100644 --- a/sql/sql_view.cc +++ b/sql/sql_view.cc @@ -227,6 +227,143 @@ fill_defined_view_parts (THD *thd, TABLE_LIST *view) return FALSE; } +#ifndef NO_EMBEDDED_ACCESS_CHECKS + +/** + @brief CREATE VIEW privileges pre-check. + + @param thd thread handler + @param tables tables used in the view + @param views views to create + @param mode VIEW_CREATE_NEW, VIEW_ALTER, VIEW_CREATE_OR_REPLACE + + @retval FALSE Operation was a success. + @retval TRUE An error occured. +*/ + +bool create_view_precheck(THD *thd, TABLE_LIST *tables, TABLE_LIST *view, + enum_view_create_mode mode) +{ + LEX *lex= thd->lex; + /* first table in list is target VIEW name => cut off it */ + TABLE_LIST *tbl; + SELECT_LEX *select_lex= &lex->select_lex; + SELECT_LEX *sl; + bool res= TRUE; + DBUG_ENTER("create_view_precheck"); + + /* + Privilege check for view creation: + - user has CREATE VIEW privilege on view table + - user has DROP privilege in case of ALTER VIEW or CREATE OR REPLACE + VIEW + - user has some (SELECT/UPDATE/INSERT/DELETE) privileges on columns of + underlying tables used on top of SELECT list (because it can be + (theoretically) updated, so it is enough to have UPDATE privilege on + them, for example) + - user has SELECT privilege on columns used in expressions of VIEW select + - for columns of underly tables used on top of SELECT list also will be + checked that we have not more privileges on correspondent column of view + table (i.e. user will not get some privileges by view creation) + */ + if ((check_access(thd, CREATE_VIEW_ACL, view->db, &view->grant.privilege, + 0, 0, is_schema_db(view->db)) || + grant_option && check_grant(thd, CREATE_VIEW_ACL, view, 0, 1, 0)) || + (mode != VIEW_CREATE_NEW && + (check_access(thd, DROP_ACL, view->db, &view->grant.privilege, + 0, 0, is_schema_db(view->db)) || + grant_option && check_grant(thd, DROP_ACL, view, 0, 1, 0)))) + goto err; + + for (sl= select_lex; sl; sl= sl->next_select()) + { + for (tbl= sl->get_table_list(); tbl; tbl= tbl->next_local) + { + /* + Ensure that we have some privileges on this table, more strict check + will be done on column level after preparation, + */ + if (check_some_access(thd, VIEW_ANY_ACL, tbl)) + { + my_error(ER_TABLEACCESS_DENIED_ERROR, MYF(0), + "ANY", thd->security_ctx->priv_user, + thd->security_ctx->priv_host, tbl->table_name); + goto err; + } + /* + Mark this table as a table which will be checked after the prepare + phase + */ + tbl->table_in_first_from_clause= 1; + + /* + We need to check only SELECT_ACL for all normal fields, fields for + which we need "any" (SELECT/UPDATE/INSERT/DELETE) privilege will be + checked later + */ + tbl->grant.want_privilege= SELECT_ACL; + /* + Make sure that all rights are loaded to the TABLE::grant field. + + tbl->table_name will be correct name of table because VIEWs are + not opened yet. + */ + fill_effective_table_privileges(thd, &tbl->grant, tbl->db, + tbl->table_name); + } + } + + if (&lex->select_lex != lex->all_selects_list) + { + /* check tables of subqueries */ + for (tbl= tables; tbl; tbl= tbl->next_global) + { + if (!tbl->table_in_first_from_clause) + { + if (check_access(thd, SELECT_ACL, tbl->db, + &tbl->grant.privilege, 0, 0, test(tbl->schema_table)) || + grant_option && check_grant(thd, SELECT_ACL, tbl, 0, 1, 0)) + goto err; + } + } + } + /* + Mark fields for special privilege check ("any" privilege) + */ + for (sl= select_lex; sl; sl= sl->next_select()) + { + List_iterator_fast it(sl->item_list); + Item *item; + while ((item= it++)) + { + Item_field *field; + if ((field= item->filed_for_view_update())) + { + /* + any_privileges may be reset later by the Item_field::set_field + method in case of a system temporary table. + */ + field->any_privileges= 1; + } + } + } + + res= FALSE; + +err: + DBUG_RETURN(res || thd->net.report_error); +} + +#else + +bool create_view_precheck(THD *thd, TABLE_LIST *tables, TABLE_LIST *view, + enum_view_create_mode mode) +{ + return FALSE; +} + +#endif + /** @brief Creating/altering VIEW procedure @@ -241,7 +378,7 @@ fill_defined_view_parts (THD *thd, TABLE_LIST *view) @retval TRUE An error occured. */ -bool mysql_create_view(THD *thd, TABLE_LIST *views, +bool mysql_create_view(THD *thd, TABLE_LIST *views, enum_view_create_mode mode) { LEX *lex= thd->lex; @@ -325,109 +462,11 @@ bool mysql_create_view(THD *thd, TABLE_LIST *views, } } } - /* - Privilege check for view creation: - - user has CREATE VIEW privilege on view table - - user has DROP privilege in case of ALTER VIEW or CREATE OR REPLACE - VIEW - - user has some (SELECT/UPDATE/INSERT/DELETE) privileges on columns of - underlying tables used on top of SELECT list (because it can be - (theoretically) updated, so it is enough to have UPDATE privilege on - them, for example) - - user has SELECT privilege on columns used in expressions of VIEW select - - for columns of underly tables used on top of SELECT list also will be - checked that we have not more privileges on correspondent column of view - table (i.e. user will not get some privileges by view creation) - */ - if ((check_access(thd, CREATE_VIEW_ACL, view->db, &view->grant.privilege, - 0, 0, is_schema_db(view->db)) || - grant_option && check_grant(thd, CREATE_VIEW_ACL, view, 0, 1, 0)) || - (mode != VIEW_CREATE_NEW && - (check_access(thd, DROP_ACL, view->db, &view->grant.privilege, - 0, 0, is_schema_db(view->db)) || - grant_option && check_grant(thd, DROP_ACL, view, 0, 1, 0)))) - { - res= TRUE; - goto err; - } - for (sl= select_lex; sl; sl= sl->next_select()) - { - for (tbl= sl->get_table_list(); tbl; tbl= tbl->next_local) - { - /* - Ensure that we have some privileges on this table, more strict check - will be done on column level after preparation, - */ - if (check_some_access(thd, VIEW_ANY_ACL, tbl)) - { - my_error(ER_TABLEACCESS_DENIED_ERROR, MYF(0), - "ANY", thd->security_ctx->priv_user, - thd->security_ctx->priv_host, tbl->table_name); - res= TRUE; - goto err; - } - /* - Mark this table as a table which will be checked after the prepare - phase - */ - tbl->table_in_first_from_clause= 1; - - /* - We need to check only SELECT_ACL for all normal fields, fields for - which we need "any" (SELECT/UPDATE/INSERT/DELETE) privilege will be - checked later - */ - tbl->grant.want_privilege= SELECT_ACL; - /* - Make sure that all rights are loaded to the TABLE::grant field. - - tbl->table_name will be correct name of table because VIEWs are - not opened yet. - */ - fill_effective_table_privileges(thd, &tbl->grant, tbl->db, - tbl->table_name); - } - } - - if (&lex->select_lex != lex->all_selects_list) - { - /* check tables of subqueries */ - for (tbl= tables; tbl; tbl= tbl->next_global) - { - if (!tbl->table_in_first_from_clause) - { - if (check_access(thd, SELECT_ACL, tbl->db, - &tbl->grant.privilege, 0, 0, test(tbl->schema_table)) || - grant_option && check_grant(thd, SELECT_ACL, tbl, 0, 1, 0)) - { - res= TRUE; - goto err; - } - } - } - } - /* - Mark fields for special privilege check ("any" privilege) - */ - for (sl= select_lex; sl; sl= sl->next_select()) - { - List_iterator_fast it(sl->item_list); - Item *item; - while ((item= it++)) - { - Item_field *field; - if ((field= item->filed_for_view_update())) - { - /* - any_privileges may be reset later by the Item_field::set_field - method in case of a system temporary table. - */ - field->any_privileges= 1; - } - } - } #endif + if ((res= create_view_precheck(thd, tables, view, mode))) + goto err; + if (open_and_lock_tables(thd, tables)) { res= TRUE; diff --git a/sql/sql_view.h b/sql/sql_view.h index ab0920e0bf2..1d45283352b 100644 --- a/sql/sql_view.h +++ b/sql/sql_view.h @@ -15,6 +15,9 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +bool create_view_precheck(THD *thd, TABLE_LIST *tables, TABLE_LIST *view, + enum_view_create_mode mode); + bool mysql_create_view(THD *thd, TABLE_LIST *view, enum_view_create_mode mode); From 28cfe06a1e17d54aac8a57a1cf8938e9dd78038f Mon Sep 17 00:00:00 2001 From: "davi@buzz.(none)" <> Date: Thu, 21 Feb 2008 19:28:25 -0200 Subject: [PATCH 040/139] Post-merge fix to silence compiler warning. --- sql/sql_prepare.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 4972b259693..18cfd8d7dfc 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1528,7 +1528,6 @@ static bool mysql_test_create_view(Prepared_statement *stmt) DBUG_ENTER("mysql_test_create_view"); THD *thd= stmt->thd; LEX *lex= stmt->lex; - SELECT_LEX *select_lex= &lex->select_lex; bool res= TRUE; /* Skip first table, which is the view we are creating */ bool link_to_local; From 4f0873c04b6236039a7326c782b0a10f6dda7fd3 Mon Sep 17 00:00:00 2001 From: "gluh@mysql.com/mgluh.(none)" <> Date: Fri, 22 Feb 2008 12:30:17 +0400 Subject: [PATCH 041/139] Bug#23588 SHOW COLUMNS on a temporary table causes locking issues skip lock_type update for temporary tables --- mysql-test/r/tablelock.result | 9 +++++++++ mysql-test/t/tablelock.test | 13 +++++++++++++ sql/sql_base.cc | 8 ++++++-- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/tablelock.result b/mysql-test/r/tablelock.result index 2ffd8f928a9..6923ad40916 100644 --- a/mysql-test/r/tablelock.result +++ b/mysql-test/r/tablelock.result @@ -46,3 +46,12 @@ CREATE TABLE t2 (a int); lock tables t1 write,t1 as b write, t2 write, t2 as c read; drop table t2,t1; unlock tables; +create temporary table t1(f1 int); +lock tables t1 write; +insert into t1 values (1); +show columns from t1; +Field Type Null Key Default Extra +f1 int(11) YES NULL +insert into t1 values(2); +drop table t1; +unlock tables; diff --git a/mysql-test/t/tablelock.test b/mysql-test/t/tablelock.test index 95533903b45..5ac93f09ac1 100644 --- a/mysql-test/t/tablelock.test +++ b/mysql-test/t/tablelock.test @@ -49,3 +49,16 @@ drop table t2,t1; unlock tables; # End of 4.1 tests + +# +# Bug#23588 SHOW COLUMNS on a temporary table causes locking issues +# +create temporary table t1(f1 int); +lock tables t1 write; +insert into t1 values (1); +show columns from t1; +insert into t1 values(2); +drop table t1; +unlock tables; + +# End of 5.0 tests diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 8190b3eeacd..c9f20b3d71b 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -2852,8 +2852,12 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags) } if (tables->lock_type != TL_UNLOCK && ! thd->locked_tables) - tables->table->reginfo.lock_type= tables->lock_type == TL_WRITE_DEFAULT ? - thd->update_lock_default : tables->lock_type; + { + if (tables->lock_type == TL_WRITE_DEFAULT) + tables->table->reginfo.lock_type= thd->update_lock_default; + else if (tables->table->s->tmp_table == NO_TMP_TABLE) + tables->table->reginfo.lock_type= tables->lock_type; + } tables->table->grant= tables->grant; process_view_routines: From 0a29b8b08520070950186ae64ff058b3fba3c1cb Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Fri, 22 Feb 2008 11:34:18 +0300 Subject: [PATCH 042/139] Fix for bug #33049: Assert while running test-as3ap test(mysql-bench suite) Under some circumstances a combination of aggregate functions and GROUP BY in a SELECT query over a VIEW could lead to incorrect calculation of the result type of the aggregate function. This in turn could result in incorrect results, or assertion failures on debug builds. Fixed by changing the logic in Item_sum_hybrid::fix_fields() so that the argument's item is dereferenced before calling its type() method. --- mysql-test/r/view.result | 8 ++++++++ mysql-test/t/view.test | 13 +++++++++++++ sql/item_sum.cc | 1 + 3 files changed, 22 insertions(+) diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index f7f6debee6e..4ba46079b27 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -3634,4 +3634,12 @@ a 1 drop view v1, v2; drop table t1, t2; +CREATE TABLE t1 (a INT); +CREATE VIEW v1 AS SELECT p.a AS a FROM t1 p, t1 q; +INSERT INTO t1 VALUES (1), (1); +SELECT MAX(a), COUNT(DISTINCT a) FROM v1 GROUP BY a; +MAX(a) COUNT(DISTINCT a) +1 1 +DROP VIEW v1; +DROP TABLE t1; End of 5.0 tests. diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index b321f8604f7..d7461504b20 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -3492,5 +3492,18 @@ execute stmt; drop view v1, v2; drop table t1, t2; +# +# Bug #33049: Assert while running test-as3ap test(mysql-bench suite) +# + +CREATE TABLE t1 (a INT); +CREATE VIEW v1 AS SELECT p.a AS a FROM t1 p, t1 q; + +INSERT INTO t1 VALUES (1), (1); +SELECT MAX(a), COUNT(DISTINCT a) FROM v1 GROUP BY a; + +DROP VIEW v1; +DROP TABLE t1; + --echo End of 5.0 tests. diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 3d261dc2c36..47a7073c2e7 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -597,6 +597,7 @@ Item_sum_hybrid::fix_fields(THD *thd, Item **ref) result_field=0; null_value=1; fix_length_and_dec(); + item= item->real_item(); if (item->type() == Item::FIELD_ITEM) hybrid_field_type= ((Item_field*) item)->field->type(); else From fe3b1c8e25669f250159142a507841f6402a38d9 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/june.mysql.com" <> Date: Fri, 22 Feb 2008 19:07:07 +0400 Subject: [PATCH 043/139] BUG#13861 - START SLAVE UNTIL may stop 1 evnt too late if log-slave-updates and circul repl Slave SQL thread may execute one extra event when there are events skipped by slave I/O thread (e.g. originated by the same server). Whereas it was requested not to do so by the UNTIL condition. This happens because we compare with the end position of previously executed event. This is fine when there are no skipped by slave I/O thread events, as end position of previous event equals to start position of to be executed event. Otherwise this position equals to start position of skipped event. This is fixed by: - reading the event to be executed before checking if the until condition is satisfied. - comparing the start position of the event to be executed. Since we do not have the start position available, we compute it by subtracting event length from end position (which is available). - if there are no events on the event queue at the slave sql starting time, that meet until condition, we stop immediately, as in this case we do not want to wait for next event. --- mysql-test/r/rpl_dual_pos_advance.result | 43 ++++++++++++- mysql-test/t/rpl_dual_pos_advance-slave.opt | 1 + mysql-test/t/rpl_dual_pos_advance.test | 56 +++++++++++------ sql/log_event.cc | 3 +- sql/slave.cc | 68 +++++++++++++-------- sql/slave.h | 2 +- 6 files changed, 128 insertions(+), 45 deletions(-) create mode 100644 mysql-test/t/rpl_dual_pos_advance-slave.opt diff --git a/mysql-test/r/rpl_dual_pos_advance.result b/mysql-test/r/rpl_dual_pos_advance.result index 257baa81b74..97ca8101c33 100644 --- a/mysql-test/r/rpl_dual_pos_advance.result +++ b/mysql-test/r/rpl_dual_pos_advance.result @@ -8,15 +8,56 @@ reset master; change master to master_host="127.0.0.1",master_port=SLAVE_PORT,master_user="root"; start slave; create table t1 (n int); +stop slave; +create table t2 (n int); +show tables; +Tables_in_test +t1 +t2 +create table t3 (n int) engine=innodb; +set @a=1; +insert into t3 values(@a); +begin; +insert into t3 values(2); +insert into t3 values(3); +commit; +insert into t3 values(4); +start slave until master_log_file="slave-bin.000001",master_log_pos=195; +Warnings: +Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart +select master_pos_wait("slave-bin.000001",137); +master_pos_wait("slave-bin.000001",137) +0 +show tables; +Tables_in_test +t1 +t2 +start slave until master_log_file="slave-bin.000001",master_log_pos=438; +Warnings: +Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart +select * from t3; +n +1 +start slave until master_log_file="slave-bin.000001",master_log_pos=663; +Warnings: +Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart +select * from t3; +n +1 +2 +3 +start slave; create table t4 (n int); create table t5 (n int); create table t6 (n int); show tables; Tables_in_test t1 +t2 +t3 t4 t5 t6 stop slave; reset slave; -drop table t1,t4,t5,t6; +drop table t1,t2,t3,t4,t5,t6; diff --git a/mysql-test/t/rpl_dual_pos_advance-slave.opt b/mysql-test/t/rpl_dual_pos_advance-slave.opt new file mode 100644 index 00000000000..627becdbfb5 --- /dev/null +++ b/mysql-test/t/rpl_dual_pos_advance-slave.opt @@ -0,0 +1 @@ +--innodb diff --git a/mysql-test/t/rpl_dual_pos_advance.test b/mysql-test/t/rpl_dual_pos_advance.test index 518fa9df885..5e08284a2f2 100644 --- a/mysql-test/t/rpl_dual_pos_advance.test +++ b/mysql-test/t/rpl_dual_pos_advance.test @@ -7,6 +7,7 @@ # It also will test BUG#13861. source include/master-slave.inc; +source include/have_innodb.inc; # set up "dual head" @@ -30,45 +31,64 @@ save_master_pos; connection master; sync_with_master; -# Now test BUG#13861. This will be enabled when Guilhem fixes this -# bug. +# +# BUG#13861 - START SLAVE UNTIL may stop 1 evnt too late if +# log-slave-updates and circul repl +# +stop slave; -# stop slave +create table t2 (n int); # create one ignored event -# create table t2 (n int); # create one ignored event +save_master_pos; +connection slave; +sync_with_master; -# save_master_pos; -# connection slave; -# sync_with_master; +connection slave; -# connection slave; +show tables; -# show tables; +save_master_pos; -# save_master_pos; +create table t3 (n int) engine=innodb; +set @a=1; +insert into t3 values(@a); +begin; +insert into t3 values(2); +insert into t3 values(3); +commit; +insert into t3 values(4); -# create table t3 (n int); -# connection master; +connection master; # bug is that START SLAVE UNTIL may stop too late, we test that by # asking it to stop before creation of t3. -# start slave until master_log_file="slave-bin.000001",master_log_pos=195; +start slave until master_log_file="slave-bin.000001",master_log_pos=195; # wait until it's started (the position below is the start of "CREATE # TABLE t2") (otherwise wait_for_slave_to_stop may return at once) -# select master_pos_wait("slave-bin.000001",137); +select master_pos_wait("slave-bin.000001",137); -# wait_for_slave_to_stop; +wait_for_slave_to_stop; # then BUG#13861 causes t3 to show up below (because stopped too # late). -# show tables; +show tables; -# start slave; +# ensure that we do not break set @a=1; insert into t3 values(@a); +start slave until master_log_file="slave-bin.000001",master_log_pos=438; +wait_for_slave_to_stop; +select * from t3; + +# ensure that we do not break transaction +start slave until master_log_file="slave-bin.000001",master_log_pos=663; +wait_for_slave_to_stop; +select * from t3; + +start slave; # BUG#13023 is that Exec_master_log_pos may stay too low "forever": @@ -99,7 +119,7 @@ show tables; stop slave; reset slave; -drop table t1,t4,t5,t6; # add t2 and t3 later +drop table t1,t2,t3,t4,t5,t6; save_master_pos; connection slave; diff --git a/sql/log_event.cc b/sql/log_event.cc index a950094a018..8e14a873fc6 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -373,6 +373,7 @@ Log_event::Log_event(const char* buf, #endif when = uint4korr(buf); server_id = uint4korr(buf + SERVER_ID_OFFSET); + data_written= uint4korr(buf + EVENT_LEN_OFFSET); if (description_event->binlog_version==1) { log_pos= 0; @@ -405,7 +406,7 @@ Log_event::Log_event(const char* buf, binlog, so which will cause problems if the user uses this value in CHANGE MASTER). */ - log_pos+= uint4korr(buf + EVENT_LEN_OFFSET); + log_pos+= data_written; } DBUG_PRINT("info", ("log_pos: %lu", (ulong) log_pos)); diff --git a/sql/slave.cc b/sql/slave.cc index 8a3620080f2..500683e080d 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -3115,6 +3115,11 @@ int check_expected_error(THD* thd, RELAY_LOG_INFO* rli, int expected_error) Check if condition stated in UNTIL clause of START SLAVE is reached. SYNOPSYS st_relay_log_info::is_until_satisfied() + master_beg_pos position of the beginning of to be executed event + (not log_pos member of the event that points to the + beginning of the following event) + + DESCRIPTION Checks if UNTIL condition is reached. Uses caching result of last comparison of current log file name and target log file name. So cached @@ -3139,7 +3144,7 @@ int check_expected_error(THD* thd, RELAY_LOG_INFO* rli, int expected_error) false - condition not met */ -bool st_relay_log_info::is_until_satisfied() +bool st_relay_log_info::is_until_satisfied(my_off_t master_beg_pos) { const char *log_name; ulonglong log_pos; @@ -3149,7 +3154,7 @@ bool st_relay_log_info::is_until_satisfied() if (until_condition == UNTIL_MASTER_POS) { log_name= group_master_log_name; - log_pos= group_master_log_pos; + log_pos= master_beg_pos; } else { /* until_condition == UNTIL_RELAY_POS */ @@ -3228,28 +3233,6 @@ static int exec_relay_log_event(THD* thd, RELAY_LOG_INFO* rli) wait for something for example inside of next_event(). */ pthread_mutex_lock(&rli->data_lock); - /* - This tests if the position of the end of the last previous executed event - hits the UNTIL barrier. - We would prefer to test if the position of the start (or possibly) end of - the to-be-read event hits the UNTIL barrier, this is different if there - was an event ignored by the I/O thread just before (BUG#13861 to be - fixed). - */ - if (rli->until_condition!=RELAY_LOG_INFO::UNTIL_NONE && - rli->is_until_satisfied()) - { - char buf[22]; - sql_print_information("Slave SQL thread stopped because it reached its" - " UNTIL position %s", llstr(rli->until_pos(), buf)); - /* - Setting abort_slave flag because we do not want additional message about - error in query execution to be printed. - */ - rli->abort_slave= 1; - pthread_mutex_unlock(&rli->data_lock); - return 1; - } Log_event * ev = next_event(rli); @@ -3266,6 +3249,27 @@ static int exec_relay_log_event(THD* thd, RELAY_LOG_INFO* rli) int type_code = ev->get_type_code(); int exec_res; + /* + This tests if the position of the beginning of the current event + hits the UNTIL barrier. + */ + if (rli->until_condition != RELAY_LOG_INFO::UNTIL_NONE && + rli->is_until_satisfied((thd->options & OPTION_BEGIN || !ev->log_pos) ? + rli->group_master_log_pos : + ev->log_pos - ev->data_written)) + { + char buf[22]; + sql_print_information("Slave SQL thread stopped because it reached its" + " UNTIL position %s", llstr(rli->until_pos(), buf)); + /* + Setting abort_slave flag because we do not want additional message about + error in query execution to be printed. + */ + rli->abort_slave= 1; + pthread_mutex_unlock(&rli->data_lock); + delete ev; + return 1; + } /* Queries originating from this server must be skipped. Low-level events (Format_desc, Rotate, Stop) from this server @@ -3977,6 +3981,22 @@ Slave SQL thread aborted. Can't execute init_slave query"); } } + /* + First check until condition - probably there is nothing to execute. We + do not want to wait for next event in this case. + */ + pthread_mutex_lock(&rli->data_lock); + if (rli->until_condition != RELAY_LOG_INFO::UNTIL_NONE && + rli->is_until_satisfied(rli->group_master_log_pos)) + { + char buf[22]; + sql_print_information("Slave SQL thread stopped because it reached its" + " UNTIL position %s", llstr(rli->until_pos(), buf)); + pthread_mutex_unlock(&rli->data_lock); + goto err; + } + pthread_mutex_unlock(&rli->data_lock); + /* Read queries from the IO/THREAD until this thread is killed */ while (!sql_slave_killed(thd,rli)) diff --git a/sql/slave.h b/sql/slave.h index c61787cdf3b..da548e145d3 100644 --- a/sql/slave.h +++ b/sql/slave.h @@ -348,7 +348,7 @@ typedef struct st_relay_log_info void close_temporary_tables(); /* Check if UNTIL condition is satisfied. See slave.cc for more. */ - bool is_until_satisfied(); + bool is_until_satisfied(my_off_t master_beg_pos); inline ulonglong until_pos() { return ((until_condition == UNTIL_MASTER_POS) ? group_master_log_pos : From 874e919872047d000207d7651c64380ae4df7221 Mon Sep 17 00:00:00 2001 From: "tnurnberg@mysql.com/white.intern.koehntopp.de" <> Date: Mon, 25 Feb 2008 07:50:55 +0100 Subject: [PATCH 044/139] Bug#29645: Link failure when using the embedded server mysql_config --cflags gave a flag that forced the HP/UX C++ compiler into C-mode; as a result, C++ sources could not be compiled correctly. We now filter out the offending flag (like we do for Sun) so that --cflags will work for both C and C++. --- scripts/mysql_config.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh index ae58655ed0f..a0c3b43d690 100644 --- a/scripts/mysql_config.sh +++ b/scripts/mysql_config.sh @@ -113,10 +113,12 @@ include="-I$pkgincludedir" # Remove some options that a client doesn't have to care about # FIXME until we have a --cxxflags, we need to remove -Xa # and -xstrconst to make --cflags usable for Sun Forte C++ +# FIXME until we have a --cxxflags, we need to remove -AC99 +# to make --cflags usable for HP C++ (aCC) for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \ DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \ DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \ - Xa xstrconst "xc99=none" \ + Xa xstrconst "xc99=none" AC99 \ unroll2 ip mp restrict do # The first option we might strip will always have a space before it because From 5a4e12cb56b367b72cf6f07d2925cdd9eea9160c Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Mon, 25 Feb 2008 13:25:57 +0300 Subject: [PATCH 045/139] Fix for bug #33834: FRAC_SECOND: Applicability not clear in documentation While the manual mentions FRAC_SECOND only for the TIMESTAMPADD() function, it was also possible to use FRAC_SECOND with DATE_ADD(), DATE_SUB() and +/- INTERVAL. Fixed the parser to match the manual, i.e. using FRAC_SECOND for anything other than TIMESTAMPADD()/TIMESTAMPDIFF() now produces a syntax error. Additionally, the patch allows MICROSECOND to be used in TIMESTAMPADD/ TIMESTAMPDIFF and marks FRAC_SECOND as deprecated. --- mysql-test/r/func_time.result | 23 +++++++++++++++++++++++ mysql-test/t/func_time.test | 19 +++++++++++++++++++ sql/sql_yacc.yy | 33 +++++++++++++++++++++++++++------ 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/mysql-test/r/func_time.result b/mysql-test/r/func_time.result index f25f9ed9e0a..d397947d7ca 100644 --- a/mysql-test/r/func_time.result +++ b/mysql-test/r/func_time.result @@ -666,6 +666,8 @@ timestampadd(SQL_TSI_SECOND, 1, date) select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1; timestampadd(SQL_TSI_FRAC_SECOND, 1, date) 2003-01-02 00:00:00.000001 +Warnings: +Warning 1287 'FRAC_SECOND' is deprecated; use 'MICROSECOND' instead select timestampdiff(MONTH, '2001-02-01', '2001-05-01') as a; a 3 @@ -699,6 +701,8 @@ a select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a; a 7689538999999 +Warnings: +Warning 1287 'FRAC_SECOND' is deprecated; use 'MICROSECOND' instead select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1, timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2, timestampdiff(SQL_TSI_DAY, '1996-02-01', '1996-03-01') as a3, @@ -1069,6 +1073,7 @@ timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used Warnings: +Warning 1287 'FRAC_SECOND' is deprecated; use 'MICROSECOND' instead Note 1003 select timestampdiff(WEEK,_latin1'2001-02-01',_latin1'2001-05-01') AS `a1`,timestampdiff(SECOND_FRAC,_latin1'2001-02-01 12:59:59.120000',_latin1'2001-05-01 12:58:58.119999') AS `a2` select last_day('2005-00-00'); last_day('2005-00-00') @@ -1285,4 +1290,22 @@ DATE_ADD(20071108, INTERVAL 1 DAY) select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND; LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND 2007-12-30 23:59:59 +SELECT TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18'); +TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18') +2008-02-18 00:00:00.000001 +Warnings: +Warning 1287 'FRAC_SECOND' is deprecated; use 'MICROSECOND' instead +SELECT TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18'); +TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18') +86400000000 +Warnings: +Warning 1287 'FRAC_SECOND' is deprecated; use 'MICROSECOND' instead +SELECT DATE_ADD('2008-02-18', INTERVAL 1 FRAC_SECOND); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND)' at line 1 +SELECT DATE_SUB('2008-02-18', INTERVAL 1 FRAC_SECOND); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND)' at line 1 +SELECT '2008-02-18' + INTERVAL 1 FRAC_SECOND; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND' at line 1 +SELECT '2008-02-18' - INTERVAL 1 FRAC_SECOND; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FRAC_SECOND' at line 1 End of 5.0 tests diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index b0f47e0ad56..613a2fc7ca0 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -804,4 +804,23 @@ select DATE_ADD(20071108, INTERVAL 1 DAY); select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND; +# +# Bug#33834: FRAC_SECOND: Applicability not clear in documentation +# +# Show that he use of FRAC_SECOND, for anything other than +# TIMESTAMPADD / TIMESTAMPDIFF, is a server error. + +SELECT TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18'); +SELECT TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18'); + +--error ER_PARSE_ERROR +SELECT DATE_ADD('2008-02-18', INTERVAL 1 FRAC_SECOND); +--error ER_PARSE_ERROR +SELECT DATE_SUB('2008-02-18', INTERVAL 1 FRAC_SECOND); + +--error ER_PARSE_ERROR +SELECT '2008-02-18' + INTERVAL 1 FRAC_SECOND; +--error ER_PARSE_ERROR +SELECT '2008-02-18' - INTERVAL 1 FRAC_SECOND; + --echo End of 5.0 tests diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index af57fbdb108..cb447c1187a 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -458,10 +458,10 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %pure_parser /* We have threads */ /* - Currently there are 245 shift/reduce conflicts. + Currently there are 240 shift/reduce conflicts. We should not introduce new conflicts any more. */ -%expect 245 +%expect 240 %token END_OF_INPUT @@ -1111,6 +1111,8 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); %type interval_time_st +%type interval_time_stamp + %type storage_engines %type row_types @@ -5027,9 +5029,9 @@ simple_expr: { $$= new Item_datetime_typecast($3); } | TIMESTAMP '(' expr ',' expr ')' { $$= new Item_func_add_time($3, $5, 1, 0); } - | TIMESTAMP_ADD '(' interval_time_st ',' expr ',' expr ')' + | TIMESTAMP_ADD '(' interval_time_stamp ',' expr ',' expr ')' { $$= new Item_date_add_interval($7,$5,$3,0); } - | TIMESTAMP_DIFF '(' interval_time_st ',' expr ',' expr ')' + | TIMESTAMP_DIFF '(' interval_time_stamp ',' expr ',' expr ')' { $$= new Item_func_timestamp_diff($5,$7,$3); } | TRIM '(' expr ')' { $$= new Item_func_trim($3); } @@ -6005,21 +6007,40 @@ interval: | HOUR_MICROSECOND_SYM { $$=INTERVAL_HOUR_MICROSECOND; } | HOUR_MINUTE_SYM { $$=INTERVAL_HOUR_MINUTE; } | HOUR_SECOND_SYM { $$=INTERVAL_HOUR_SECOND; } - | MICROSECOND_SYM { $$=INTERVAL_MICROSECOND; } | MINUTE_MICROSECOND_SYM { $$=INTERVAL_MINUTE_MICROSECOND; } | MINUTE_SECOND_SYM { $$=INTERVAL_MINUTE_SECOND; } | SECOND_MICROSECOND_SYM { $$=INTERVAL_SECOND_MICROSECOND; } | YEAR_MONTH_SYM { $$=INTERVAL_YEAR_MONTH; }; +interval_time_stamp: + interval_time_st {} + | FRAC_SECOND_SYM { + $$=INTERVAL_MICROSECOND; + /* + FRAC_SECOND was mistakenly implemented with + a wrong resolution. According to the ODBC + standard it should be nanoseconds, not + microseconds. Changing it to nanoseconds + in MySQL would mean making TIMESTAMPDIFF + and TIMESTAMPADD to return DECIMAL, since + the return value would be too big for BIGINT + Hence we just deprecate the incorrect + implementation without changing its + resolution. + */ + WARN_DEPRECATED("FRAC_SECOND", "MICROSECOND"); // Will be removed in 6.2 + } + ; + interval_time_st: DAY_SYM { $$=INTERVAL_DAY; } | WEEK_SYM { $$=INTERVAL_WEEK; } | HOUR_SYM { $$=INTERVAL_HOUR; } - | FRAC_SECOND_SYM { $$=INTERVAL_MICROSECOND; } | MINUTE_SYM { $$=INTERVAL_MINUTE; } | MONTH_SYM { $$=INTERVAL_MONTH; } | QUARTER_SYM { $$=INTERVAL_QUARTER; } | SECOND_SYM { $$=INTERVAL_SECOND; } + | MICROSECOND_SYM { $$=INTERVAL_MICROSECOND; } | YEAR_SYM { $$=INTERVAL_YEAR; } ; From 74addb78e48e5f1f2de327edd0d66d43121a0793 Mon Sep 17 00:00:00 2001 From: "kostja@dipika.(none)" <> Date: Tue, 26 Feb 2008 15:27:46 +0300 Subject: [PATCH 046/139] Fix memory leaks (valgrind) --- tests/mysql_client_test.c | 90 ++++++++++++++++++++++----------------- 1 file changed, 52 insertions(+), 38 deletions(-) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 25522a88445..56c4cff3e5a 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -8702,8 +8702,8 @@ static void test_sqlmode() strmov(c1, "My"); strmov(c2, "SQL"); rc= mysql_stmt_execute(stmt); check_execute(stmt, rc); - mysql_stmt_close(stmt); + verify_col_data("test_piping", "name", "MySQL"); rc= mysql_query(mysql, "DELETE FROM test_piping"); @@ -12993,7 +12993,7 @@ from t2);"); static void test_bug8378() { #if defined(HAVE_CHARSET_gbk) && !defined(EMBEDDED_LIBRARY) - MYSQL *old_mysql=mysql; + MYSQL *lmysql; char out[9]; /* strlen(TEST_BUG8378)*2+1 */ char buf[256]; int len, rc; @@ -13002,17 +13002,17 @@ static void test_bug8378() if (!opt_silent) fprintf(stdout, "\n Establishing a test connection ..."); - if (!(mysql= mysql_init(NULL))) + if (!(lmysql= mysql_init(NULL))) { myerror("mysql_init() failed"); exit(1); } - if (mysql_options(mysql, MYSQL_SET_CHARSET_NAME, "gbk")) + if (mysql_options(lmysql, MYSQL_SET_CHARSET_NAME, "gbk")) { myerror("mysql_options() failed"); exit(1); } - if (!(mysql_real_connect(mysql, opt_host, opt_user, + if (!(mysql_real_connect(lmysql, opt_host, opt_user, opt_password, current_db, opt_port, opt_unix_socket, 0))) { @@ -13022,19 +13022,17 @@ static void test_bug8378() if (!opt_silent) fprintf(stdout, " OK"); - len= mysql_real_escape_string(mysql, out, TEST_BUG8378_IN, 4); + len= mysql_real_escape_string(lmysql, out, TEST_BUG8378_IN, 4); /* No escaping should have actually happened. */ DIE_UNLESS(memcmp(out, TEST_BUG8378_OUT, len) == 0); sprintf(buf, "SELECT '%s'", out); - rc=mysql_real_query(mysql, buf, strlen(buf)); + rc=mysql_real_query(lmysql, buf, strlen(buf)); myquery(rc); - mysql_close(mysql); - - mysql=old_mysql; + mysql_close(lmysql); #endif } @@ -14869,7 +14867,7 @@ static void test_opt_reconnect() if (mysql_options(lmysql, MYSQL_OPT_RECONNECT, &my_true)) { myerror("mysql_options failed: unknown option MYSQL_OPT_RECONNECT\n"); - exit(1); + DIE_UNLESS(0); } /* reconnect should be 1 */ @@ -14882,7 +14880,7 @@ static void test_opt_reconnect() opt_unix_socket, 0))) { myerror("connection failed"); - exit(1); + DIE_UNLESS(0); } /* reconnect should still be 1 */ @@ -14896,7 +14894,7 @@ static void test_opt_reconnect() if (!(lmysql= mysql_init(NULL))) { myerror("mysql_init() failed"); - exit(1); + DIE_UNLESS(0); } if (!opt_silent) @@ -14908,7 +14906,7 @@ static void test_opt_reconnect() opt_unix_socket, 0))) { myerror("connection failed"); - exit(1); + DIE_UNLESS(0); } /* reconnect should still be 0 */ @@ -14926,32 +14924,32 @@ static void test_opt_reconnect() static void test_bug12744() { MYSQL_STMT *prep_stmt = NULL; + MYSQL *lmysql; int rc; myheader("test_bug12744"); - prep_stmt= mysql_stmt_init(mysql); + lmysql= mysql_init(NULL); + DIE_UNLESS(lmysql); + + if (!mysql_real_connect(lmysql, opt_host, opt_user, opt_password, + current_db, opt_port, opt_unix_socket, 0)) + { + fprintf(stderr, "Failed to connect to the database\n"); + DIE_UNLESS(0); + } + + prep_stmt= mysql_stmt_init(lmysql); rc= mysql_stmt_prepare(prep_stmt, "SELECT 1", 8); - DIE_UNLESS(rc==0); + DIE_UNLESS(rc == 0); - mysql_close(mysql); + mysql_close(lmysql); - if ((rc= mysql_stmt_execute(prep_stmt))) - { - if ((rc= mysql_stmt_reset(prep_stmt))) - printf("OK!\n"); - else - { - printf("Error!"); - DIE_UNLESS(1==0); - } - } - else - { - fprintf(stderr, "expected error but no error occured\n"); - DIE_UNLESS(1==0); - } + rc= mysql_stmt_execute(prep_stmt); + DIE_UNLESS(rc); + rc= mysql_stmt_reset(prep_stmt); + DIE_UNLESS(rc); rc= mysql_stmt_close(prep_stmt); - client_connect(0); + DIE_UNLESS(rc == 0); } #endif /* EMBEDDED_LIBRARY */ @@ -15759,6 +15757,7 @@ static void test_bug24179() mysql_stmt_error(stmt)); } DIE_UNLESS(mysql_stmt_errno(stmt) == 1323); + mysql_stmt_close(stmt); DBUG_VOID_RETURN; } @@ -15801,6 +15800,7 @@ static void test_bug27876() myquery(rc); result= mysql_store_result(mysql); mytest(result); + mysql_free_result(result); sprintf(query, "DROP FUNCTION IF EXISTS %s", utf8_func); rc= mysql_query(mysql, query); @@ -15817,6 +15817,7 @@ static void test_bug27876() myquery(rc); result= mysql_store_result(mysql); mytest(result); + mysql_free_result(result); sprintf(query, "DROP FUNCTION %s", utf8_func); rc= mysql_query(mysql, query); @@ -15965,6 +15966,7 @@ static void test_bug29948() exit(1); } + bzero(&bind, sizeof(bind)); bind.buffer_type= MYSQL_TYPE_LONG; bind.buffer= (char *)&buf; bind.is_null= &is_null; @@ -16162,6 +16164,7 @@ static void test_bug32265() int rc; MYSQL_STMT *stmt; MYSQL_FIELD *field; + MYSQL_RES *metadata; DBUG_ENTER("test_bug32265"); myheader("test_bug32265"); @@ -16179,50 +16182,61 @@ static void test_bug32265() rc= mysql_stmt_execute(stmt); check_execute(stmt, rc); - field= stmt->mysql->fields; + metadata= mysql_stmt_result_metadata(stmt); + field= mysql_fetch_field(metadata); + DIE_UNLESS(field); DIE_UNLESS(strcmp(field->table, "t1") == 0); DIE_UNLESS(strcmp(field->org_table, "t1") == 0); DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_free_result(metadata); mysql_stmt_close(stmt); stmt= open_cursor("SELECT a '' FROM t1 ``"); rc= mysql_stmt_execute(stmt); check_execute(stmt, rc); - field= stmt->mysql->fields; + metadata= mysql_stmt_result_metadata(stmt); + field= mysql_fetch_field(metadata); DIE_UNLESS(strcmp(field->table, "") == 0); DIE_UNLESS(strcmp(field->org_table, "t1") == 0); DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_free_result(metadata); mysql_stmt_close(stmt); stmt= open_cursor("SELECT a '' FROM t1 ``"); rc= mysql_stmt_execute(stmt); check_execute(stmt, rc); - field= stmt->mysql->fields; + metadata= mysql_stmt_result_metadata(stmt); + field= mysql_fetch_field(metadata); DIE_UNLESS(strcmp(field->table, "") == 0); DIE_UNLESS(strcmp(field->org_table, "t1") == 0); DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_free_result(metadata); mysql_stmt_close(stmt); stmt= open_cursor("SELECT * FROM v1"); rc= mysql_stmt_execute(stmt); check_execute(stmt, rc); - field= stmt->mysql->fields; + metadata= mysql_stmt_result_metadata(stmt); + field= mysql_fetch_field(metadata); DIE_UNLESS(strcmp(field->table, "v1") == 0); DIE_UNLESS(strcmp(field->org_table, "t1") == 0); DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_free_result(metadata); mysql_stmt_close(stmt); stmt= open_cursor("SELECT * FROM v1 /* SIC */ GROUP BY 1"); rc= mysql_stmt_execute(stmt); check_execute(stmt, rc); - field= stmt->mysql->fields; + metadata= mysql_stmt_result_metadata(stmt); + field= mysql_fetch_field(metadata); DIE_UNLESS(strcmp(field->table, "v1") == 0); DIE_UNLESS(strcmp(field->org_table, "t1") == 0); DIE_UNLESS(strcmp(field->db, "client_test_db") == 0); + mysql_free_result(metadata); mysql_stmt_close(stmt); rc= mysql_query(mysql, "DROP VIEW v1"); From 140ca5953815ac1f773ae518cb021783e3334e20 Mon Sep 17 00:00:00 2001 From: "holyfoot/hf@mysql.com/hfmain.(none)" <> Date: Wed, 27 Feb 2008 12:42:43 +0400 Subject: [PATCH 047/139] Bug #25097 mysql_server_init fails silently if no errmsg.sys is present. There was no way to return an error from the client library if no MYSQL connections was established. So here i added variables to store that king of errors and made functions like mysql_error(NULL) to return these. --- client/mysql.cc | 1 + include/sql_common.h | 1 + libmysql/libmysql.c | 2 +- libmysqld/lib_sql.cc | 10 ++++++++++ sql-common/client.c | 27 +++++++++++++++++++++------ sql/log.cc | 7 +------ 6 files changed, 35 insertions(+), 13 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index 76ed82508be..af28dce2cdd 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -420,6 +420,7 @@ int main(int argc,char *argv[]) } if (mysql_server_init(emb_argc, emb_argv, (char**) server_default_groups)) { + put_error(NULL); free_defaults(defaults_argv); my_end(0); exit(1); diff --git a/include/sql_common.h b/include/sql_common.h index a549fe6aeb5..32487f7e569 100644 --- a/include/sql_common.h +++ b/include/sql_common.h @@ -15,6 +15,7 @@ extern const char *unknown_sqlstate; +extern const char *cant_connect_sqlstate; extern const char *not_error_sqlstate; #ifdef __cplusplus diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 4afc3ec5925..0320126a522 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -1486,7 +1486,7 @@ my_ulonglong STDCALL mysql_insert_id(MYSQL *mysql) const char *STDCALL mysql_sqlstate(MYSQL *mysql) { - return mysql->net.sqlstate; + return mysql ? mysql->net.sqlstate : cant_connect_sqlstate; } uint STDCALL mysql_warning_count(MYSQL *mysql) diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc index ce692169a5f..b0a47727c7c 100644 --- a/libmysqld/lib_sql.cc +++ b/libmysqld/lib_sql.cc @@ -47,6 +47,8 @@ C_MODE_START #include #include "embedded_priv.h" +extern unsigned int mysql_server_last_errno; +extern char mysql_server_last_error[MYSQL_ERRMSG_SIZE]; static my_bool emb_read_query_result(MYSQL *mysql); @@ -1084,3 +1086,11 @@ bool Protocol::net_store_data(const char *from, uint length) return false; } + +void vprint_msg_to_log(enum loglevel level __attribute__((unused)), + const char *format, va_list argsi) +{ + vsnprintf(mysql_server_last_error, sizeof(mysql_server_last_error), + format, argsi); + mysql_server_last_errno= CR_UNKNOWN_ERROR; +} diff --git a/sql-common/client.c b/sql-common/client.c index 1fc73549520..d4aceffe227 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -117,6 +117,7 @@ uint mysql_port=0; char *mysql_unix_port= 0; const char *unknown_sqlstate= "HY000"; const char *not_error_sqlstate= "00000"; +const char *cant_connect_sqlstate= "08001"; #ifdef HAVE_SMEM char *shared_memory_base_name= 0; const char *def_shared_memory_base_name= default_shared_memory_base_name; @@ -131,6 +132,9 @@ static int wait_for_data(my_socket fd, uint timeout); CHARSET_INFO *default_client_charset_info = &my_charset_latin1; +/* Server error code and message */ +unsigned int mysql_server_last_errno; +char mysql_server_last_error[MYSQL_ERRMSG_SIZE]; /**************************************************************************** A modified version of connect(). my_connect() allows you to specify @@ -752,10 +756,18 @@ void set_mysql_error(MYSQL *mysql, int errcode, const char *sqlstate) DBUG_PRINT("enter", ("error :%d '%s'", errcode, ER(errcode))); DBUG_ASSERT(mysql != 0); - net= &mysql->net; - net->last_errno= errcode; - strmov(net->last_error, ER(errcode)); - strmov(net->sqlstate, sqlstate); + if (mysql) + { + net= &mysql->net; + net->last_errno= errcode; + strmov(net->last_error, ER(errcode)); + strmov(net->sqlstate, sqlstate); + } + else + { + mysql_server_last_errno= errcode; + strmov(mysql_server_last_error, ER(errcode)); + } DBUG_VOID_RETURN; } @@ -1477,7 +1489,10 @@ mysql_init(MYSQL *mysql) if (!mysql) { if (!(mysql=(MYSQL*) my_malloc(sizeof(*mysql),MYF(MY_WME | MY_ZEROFILL)))) + { + set_mysql_error(NULL, CR_OUT_OF_MEMORY, unknown_sqlstate); return 0; + } mysql->free_me=1; } else @@ -3064,13 +3079,13 @@ unsigned int STDCALL mysql_num_fields(MYSQL_RES *res) uint STDCALL mysql_errno(MYSQL *mysql) { - return mysql->net.last_errno; + return mysql ? mysql->net.last_errno : mysql_server_last_errno; } const char * STDCALL mysql_error(MYSQL *mysql) { - return mysql->net.last_error; + return mysql ? mysql->net.last_error : mysql_server_last_error; } diff --git a/sql/log.cc b/sql/log.cc index e66d965c613..d1da900e1b5 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -2454,12 +2454,7 @@ static void print_buffer_to_nt_eventlog(enum loglevel level, char *buff, void */ -#ifdef EMBEDDED_LIBRARY -void vprint_msg_to_log(enum loglevel level __attribute__((unused)), - const char *format __attribute__((unused)), - va_list argsi __attribute__((unused))) -{} -#else /*!EMBEDDED_LIBRARY*/ +#ifndef EMBEDDED_LIBRARY static void print_buffer_to_file(enum loglevel level, const char *buffer) { time_t skr; From d9e7b3b11cd9a7c946ad2c19f8cd6c3e56664dd6 Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Wed, 27 Feb 2008 18:12:08 +0300 Subject: [PATCH 048/139] Fixed test suite failures with --ps-protocol introduced in PB by the patch for bug #33834. --- mysql-test/t/func_time.test | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mysql-test/t/func_time.test b/mysql-test/t/func_time.test index 613a2fc7ca0..ef22adb4251 100644 --- a/mysql-test/t/func_time.test +++ b/mysql-test/t/func_time.test @@ -336,7 +336,7 @@ select date_add(date,INTERVAL "1" QUARTER) from t1; select timestampadd(MINUTE, 1, date) from t1; select timestampadd(WEEK, 1, date) from t1; select timestampadd(SQL_TSI_SECOND, 1, date) from t1; -# Prepared statements doesn't support FRAC_SECOND yet +# mysqltest.c discards an expected 'deprecated' warning on prepare stage --disable_ps_protocol select timestampadd(SQL_TSI_FRAC_SECOND, 1, date) from t1; --enable_ps_protocol @@ -351,7 +351,10 @@ select timestampdiff(SQL_TSI_HOUR, '2001-02-01', '2001-05-01') as a; select timestampdiff(SQL_TSI_DAY, '2001-02-01', '2001-05-01') as a; select timestampdiff(SQL_TSI_MINUTE, '2001-02-01 12:59:59', '2001-05-01 12:58:59') as a; select timestampdiff(SQL_TSI_SECOND, '2001-02-01 12:59:59', '2001-05-01 12:58:58') as a; +# mysqltest.c discards an expected 'deprecated' warning on prepare stage +--disable_ps_protocol select timestampdiff(SQL_TSI_FRAC_SECOND, '2001-02-01 12:59:59.120000', '2001-05-01 12:58:58.119999') as a; +--enable_ps_protocol select timestampdiff(SQL_TSI_DAY, '1986-02-01', '1986-03-01') as a1, timestampdiff(SQL_TSI_DAY, '1900-02-01', '1900-03-01') as a2, @@ -810,8 +813,11 @@ select LAST_DAY('2007-12-06 08:59:19.05') - INTERVAL 1 SECOND; # Show that he use of FRAC_SECOND, for anything other than # TIMESTAMPADD / TIMESTAMPDIFF, is a server error. +# mysqltest.c discards an expected 'deprecated' warning on prepare stage +--disable_ps_protocol SELECT TIMESTAMPADD(FRAC_SECOND, 1, '2008-02-18'); SELECT TIMESTAMPDIFF(FRAC_SECOND, '2008-02-17', '2008-02-18'); +--enable_ps_protocol --error ER_PARSE_ERROR SELECT DATE_ADD('2008-02-18', INTERVAL 1 FRAC_SECOND); From 228d350e2e13605bbf6b2435396daccd42af0b7d Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Wed, 27 Feb 2008 13:05:46 -0300 Subject: [PATCH 049/139] Bug#34889 mysql_client_test::test_mysql_insert_id test fails sporadically Disable the test case. --- tests/mysql_client_test.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 56c4cff3e5a..429f6688759 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -16527,7 +16527,7 @@ static struct my_tests_st my_tests[]= { { "test_bug17667", test_bug17667 }, { "test_bug19671", test_bug19671 }, { "test_bug15752", test_bug15752 }, - { "test_mysql_insert_id", test_mysql_insert_id }, + /* { "test_mysql_insert_id", test_mysql_insert_id }, Bug#34889 */ { "test_bug21206", test_bug21206 }, { "test_bug21726", test_bug21726 }, { "test_bug15518", test_bug15518 }, From ee94231f826d25c0c8fbe3516dd17da6935b9ff0 Mon Sep 17 00:00:00 2001 From: "anozdrin/alik@quad." <> Date: Wed, 27 Feb 2008 22:29:58 +0300 Subject: [PATCH 050/139] Eliminate compilation warning. --- tests/mysql_client_test.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 429f6688759..260e7b1e7a7 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -15215,6 +15215,10 @@ static void test_bug14169() Test that mysql_insert_id() behaves as documented in our manual */ +#if 0 + + Commented out because of Bug#34889. + static void test_mysql_insert_id() { my_ulonglong res; @@ -15390,6 +15394,7 @@ static void test_mysql_insert_id() rc= mysql_query(mysql, "drop table t1,t2"); myquery(rc); } +#endif /* From 0443189d898a7de7a71b3399765dbf25db2ae4cf Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@magare.gmz" <> Date: Thu, 28 Feb 2008 13:31:19 +0200 Subject: [PATCH 051/139] Bug #34747: crash in debug assertion check after derived table Was a double-free of the Unique member of Item_func_group_concat. This was not causing a crash because the Unique is a descendent of Sql_alloc. Fixed to free the Unique only if it was allocated for the instance of Item_func_group_concat it was referenced from --- mysql-test/r/func_gconcat.result | 15 +++++++++++++++ mysql-test/t/func_gconcat.test | 17 +++++++++++++++++ sql/item_sum.cc | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/func_gconcat.result b/mysql-test/r/func_gconcat.result index 19b5f03de6b..77d11831842 100644 --- a/mysql-test/r/func_gconcat.result +++ b/mysql-test/r/func_gconcat.result @@ -931,4 +931,19 @@ SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY b) FROM t1; GROUP_CONCAT(DISTINCT b, a ORDER BY b) 11,22,32 DROP TABLE t1, t2, t3; +CREATE TABLE t1(a INT); +INSERT INTO t1 VALUES (),(); +SELECT s1.d1 FROM +( +SELECT +t1.a as d1, +GROUP_CONCAT(DISTINCT t1.a) AS d2 +FROM +t1 AS t1, +t1 AS t2 +GROUP BY 1 +) AS s1; +d1 +NULL +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/t/func_gconcat.test b/mysql-test/t/func_gconcat.test index 84c286e516b..87632fbdbb8 100644 --- a/mysql-test/t/func_gconcat.test +++ b/mysql-test/t/func_gconcat.test @@ -640,4 +640,21 @@ SELECT GROUP_CONCAT(DISTINCT b, a ORDER BY b) FROM t1; DROP TABLE t1, t2, t3; +# +# Bug #34747: crash in debug assertion check after derived table +# +CREATE TABLE t1(a INT); +INSERT INTO t1 VALUES (),(); +SELECT s1.d1 FROM +( + SELECT + t1.a as d1, + GROUP_CONCAT(DISTINCT t1.a) AS d2 + FROM + t1 AS t1, + t1 AS t2 + GROUP BY 1 +) AS s1; +DROP TABLE t1; + --echo End of 5.0 tests diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 47a7073c2e7..3d6d46ab3f4 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -3460,6 +3460,6 @@ void Item_func_group_concat::print(String *str) Item_func_group_concat::~Item_func_group_concat() { - if (unique_filter) + if (!original && unique_filter) delete unique_filter; } From c6b4d7a7c41a2469a69e0d2a8a883c83cbff3ea9 Mon Sep 17 00:00:00 2001 From: "tnurnberg@mysql.com/white.intern.koehntopp.de" <> Date: Thu, 28 Feb 2008 14:23:22 +0100 Subject: [PATCH 052/139] Bug#34749: Server crash when using NAME_CONST() with an aggregate function NAME_CONST('whatever', -1) * MAX(whatever) bombed since -1 was not seen as constant, but as FUNCTION_UNARY_MINUS(constant) while we are at the same time pretending it was a basic const item. This confused the aggregate handlers in exciting ways. We now make NAME_CONST() behave more consistently. --- mysql-test/r/func_misc.result | 19 +++++++++++++++++++ mysql-test/t/func_misc.test | 18 ++++++++++++++++++ sql/ha_ndbcluster_cond.cc | 9 ++++++--- sql/ha_ndbcluster_cond.h | 1 + sql/item.cc | 27 ++++++++++++++++++++++++++- sql/item.h | 9 +-------- sql/item_func.h | 5 +++-- 7 files changed, 74 insertions(+), 14 deletions(-) diff --git a/mysql-test/r/func_misc.result b/mysql-test/r/func_misc.result index 4f6b6d3a0d8..cccdd391497 100644 --- a/mysql-test/r/func_misc.result +++ b/mysql-test/r/func_misc.result @@ -207,6 +207,25 @@ test SELECT NAME_CONST('test', 'test'); test test +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +SELECT NAME_CONST('flag',1) * MAX(a) FROM t1; +NAME_CONST('flag',1) * MAX(a) +3 +SELECT NAME_CONST('flag',1.5) * MAX(a) FROM t1; +NAME_CONST('flag',1.5) * MAX(a) +4.5 +SELECT NAME_CONST('flag',-1) * MAX(a) FROM t1; +NAME_CONST('flag',-1) * MAX(a) +-3 +SELECT NAME_CONST('flag',-1.5) * MAX(a) FROM t1; +NAME_CONST('flag',-1.5) * MAX(a) +-4.5 +SELECT NAME_CONST('flag', SQRT(4)) * MAX(a) FROM t1; +ERROR HY000: Incorrect arguments to NAME_CONST +SELECT NAME_CONST('flag',-SQRT(4)) * MAX(a) FROM t1; +ERROR HY000: Incorrect arguments to NAME_CONST +DROP TABLE t1; CREATE TABLE t1 (a int); INSERT INTO t1 VALUES (5), (2); SELECT NAME_CONST(x,2) FROM (SELECT a x FROM t1) t; diff --git a/mysql-test/t/func_misc.test b/mysql-test/t/func_misc.test index ccb59df5677..17c147f7193 100644 --- a/mysql-test/t/func_misc.test +++ b/mysql-test/t/func_misc.test @@ -204,6 +204,24 @@ SELECT NAME_CONST('test', 1.0); SELECT NAME_CONST('test', -1.0); SELECT NAME_CONST('test', 'test'); +# +# Bug #34749: Server crash when using NAME_CONST() with an aggregate function +# + +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES (1),(2),(3); +# NAME_CONST() + aggregate. +SELECT NAME_CONST('flag',1) * MAX(a) FROM t1; +SELECT NAME_CONST('flag',1.5) * MAX(a) FROM t1; +# Now, wrap the INT_ITEM in Item_func_neg and watch the pretty explosions +SELECT NAME_CONST('flag',-1) * MAX(a) FROM t1; +SELECT NAME_CONST('flag',-1.5) * MAX(a) FROM t1; +--error ER_WRONG_ARGUMENTS +SELECT NAME_CONST('flag', SQRT(4)) * MAX(a) FROM t1; +--error ER_WRONG_ARGUMENTS +SELECT NAME_CONST('flag',-SQRT(4)) * MAX(a) FROM t1; +DROP TABLE t1; + # # Bug #27545: erroneous usage of NAME_CONST with a name as the first parameter # resolved against a column name of a derived table hangs the client diff --git a/sql/ha_ndbcluster_cond.cc b/sql/ha_ndbcluster_cond.cc index c7b185a92f0..f5b41959b40 100644 --- a/sql/ha_ndbcluster_cond.cc +++ b/sql/ha_ndbcluster_cond.cc @@ -117,7 +117,8 @@ void ndb_serialize_cond(const Item *item, void *arg) if (item->type() == Item::FUNC_ITEM) { Item_func *func_item= (Item_func *) item; - if (func_item->functype() == Item_func::UNKNOWN_FUNC && + if ((func_item->functype() == Item_func::UNKNOWN_FUNC || + func_item->functype() == Item_func::NEG_FUNC) && func_item->const_item()) { // Skip any arguments since we will evaluate function instead @@ -369,8 +370,9 @@ void ndb_serialize_cond(const Item *item, void *arg) { Item_func *func_item= (Item_func *) item; // Check that we expect a function or functional expression here - if (context->expecting(Item::FUNC_ITEM) || - func_item->functype() == Item_func::UNKNOWN_FUNC) + if (context->expecting(Item::FUNC_ITEM) || + func_item->functype() == Item_func::UNKNOWN_FUNC || + func_item->functype() == Item_func::NEG_FUNC) context->expect_nothing(); else { @@ -584,6 +586,7 @@ void ndb_serialize_cond(const Item *item, void *arg) context->expect(Item::FUNC_ITEM); break; } + case Item_func::NEG_FUNC: case Item_func::UNKNOWN_FUNC: { DBUG_PRINT("info", ("UNKNOWN_FUNC %s", diff --git a/sql/ha_ndbcluster_cond.h b/sql/ha_ndbcluster_cond.h index 6baf6945b58..6504df8d9d4 100644 --- a/sql/ha_ndbcluster_cond.h +++ b/sql/ha_ndbcluster_cond.h @@ -228,6 +228,7 @@ public: case (Item_func::ISNOTNULL_FUNC): { return NDB_ISNOTNULL_FUNC; } case (Item_func::LIKE_FUNC): { return NDB_LIKE_FUNC; } case (Item_func::NOT_FUNC): { return NDB_NOT_FUNC; } + case (Item_func::NEG_FUNC): { return NDB_UNKNOWN_FUNC; } case (Item_func::UNKNOWN_FUNC): { return NDB_UNKNOWN_FUNC; } case (Item_func::COND_AND_FUNC): { return NDB_COND_AND_FUNC; } case (Item_func::COND_OR_FUNC): { return NDB_COND_OR_FUNC; } diff --git a/sql/item.cc b/sql/item.cc index 713e7709bcb..acd8053cbdf 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -1207,6 +1207,22 @@ bool Item_name_const::is_null() return value_item->is_null(); } + +Item_name_const::Item_name_const(Item *name_arg, Item *val): + value_item(val), name_item(name_arg) +{ + if (!(valid_args= name_item->basic_const_item() && + (value_item->basic_const_item() || + ((value_item->type() == FUNC_ITEM) && + (((Item_func *) value_item)->functype() == + Item_func::NEG_FUNC) && + (((Item_func *) value_item)->key_item()->type() != + FUNC_ITEM))))) + my_error(ER_WRONG_ARGUMENTS, MYF(0), "NAME_CONST"); + Item::maybe_null= TRUE; +} + + Item::Type Item_name_const::type() const { /* @@ -1218,8 +1234,17 @@ Item::Type Item_name_const::type() const if (item->type() == FIELD_ITEM) ((Item_field *) item)->... we return NULL_ITEM in the case to avoid wrong casting. + + valid_args guarantees value_item->basic_const_item(); if type is + FUNC_ITEM, then we have a fudged item_func_neg() on our hands + and return the underlying type. */ - return valid_args ? value_item->type() : NULL_ITEM; + return valid_args ? + (((value_item->type() == FUNC_ITEM) && + (((Item_func *) value_item)->functype() == Item_func::NEG_FUNC)) ? + ((Item_func *) value_item)->key_item()->type() : + value_item->type()) : + NULL_ITEM; } diff --git a/sql/item.h b/sql/item.h index 5f511557f47..9af98e0efdb 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1113,14 +1113,7 @@ class Item_name_const : public Item Item *name_item; bool valid_args; public: - Item_name_const(Item *name_arg, Item *val): - value_item(val), name_item(name_arg) - { - if (!(valid_args= name_item->basic_const_item() & - value_item->basic_const_item())) - my_error(ER_WRONG_ARGUMENTS, MYF(0), "NAME_CONST"); - Item::maybe_null= TRUE; - } + Item_name_const(Item *name_arg, Item *val); bool fix_fields(THD *, Item **); diff --git a/sql/item_func.h b/sql/item_func.h index 940586fce01..6dcf32cba07 100644 --- a/sql/item_func.h +++ b/sql/item_func.h @@ -54,7 +54,8 @@ public: NOT_FUNC, NOT_ALL_FUNC, NOW_FUNC, TRIG_COND_FUNC, SUSERVAR_FUNC, GUSERVAR_FUNC, COLLATE_FUNC, - EXTRACT_FUNC, CHAR_TYPECAST_FUNC, FUNC_SP, UDF_FUNC }; + EXTRACT_FUNC, CHAR_TYPECAST_FUNC, FUNC_SP, UDF_FUNC, + NEG_FUNC }; enum optimize_type { OPTIMIZE_NONE,OPTIMIZE_KEY,OPTIMIZE_OP, OPTIMIZE_NULL, OPTIMIZE_EQUAL }; enum Type type() const { return FUNC_ITEM; } @@ -466,7 +467,7 @@ public: longlong int_op(); my_decimal *decimal_op(my_decimal *); const char *func_name() const { return "-"; } - virtual bool basic_const_item() const { return args[0]->basic_const_item(); } + enum Functype functype() const { return NEG_FUNC; } void fix_length_and_dec(); void fix_num_length_and_dec(); uint decimal_precision() const { return args[0]->decimal_precision(); } From 361262c7c0fa9b755a625852be384de4444dc099 Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Thu, 28 Feb 2008 11:34:08 -0300 Subject: [PATCH 053/139] Bug#33851 Passing UNSIGNED param to EXECUTE returns ERROR 1210 The problem is that passing anything other than a integer to a limit clause in a prepared statement would fail. This limitation was introduced to avoid replication problems (e.g: replicating the statement with a string argument would cause a parse failure in the slave). The solution is to convert arguments to the limit clause to a integer value and use this converted value when persisting the query to the log. --- mysql-test/r/limit.result | 9 ++++++++ mysql-test/r/ps.result | 30 ++++++++++++++++++++++++++ mysql-test/r/rpl_user_variables.result | 16 ++++++++++++++ mysql-test/t/limit.test | 17 ++++++++++----- mysql-test/t/ps.test | 19 ++++++++++++++++ mysql-test/t/rpl_user_variables.test | 17 +++++++++++++++ sql/item.cc | 11 +++++++--- sql/item.h | 9 ++------ sql/item_func.cc | 2 +- sql/sql_class.h | 2 +- sql/sql_yacc.yy | 2 +- 11 files changed, 116 insertions(+), 18 deletions(-) diff --git a/mysql-test/r/limit.result b/mysql-test/r/limit.result index 01d7d7ca218..2acf74162a4 100644 --- a/mysql-test/r/limit.result +++ b/mysql-test/r/limit.result @@ -94,6 +94,9 @@ drop table t1; prepare s from "select 1 limit ?"; set @a='qwe'; execute s using @a; +1 +set @a=-1; +execute s using @a; ERROR HY000: Incorrect arguments to EXECUTE prepare s from "select 1 limit 1, ?"; execute s using @a; @@ -101,4 +104,10 @@ ERROR HY000: Incorrect arguments to EXECUTE prepare s from "select 1 limit ?, ?"; execute s using @a, @a; ERROR HY000: Incorrect arguments to EXECUTE +set @a=14632475938453979136; +execute s using @a, @a; +1 +set @a=-14632475938453979136; +execute s using @a, @a; +ERROR HY000: Incorrect arguments to EXECUTE End of 5.0 tests diff --git a/mysql-test/r/ps.result b/mysql-test/r/ps.result index 32f48a688e2..9aef58d5702 100644 --- a/mysql-test/r/ps.result +++ b/mysql-test/r/ps.result @@ -1861,4 +1861,34 @@ prepare stmt from "create view v1 as select * from t1"; ERROR 42S02: Table 'test.t1' doesn't exist prepare stmt from "create view v1 as select * from `t1` `b`"; ERROR 42S02: Table 'test.t1' doesn't exist +prepare stmt from "select ?"; +set @arg= 123456789.987654321; +select @arg; +@arg +123456789.987654321 +execute stmt using @arg; +? +123456789.987654321 +set @arg= "string"; +select @arg; +@arg +string +execute stmt using @arg; +? +string +set @arg= 123456; +select @arg; +@arg +123456 +execute stmt using @arg; +? +123456 +set @arg= cast(-12345.54321 as decimal(20, 10)); +select @arg; +@arg +-12345.5432100000 +execute stmt using @arg; +? +-12345.5432100000 +deallocate prepare stmt; End of 5.0 tests. diff --git a/mysql-test/r/rpl_user_variables.result b/mysql-test/r/rpl_user_variables.result index 26ac2b26aaa..b8032a9c362 100644 --- a/mysql-test/r/rpl_user_variables.result +++ b/mysql-test/r/rpl_user_variables.result @@ -290,6 +290,22 @@ select * from t1; a b 2 1 drop table t1; +create table t1(a int); +insert into t1 values (1),(2); +prepare s1 from 'insert into t1 select a from t1 limit ?'; +set @x='1.1'; +execute s1 using @x; +select * from t1; +a +1 +2 +1 +select * from t1; +a +1 +2 +1 +drop table t1; End of 5.0 tests. DROP FUNCTION IF EXISTS f1; DROP FUNCTION IF EXISTS f2; diff --git a/mysql-test/t/limit.test b/mysql-test/t/limit.test index 286c04785ff..9cccca1adc3 100644 --- a/mysql-test/t/limit.test +++ b/mysql-test/t/limit.test @@ -76,15 +76,22 @@ drop table t1; # Bug #28464: a string argument to 'limit ?' PS # -prepare s from "select 1 limit ?"; -set @a='qwe'; ---error 1210 +prepare s from "select 1 limit ?"; +set @a='qwe'; +execute s using @a; +set @a=-1; +--error ER_WRONG_ARGUMENTS execute s using @a; prepare s from "select 1 limit 1, ?"; ---error 1210 +--error ER_WRONG_ARGUMENTS execute s using @a; prepare s from "select 1 limit ?, ?"; ---error 1210 +--error ER_WRONG_ARGUMENTS +execute s using @a, @a; +set @a=14632475938453979136; +execute s using @a, @a; +set @a=-14632475938453979136; +--error ER_WRONG_ARGUMENTS execute s using @a, @a; --echo End of 5.0 tests diff --git a/mysql-test/t/ps.test b/mysql-test/t/ps.test index 58ba901d82b..6c3f98f6a1a 100644 --- a/mysql-test/t/ps.test +++ b/mysql-test/t/ps.test @@ -1947,4 +1947,23 @@ prepare stmt from "create view v1 as select * from t1"; --error ER_NO_SUCH_TABLE prepare stmt from "create view v1 as select * from `t1` `b`"; +# +# Bug#33851: Passing UNSIGNED param to EXECUTE returns ERROR 1210 +# + +prepare stmt from "select ?"; +set @arg= 123456789.987654321; +select @arg; +execute stmt using @arg; +set @arg= "string"; +select @arg; +execute stmt using @arg; +set @arg= 123456; +select @arg; +execute stmt using @arg; +set @arg= cast(-12345.54321 as decimal(20, 10)); +select @arg; +execute stmt using @arg; +deallocate prepare stmt; + --echo End of 5.0 tests. diff --git a/mysql-test/t/rpl_user_variables.test b/mysql-test/t/rpl_user_variables.test index 8f8f0accbd1..70b708be258 100644 --- a/mysql-test/t/rpl_user_variables.test +++ b/mysql-test/t/rpl_user_variables.test @@ -337,6 +337,23 @@ select * from t1; connection master; drop table t1; +# +# Bug#33851: Passing UNSIGNED param to EXECUTE returns ERROR 1210 +# + +connection master; +create table t1(a int); +insert into t1 values (1),(2); +prepare s1 from 'insert into t1 select a from t1 limit ?'; +set @x='1.1'; +execute s1 using @x; +select * from t1; +sync_slave_with_master; +connection slave; +select * from t1; +connection master; +drop table t1; + --echo End of 5.0 tests. # This test uses a stored function that uses user-defined variables to return data diff --git a/sql/item.cc b/sql/item.cc index ffb18054750..a6a18e27b09 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -2385,7 +2385,7 @@ default_set_param_func(Item_param *param, Item_param::Item_param(unsigned pos_in_query_arg) : - strict_type(FALSE), + limit_clause_param(FALSE), state(NO_VALUE), item_result_type(STRING_RESULT), /* Don't pretend to be a literal unless value for this item is set. */ @@ -2581,8 +2581,13 @@ bool Item_param::set_from_user_var(THD *thd, const user_var_entry *entry) { item_result_type= entry->type; unsigned_flag= entry->unsigned_flag; - if (strict_type && required_result_type != item_result_type) - DBUG_RETURN(1); + if (limit_clause_param) + { + my_bool unused; + set_int(entry->val_int(&unused), MY_INT64_NUM_DECIMAL_DIGITS); + item_type= Item::INT_ITEM; + DBUG_RETURN(!unsigned_flag && value.integer < 0 ? 1 : 0); + } switch (item_result_type) { case REAL_RESULT: set_double(*(double*)entry->value); diff --git a/sql/item.h b/sql/item.h index ae3e240778a..7dc9ed4ec10 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1417,8 +1417,6 @@ class Item_param :public Item char cnvbuf[MAX_FIELD_WIDTH]; String cnvstr; Item *cnvitem; - bool strict_type; - enum Item_result required_result_type; public: enum enum_item_param_state @@ -1548,11 +1546,8 @@ public: Otherwise return FALSE. */ bool eq(const Item *item, bool binary_cmp) const; - void set_strict_type(enum Item_result result_type_arg) - { - strict_type= TRUE; - required_result_type= result_type_arg; - } + /** Item is a argument to a limit clause. */ + bool limit_clause_param; }; diff --git a/sql/item_func.cc b/sql/item_func.cc index 639e069d24e..84dd3e3ebc6 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -3985,7 +3985,7 @@ double user_var_entry::val_real(my_bool *null_value) /* Get the value of a variable as an integer */ -longlong user_var_entry::val_int(my_bool *null_value) +longlong user_var_entry::val_int(my_bool *null_value) const { if ((*null_value= (value == 0))) return LL(0); diff --git a/sql/sql_class.h b/sql/sql_class.h index 97f2d07b1d3..4ca8947de30 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -2329,7 +2329,7 @@ class user_var_entry bool unsigned_flag; double val_real(my_bool *null_value); - longlong val_int(my_bool *null_value); + longlong val_int(my_bool *null_value) const; String *val_str(my_bool *null_value, String *str, uint decimals); my_decimal *val_decimal(my_bool *null_value, my_decimal *result); DTCollation collation; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index a7c1060025d..04285fea227 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -6320,7 +6320,7 @@ limit_options: limit_option: param_marker { - ((Item_param *) $1)->set_strict_type(INT_RESULT); + ((Item_param *) $1)->limit_clause_param= TRUE; } | ULONGLONG_NUM { $$= new Item_uint($1.str, $1.length); } | LONG_NUM { $$= new Item_uint($1.str, $1.length); } From c51106740da269915185112414e1dfecfe41b427 Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Thu, 28 Feb 2008 22:53:31 +0400 Subject: [PATCH 054/139] Fixed bug #34620: item_row.cc:50: Item_row::illegal_method_call(const char*): Assertion `0' failed If ROW item is a part of an expression that also has aggregate function calls (COUNT/SUM/AVG...), a "splitting" with an Item::split_sum_func2 function is applied to that ROW item. Current implementation of Item::split_sum_func2 replaces this Item_row with a newly created Item_aggregate_ref reference to it. Then the row cache tries to work with the Item_aggregate_ref object as with the Item_row object: row cache calls row-emulation methods such as cols and element_index. Item_aggregate_ref (like it's parent Item_ref) inherits dummy implementations of those methods from the hierarchy root Item, and call to them leads to failed assertions and wrong data output. Row-emulation virtual functions (cols, element_index, addr, check_cols, null_inside and bring_value) of Item_ref have been overloaded to forward calls to an underlying item reference. --- mysql-test/r/row.result | 9 +++++++++ mysql-test/t/row.test | 13 +++++++++++++ sql/item.h | 29 +++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) diff --git a/mysql-test/r/row.result b/mysql-test/r/row.result index 702e66fea62..98c79d4bc00 100644 --- a/mysql-test/r/row.result +++ b/mysql-test/r/row.result @@ -434,3 +434,12 @@ SELECT @x; @x 99 DROP TABLE t1; +CREATE TABLE t1 (a INT, b INT); +INSERT INTO t1 VALUES (1,1); +SELECT ROW(a, 1) IN (SELECT SUM(b), 1) FROM t1 GROUP BY a; +ROW(a, 1) IN (SELECT SUM(b), 1) +1 +SELECT ROW(a, 1) IN (SELECT SUM(b), 3) FROM t1 GROUP BY a; +ROW(a, 1) IN (SELECT SUM(b), 3) +0 +DROP TABLE t1; diff --git a/mysql-test/t/row.test b/mysql-test/t/row.test index 20d044306a6..1601f7afd0e 100644 --- a/mysql-test/t/row.test +++ b/mysql-test/t/row.test @@ -224,3 +224,16 @@ SET @x:= (SELECT h FROM t1 WHERE (a,b,c,d,e,f,g)=(1,2,3,4,5,6,7)); SELECT @x; DROP TABLE t1; + +# +# Bug #34620: item_row.cc:50: Item_row::illegal_method_call(const char*): +# Assertion `0' failed +# + +CREATE TABLE t1 (a INT, b INT); +INSERT INTO t1 VALUES (1,1); + +SELECT ROW(a, 1) IN (SELECT SUM(b), 1) FROM t1 GROUP BY a; +SELECT ROW(a, 1) IN (SELECT SUM(b), 3) FROM t1 GROUP BY a; + +DROP TABLE t1; diff --git a/sql/item.h b/sql/item.h index f87499f23e3..c8b8e48b0ed 100644 --- a/sql/item.h +++ b/sql/item.h @@ -1990,6 +1990,35 @@ public: Item_field *filed_for_view_update() { return (*ref)->filed_for_view_update(); } virtual Ref_Type ref_type() { return REF; } + + // Row emulation: forwarding of ROW-related calls to ref + uint cols() + { + return ref && result_type() == ROW_RESULT ? (*ref)->cols() : 1; + } + Item* element_index(uint i) + { + return ref && result_type() == ROW_RESULT ? (*ref)->element_index(i) : this; + } + Item** addr(uint i) + { + return ref && result_type() == ROW_RESULT ? (*ref)->addr(i) : 0; + } + bool check_cols(uint c) + { + return ref && result_type() == ROW_RESULT ? (*ref)->check_cols(c) + : Item::check_cols(c); + } + bool null_inside() + { + return ref && result_type() == ROW_RESULT ? (*ref)->null_inside() : 0; + } + void bring_value() + { + if (ref && result_type() == ROW_RESULT) + (*ref)->bring_value(); + } + }; From 369c24937036a7850e61f7a77d5f9e169be3f724 Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Thu, 28 Feb 2008 20:22:11 -0300 Subject: [PATCH 055/139] Post-merge fix for Bug 33851. The initialization order of members must match the order which they were declared in the class definition. --- sql/item.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/item.cc b/sql/item.cc index a6a18e27b09..a9e99c65580 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -2385,14 +2385,14 @@ default_set_param_func(Item_param *param, Item_param::Item_param(unsigned pos_in_query_arg) : - limit_clause_param(FALSE), state(NO_VALUE), item_result_type(STRING_RESULT), /* Don't pretend to be a literal unless value for this item is set. */ item_type(PARAM_ITEM), param_type(MYSQL_TYPE_VARCHAR), pos_in_query(pos_in_query_arg), - set_param_func(default_set_param_func) + set_param_func(default_set_param_func), + limit_clause_param(FALSE) { name= (char*) "?"; /* From 13bb7e0a226b8a8cf4053793dc8405d1b4f93d04 Mon Sep 17 00:00:00 2001 From: "gluh@mysql.com/eagle.(none)" <> Date: Fri, 29 Feb 2008 13:55:00 +0400 Subject: [PATCH 056/139] Bug#32167 another privilege bypass with DATA/INDEX DIRECORY(ver 4.1,5.0) added new function test_if_data_home_dir() which checks that path does not contain mysql data home directory. Using of mysql data home directory in DATA DIRECTORY & INDEX DIRECTORY is disallowed. --- mysql-test/r/symlink.result | 38 ++++++++++++----------- mysql-test/t/symlink.test | 52 ++++++++++++++++++------------- sql/mysql_priv.h | 1 + sql/mysqld.cc | 4 +++ sql/sql_parse.cc | 61 ++++++++++++++++++++++++++++++++++++- 5 files changed, 117 insertions(+), 39 deletions(-) diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result index 32dc72b8219..84d7d8f4260 100644 --- a/mysql-test/r/symlink.result +++ b/mysql-test/r/symlink.result @@ -91,23 +91,15 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 drop table t1; CREATE TABLE t1(a INT) -DATA DIRECTORY='TEST_DIR/master-data/mysql' -INDEX DIRECTORY='TEST_DIR/master-data/mysql'; -RENAME TABLE t1 TO user; -ERROR HY000: Can't create/write to file 'TEST_DIR/master-data/mysql/user.MYI' (Errcode: 17) -DROP TABLE t1; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `i` int(11) default NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -drop table t1; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `i` int(11) default NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -drop table t1; +DATA DIRECTORY='TEST_DIR/tmp' +INDEX DIRECTORY='TEST_DIR/tmp'; +ERROR HY000: Can't create/write to file 'TEST_DIR/tmp/t1.MYI' (Errcode: 17) +CREATE TABLE t2(a INT) +DATA DIRECTORY='TEST_DIR/tmp' +INDEX DIRECTORY='TEST_DIR/tmp'; +RENAME TABLE t2 TO t1; +ERROR HY000: Can't create/write to file 'TEST_DIR/tmp/t1.MYI' (Errcode: 17) +DROP TABLE t2; show create table t1; Table Create Table t1 CREATE TEMPORARY TABLE `t1` ( @@ -144,4 +136,16 @@ t1 CREATE TABLE `t1` ( ) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' drop table t1; deallocate prepare stmt; +CREATE TABLE t1(a INT) +DATA DIRECTORY='TEST_DIR/var/master-data/test'; +ERROR HY000: Incorrect arguments to DATA DIRECORY +CREATE TABLE t1(a INT) +DATA DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data/'; +ERROR HY000: Incorrect arguments to DATA DIRECORY +CREATE TABLE t1(a INT) +INDEX DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data'; +ERROR HY000: Incorrect arguments to INDEX DIRECORY +CREATE TABLE t1(a INT) +INDEX DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data_var'; +ERROR HY000: Can't create/write to file '/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data_var/t1.MYI' (Errcode: 2) End of 4.1 tests diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test index 40127a697ac..7dfccaad8dc 100644 --- a/mysql-test/t/symlink.test +++ b/mysql-test/t/symlink.test @@ -121,29 +121,22 @@ drop table t1; # # BUG#32111 - Security Breach via DATA/INDEX DIRECORY and RENAME TABLE # ---replace_result $MYSQLTEST_VARDIR TEST_DIR -eval CREATE TABLE t1(a INT) -DATA DIRECTORY='$MYSQLTEST_VARDIR/master-data/mysql' -INDEX DIRECTORY='$MYSQLTEST_VARDIR/master-data/mysql'; +--write_file $MYSQLTEST_VARDIR/tmp/t1.MYI +EOF --replace_result $MYSQLTEST_VARDIR TEST_DIR --error 1 -RENAME TABLE t1 TO user; -DROP TABLE t1; - -# -# Test specifying DATA DIRECTORY that is the same as what would normally -# have been chosen. (Bug #8707) -# -disable_query_log; -eval create table t1 (i int) data directory = "$MYSQL_TEST_DIR/var/master-data/test/"; -enable_query_log; -show create table t1; -drop table t1; -disable_query_log; -eval create table t1 (i int) index directory = "$MYSQL_TEST_DIR/var/master-data/test/"; -enable_query_log; -show create table t1; -drop table t1; +eval CREATE TABLE t1(a INT) +DATA DIRECTORY='$MYSQLTEST_VARDIR/tmp' +INDEX DIRECTORY='$MYSQLTEST_VARDIR/tmp'; +--replace_result $MYSQLTEST_VARDIR TEST_DIR +eval CREATE TABLE t2(a INT) +DATA DIRECTORY='$MYSQLTEST_VARDIR/tmp' +INDEX DIRECTORY='$MYSQLTEST_VARDIR/tmp'; +--replace_result $MYSQLTEST_VARDIR TEST_DIR +--error 1 +RENAME TABLE t2 TO t1; +DROP TABLE t2; +--remove_file $MYSQLTEST_VARDIR/tmp/t1.MYI # # Bug#8706 - temporary table with data directory option fails @@ -201,4 +194,21 @@ show create table t1; drop table t1; deallocate prepare stmt; +# +# Bug#32167 another privilege bypass with DATA/INDEX DIRECORY +# +--replace_result $MYSQL_TEST_DIR TEST_DIR +--error 1210 +eval CREATE TABLE t1(a INT) +DATA DIRECTORY='$MYSQL_TEST_DIR/var/master-data/test'; +--error 1210 +eval CREATE TABLE t1(a INT) +DATA DIRECTORY='$MYSQL_TEST_DIR/var/master-data/'; +--error 1210 +eval CREATE TABLE t1(a INT) +INDEX DIRECTORY='$MYSQL_TEST_DIR/var/master-data'; +--error 1 +eval CREATE TABLE t1(a INT) +INDEX DIRECTORY='$MYSQL_TEST_DIR/var/master-data_var'; + --echo End of 4.1 tests diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index b6170ba35f9..4b0031d1f2a 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -890,6 +890,7 @@ void my_dbopt_free(void); extern time_t start_time; extern char *mysql_data_home,server_version[SERVER_VERSION_LENGTH], mysql_real_data_home[], *opt_mysql_tmpdir, mysql_charsets_dir[], + mysql_unpacked_real_data_home[], def_ft_boolean_syntax[sizeof(ft_boolean_syntax)]; #define mysql_tmpdir (my_tmpdir(&mysql_tmpdir_list)) extern MY_TMPDIR mysql_tmpdir_list; diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 62105e0093a..8111df7ad4d 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -390,6 +390,7 @@ const char *opt_date_time_formats[3]; char compiled_default_collation_name[]= MYSQL_DEFAULT_COLLATION_NAME; char *language_ptr, *default_collation_name, *default_character_set_name; char mysql_data_home_buff[2], *mysql_data_home=mysql_real_data_home; +char mysql_unpacked_real_data_home[FN_REFLEN]; struct passwd *user_info; char server_version[SERVER_VERSION_LENGTH]; char *mysqld_unix_port, *opt_mysql_tmpdir; @@ -6896,6 +6897,9 @@ static void fix_paths(void) pos[1]= 0; } convert_dirname(mysql_real_data_home,mysql_real_data_home,NullS); + (void) fn_format(buff, mysql_real_data_home, "", "", + (MY_RETURN_REAL_PATH|MY_RESOLVE_SYMLINKS)); + (void) unpack_dirname(mysql_unpacked_real_data_home, buff); convert_dirname(language,language,NullS); (void) my_load_path(mysql_home,mysql_home,""); // Resolve current dir (void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_home); diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 24f9ef30569..4bbd425d80b 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -65,7 +65,8 @@ static bool append_file_to_dir(THD *thd, const char **filename_ptr, const char *table_name); static TABLE_LIST* get_table_by_alias(TABLE_LIST* tl, const char* db, - const char* alias); + const char* alias); +static bool test_if_data_home_dir(const char *dir); const char *any_db="*any*"; // Special symbol for check_access @@ -2531,6 +2532,20 @@ mysql_execute_command(THD *thd) "INDEX DIRECTORY option ignored"); create_info.data_file_name= create_info.index_file_name= NULL; #else + + if (test_if_data_home_dir(lex->create_info.data_file_name)) + { + my_error(ER_WRONG_ARGUMENTS,MYF(0),"DATA DIRECORY"); + res= -1; + break; + } + if (test_if_data_home_dir(lex->create_info.index_file_name)) + { + my_error(ER_WRONG_ARGUMENTS,MYF(0),"INDEX DIRECORY"); + res= -1; + break; + } + /* Fix names if symlinked tables */ if (append_file_to_dir(thd, &create_info.data_file_name, create_table->real_name) || @@ -5920,3 +5935,47 @@ Item *negate_expression(THD *thd, Item *expr) return negated; return new Item_func_not(expr); } + + +/* + Check if path does not contain mysql data home directory + + SYNOPSIS + test_if_data_home_dir() + dir directory + conv_home_dir converted data home directory + home_dir_len converted data home directory length + + RETURN VALUES + 0 ok + 1 error +*/ + +static bool test_if_data_home_dir(const char *dir) +{ + char path[FN_REFLEN], conv_path[FN_REFLEN]; + uint dir_len, home_dir_len= strlen(mysql_unpacked_real_data_home); + DBUG_ENTER("test_if_data_home_dir"); + + if (!dir) + DBUG_RETURN(0); + + (void) fn_format(path, dir, "", "", + (MY_RETURN_REAL_PATH|MY_RESOLVE_SYMLINKS)); + dir_len= unpack_dirname(conv_path, dir); + + if (home_dir_len <= dir_len) + { + if (lower_case_file_system) + { + if (!my_strnncoll(default_charset_info, (const uchar*) conv_path, + home_dir_len, + (const uchar*) mysql_unpacked_real_data_home, + home_dir_len)) + DBUG_RETURN(1); + } + else if (!memcmp(conv_path, mysql_unpacked_real_data_home, home_dir_len)) + DBUG_RETURN(1); + } + DBUG_RETURN(0); +} From 931bdedbc23283c4ced9623d433df459e4635fa6 Mon Sep 17 00:00:00 2001 From: "gluh@mysql.com/eagle.(none)" <> Date: Fri, 29 Feb 2008 15:04:00 +0400 Subject: [PATCH 057/139] after merge fix --- mysql-test/r/symlink.result | 47 ++++++++++++++++++------------------- mysql-test/t/symlink.test | 38 +++++++----------------------- sql/mysqld.cc | 10 ++------ 3 files changed, 33 insertions(+), 62 deletions(-) diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result index b39ef971539..f014a794dc7 100644 --- a/mysql-test/r/symlink.result +++ b/mysql-test/r/symlink.result @@ -130,39 +130,38 @@ select * from t1; a 42 drop table t1; +execute stmt; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c` char(10) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' +drop table t1; +execute stmt; +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `c` char(10) default NULL +) ENGINE=MyISAM DEFAULT CHARSET=latin1 DATA DIRECTORY='MYSQLTEST_VARDIR/tmp/' +drop table t1; +deallocate prepare stmt; CREATE TABLE t1(a INT) DATA DIRECTORY='TEST_DIR/var/master-data/test'; ERROR HY000: Incorrect arguments to DATA DIRECORY CREATE TABLE t1(a INT) -DATA DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data/'; +DATA DIRECTORY='/home/gluh/MySQL/Merge/5.0-opt/mysql-test/var/master-data/'; ERROR HY000: Incorrect arguments to DATA DIRECORY CREATE TABLE t1(a INT) -INDEX DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data'; +INDEX DIRECTORY='/home/gluh/MySQL/Merge/5.0-opt/mysql-test/var/master-data'; ERROR HY000: Incorrect arguments to INDEX DIRECORY CREATE TABLE t1(a INT) -INDEX DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data_var'; -ERROR HY000: Can't create/write to file '/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data_var/t1.MYI' (Errcode: 2) +INDEX DIRECTORY='/home/gluh/MySQL/Merge/5.0-opt/mysql-test/var/master-data_var'; +ERROR HY000: Can't create/write to file '/home/gluh/MySQL/Merge/5.0-opt/mysql-test/var/master-data_var/t1.MYI' (Errcode: 2) End of 4.1 tests -CREATE DATABASE db1; -CREATE DATABASE db2; -USE db2; -INSERT INTO db2.t1 VALUES (1); -SELECT * FROM db2.t1; -b -1 -RESET QUERY CACHE; -USE db1; SET SESSION keep_files_on_create = TRUE; CREATE TABLE t1 (a INT) ENGINE MYISAM; -ERROR HY000: Can't create/write to file './db1/t1.MYD' (Errcode: 17) -CREATE TABLE t3 (a INT) Engine=MyISAM; -INSERT INTO t3 VALUES (1),(2),(3); -TRUNCATE TABLE t3; -SELECT * from t3; -a -SET SESSION keep_files_on_create = DEFAULT; -DROP TABLE db2.t1, db1.t3; -DROP DATABASE db1; -DROP DATABASE db2; -USE test; +ERROR HY000: Can't create/write to file './test/t1.MYD' (Errcode: 17) +SET SESSION keep_files_on_create = FALSE; +CREATE TABLE t1 (a INT) ENGINE MYISAM; +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test index f4a10bc58d8..ffe5cc76737 100644 --- a/mysql-test/t/symlink.test +++ b/mysql-test/t/symlink.test @@ -222,39 +222,17 @@ INDEX DIRECTORY='$MYSQL_TEST_DIR/var/master-data_var'; # # Bug #29325: create table overwrites .MYD file of other table (datadir) # - -CREATE DATABASE db1; -CREATE DATABASE db2; - -USE db2; ---disable_query_log -eval CREATE TABLE t1 (b INT) ENGINE MYISAM -DATA DIRECTORY = '$MYSQLTEST_VARDIR/master-data/db1/'; ---enable_query_log - -INSERT INTO db2.t1 VALUES (1); -SELECT * FROM db2.t1; -RESET QUERY CACHE; - -USE db1; - -#no warning from create table SET SESSION keep_files_on_create = TRUE; +--write_file $MYSQLTEST_VARDIR/master-data/test/t1.MYD +EOF --disable_abort_on_error +--error 1 CREATE TABLE t1 (a INT) ENGINE MYISAM; +--error 0,1 +--remove_file $MYSQLTEST_VARDIR/master-data/test/t1.MYD; --enable_abort_on_error - -CREATE TABLE t3 (a INT) Engine=MyISAM; -INSERT INTO t3 VALUES (1),(2),(3); -TRUNCATE TABLE t3; -SELECT * from t3; - -SET SESSION keep_files_on_create = DEFAULT; - -DROP TABLE db2.t1, db1.t3; -DROP DATABASE db1; -DROP DATABASE db2; -USE test; - +SET SESSION keep_files_on_create = FALSE; +CREATE TABLE t1 (a INT) ENGINE MYISAM; +DROP TABLE t1; --echo End of 5.0 tests diff --git a/sql/mysqld.cc b/sql/mysqld.cc index c03c9c34571..4d688d795f7 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -467,19 +467,13 @@ char log_error_file[FN_REFLEN], glob_hostname[FN_REFLEN]; char mysql_real_data_home[FN_REFLEN], language[FN_REFLEN], reg_ext[FN_EXTLEN], mysql_charsets_dir[FN_REFLEN], *opt_init_file, *opt_tc_log_file, + mysql_unpacked_real_data_home[FN_REFLEN], def_ft_boolean_syntax[sizeof(ft_boolean_syntax)]; - +char *mysql_data_home= mysql_real_data_home; const key_map key_map_empty(0); key_map key_map_full(0); // Will be initialized later const char *opt_date_time_formats[3]; - - -char compiled_default_collation_name[]= MYSQL_DEFAULT_COLLATION_NAME; -char *language_ptr, *default_collation_name, *default_character_set_name; -char mysql_data_home_buff[2], *mysql_data_home=mysql_real_data_home; -char mysql_unpacked_real_data_home[FN_REFLEN]; -struct passwd *user_info; char server_version[SERVER_VERSION_LENGTH]; char *mysqld_unix_port, *opt_mysql_tmpdir; const char **errmesg; /* Error messages */ From 3bf9c7edf1514d5f361b7025afb40e75801dd651 Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Fri, 29 Feb 2008 15:11:11 +0400 Subject: [PATCH 058/139] Fixed bug #34830: mixed table and field names in Item_ref and Item_direct_ref constructor calls. Order of ref->field_name and ref->table_name arguments is of Item_ref and Item_direct_ref in the fix_inner_refs function is inverted. --- sql/sql_select.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 38da4e26f5a..926b389f59f 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -360,10 +360,10 @@ fix_inner_refs(THD *thd, List &all_fields, SELECT_LEX *select, } } new_ref= direct_ref ? - new Item_direct_ref(ref->context, item_ref, ref->field_name, - ref->table_name, ref->alias_name_used) : - new Item_ref(ref->context, item_ref, ref->field_name, - ref->table_name, ref->alias_name_used); + new Item_direct_ref(ref->context, item_ref, ref->table_name, + ref->field_name, ref->alias_name_used) : + new Item_ref(ref->context, item_ref, ref->table_name, + ref->field_name, ref->alias_name_used); if (!new_ref) return TRUE; ref->outer_ref= new_ref; From 4d582db8eafba8b3efe0dc1044cc97e7802a656a Mon Sep 17 00:00:00 2001 From: "gluh@mysql.com/eagle.(none)" <> Date: Fri, 29 Feb 2008 16:56:41 +0400 Subject: [PATCH 059/139] test fix --- mysql-test/r/symlink.result | 8 ++++---- mysql-test/t/symlink.test | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result index 84d7d8f4260..09715d30703 100644 --- a/mysql-test/r/symlink.result +++ b/mysql-test/r/symlink.result @@ -140,12 +140,12 @@ CREATE TABLE t1(a INT) DATA DIRECTORY='TEST_DIR/var/master-data/test'; ERROR HY000: Incorrect arguments to DATA DIRECORY CREATE TABLE t1(a INT) -DATA DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data/'; +DATA DIRECTORY='TEST_DIR/var/master-data/'; ERROR HY000: Incorrect arguments to DATA DIRECORY CREATE TABLE t1(a INT) -INDEX DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data'; +INDEX DIRECTORY='TEST_DIR/var/master-data'; ERROR HY000: Incorrect arguments to INDEX DIRECORY CREATE TABLE t1(a INT) -INDEX DIRECTORY='/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data_var'; -ERROR HY000: Can't create/write to file '/home/gluh/MySQL/Merge/4.1-opt/mysql-test/var/master-data_var/t1.MYI' (Errcode: 2) +INDEX DIRECTORY='TEST_DIR/var/master-data_var'; +ERROR HY000: Can't create/write to file 'TEST_DIR/var/master-data_var/t1.MYI' (Errcode: 2) End of 4.1 tests diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test index 7dfccaad8dc..c8790c450f9 100644 --- a/mysql-test/t/symlink.test +++ b/mysql-test/t/symlink.test @@ -201,12 +201,15 @@ deallocate prepare stmt; --error 1210 eval CREATE TABLE t1(a INT) DATA DIRECTORY='$MYSQL_TEST_DIR/var/master-data/test'; +--replace_result $MYSQL_TEST_DIR TEST_DIR --error 1210 eval CREATE TABLE t1(a INT) DATA DIRECTORY='$MYSQL_TEST_DIR/var/master-data/'; +--replace_result $MYSQL_TEST_DIR TEST_DIR --error 1210 eval CREATE TABLE t1(a INT) INDEX DIRECTORY='$MYSQL_TEST_DIR/var/master-data'; +--replace_result $MYSQL_TEST_DIR TEST_DIR --error 1 eval CREATE TABLE t1(a INT) INDEX DIRECTORY='$MYSQL_TEST_DIR/var/master-data_var'; From 0596b1c6cdd54510dbcd0f4ba30bd828d96c4d2b Mon Sep 17 00:00:00 2001 From: "gluh@mysql.com/eagle.(none)" <> Date: Fri, 29 Feb 2008 17:50:01 +0400 Subject: [PATCH 060/139] wrong merge fix --- sql/sql_parse.cc | 2 -- 1 file changed, 2 deletions(-) diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 9e2a4bb77ac..fd16435ff9c 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -76,8 +76,6 @@ static void remove_escape(char *name); static bool append_file_to_dir(THD *thd, const char **filename_ptr, const char *table_name); static bool check_show_create_table_access(THD *thd, TABLE_LIST *table); -static TABLE_LIST* get_table_by_alias(TABLE_LIST* tl, const char* db, - const char* alias); static bool test_if_data_home_dir(const char *dir); const char *any_db="*any*"; // Special symbol for check_access From ab30949123be35e10bc368cdc60d8731ad9ab2a0 Mon Sep 17 00:00:00 2001 From: "kent@mysql.com/kent-amd64.(none)" <> Date: Sat, 1 Mar 2008 18:25:41 +0100 Subject: [PATCH 061/139] mysql.spec.sh: - Aligned copyright headers and text with 5.0 - Don't strip binaries on SuSE 9 - Formatting alignment with spec file in 5.0 - Run full test on "normal" binary, and less on "Max" - Let test runs on "Max" identify the runs with "max" and "max+ps" --- support-files/mysql.spec.sh | 92 ++++++++++++++++++++++++------------- 1 file changed, 60 insertions(+), 32 deletions(-) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index b28af51d43e..1a737b70083 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -1,4 +1,22 @@ -%define mysql_version @VERSION@ +# Copyright (C) 2000-2007 MySQL AB +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston +# MA 02110-1301 USA. + +%define mysql_version @VERSION@ +%define mysql_vendor MySQL AB + # use "rpmbuild --with static" or "rpm --define '_with_static 1'" (for RPM 3.x) # to enable static linking (off by default) %{?_with_static:%define STATIC_BUILD 1} @@ -9,7 +27,7 @@ %define release 0.glibc23 %endif %define license GPL -%define mysqld_user mysql +%define mysqld_user mysql %define mysqld_group mysql %define server_suffix -standard %define mysqldatadir /var/lib/mysql @@ -20,6 +38,23 @@ %define see_base For a description of MySQL see the base MySQL RPM or http://www.mysql.com +# On SuSE 9 no separate "debuginfo" package is built. To enable basic +# debugging on that platform, we don't strip binaries on SuSE 9. We +# disable the strip of binaries by redefining the RPM macro +# "__os_install_post" leaving out the script calls that normally does +# this. We do this in all cases, as on platforms where "debuginfo" is +# created, a script "find-debuginfo.sh" will be called that will do +# the strip anyway, part of separating the executable and debug +# information into separate files put into separate packages. +# +# Some references (shows more advanced conditional usage): +# http://www.redhat.com/archives/rpm-list/2001-November/msg00257.html +# http://www.redhat.com/archives/rpm-list/2003-February/msg00275.html +# http://www.redhat.com/archives/rhl-devel-list/2004-January/msg01546.html +# http://lists.opensuse.org/archive/opensuse-commit/2006-May/1171.html + +%define __os_install_post /usr/lib/rpm/brp-compress + Name: MySQL Summary: MySQL: a very fast and reliable SQL database server Group: Applications/Databases @@ -29,7 +64,7 @@ License: %{license} Source: http://www.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/mysql-%{mysql_version}.tar.gz URL: http://www.mysql.com/ Packager: MySQL Production Engineering Team -Vendor: MySQL AB +Vendor: %{mysql_vendor} Provides: msqlormysql MySQL-server mysql BuildRequires: ncurses-devel Obsoletes: mysql @@ -46,12 +81,9 @@ is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. MySQL is a trademark of MySQL AB. -The MySQL software has Dual Licensing, which means you can use the MySQL -software free of charge under the GNU General Public License -(http://www.gnu.org/licenses/). You can also purchase commercial MySQL -licenses from MySQL AB if you do not wish to be bound by the terms of -the GPL. See the chapter "Licensing and Support" in the manual for -further info. +Copyright (C) 2000-2007 MySQL AB +This software comes with ABSOLUTELY NO WARRANTY. This is free software, +and you are welcome to modify and redistribute it under the GPL license. The MySQL web site (http://www.mysql.com/) provides the latest news and information about the MySQL software. Also please see the @@ -71,12 +103,9 @@ is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. MySQL is a trademark of MySQL AB. -The MySQL software has Dual Licensing, which means you can use the MySQL -software free of charge under the GNU General Public License -(http://www.gnu.org/licenses/). You can also purchase commercial MySQL -licenses from MySQL AB if you do not wish to be bound by the terms of -the GPL. See the chapter "Licensing and Support" in the manual for -further info. +Copyright (C) 2000-2007 MySQL AB +This software comes with ABSOLUTELY NO WARRANTY. This is free software, +and you are welcome to modify and redistribute it under the GPL license. The MySQL web site (http://www.mysql.com/) provides the latest news and information about the MySQL software. Also please see the @@ -86,7 +115,7 @@ This package includes the MySQL server binary (incl. InnoDB) as well as related utilities to run and administrate a MySQL server. If you want to access and work with the database, you have to install -package "MySQL-client" as well! +the package "MySQL-client" as well! %package client Summary: MySQL - Client @@ -253,7 +282,7 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-$PATH}\" \ --includedir=%{_includedir} \ --mandir=%{_mandir} \ --enable-thread-safe-client \ - --with-readline ; + --with-readline ; \ # Add this for more debugging support # --with-debug # Add this for MyISAM RAID support: @@ -319,7 +348,10 @@ then cp -fp config.log "$MYSQL_MAXCONFLOG_DEST" fi -make test-bt +( cd mysql-test + perl ./mysql-test-run.pl --comment="max" --force --report-features + perl ./mysql-test-run.pl --comment="max+ps" --force --ps-protocol + true ) # Save mysqld-max ./libtool --mode=execute cp sql/mysqld sql/mysqld-max @@ -332,7 +364,7 @@ make test-bt (cd ndb; make install DESTDIR=$RBR) # Install embedded server library in the build root -install -m 644 libmysqld/libmysqld.a $RBR%{_libdir}/mysql/ +install -m644 libmysqld/libmysqld.a $RBR%{_libdir}/mysql/ # Include libgcc.a in the devel subpackage (BUG 4921) if expr "$CC" : ".*gcc.*" > /dev/null ; @@ -341,7 +373,7 @@ then if [ -f $libgcc ] then %define have_libgcc 1 - install -m 644 $libgcc $RBR%{_libdir}/mysql/libmygcc.a + install -m644 $libgcc $RBR%{_libdir}/mysql/libmygcc.a fi fi @@ -382,10 +414,8 @@ then cp -fp config.log "$MYSQL_CONFLOG_DEST" fi -( cd mysql-test - perl ./mysql-test-run.pl --force --report-features - perl ./mysql-test-run.pl --force --ps-protocol - true ) +echo "# standard" +make test-bt %install RBR=$RPM_BUILD_ROOT @@ -400,7 +430,6 @@ install -d $RBR%{_libdir} install -d $RBR%{_mandir} install -d $RBR%{_sbindir} - # Install all binaries stripped make install-strip DESTDIR=$RBR benchdir_root=%{_datadir} @@ -414,12 +443,12 @@ install -s -m755 $MBD/sql/mysqld-max $RBR%{_sbindir}/mysqld-max install -s -m755 $MBD/extra/perror.ndb $RBR%{_bindir}/perror # install symbol files ( for stack trace resolution) -install -m644 $MBD/sql/mysqld-max.sym $RBR%{_libdir}/mysql/mysqld-max.sym -install -m644 $MBD/sql/mysqld.sym $RBR%{_libdir}/mysql/mysqld.sym +install -m 644 $MBD/sql/mysqld-max.sym $RBR%{_libdir}/mysql/mysqld-max.sym +install -m 644 $MBD/sql/mysqld.sym $RBR%{_libdir}/mysql/mysqld.sym # Install logrotate and autostart -install -m644 $MBD/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql -install -m755 $MBD/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql +install -m 644 $MBD/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql +install -m 755 $MBD/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql # Create a symlink "rcmysql", pointing to the init.script. SuSE users # will appreciate that, as all services usually offer this. @@ -451,7 +480,7 @@ fi mysql_datadir=%{mysqldatadir} # Create data directory if needed -if test ! -d $mysql_datadir; then mkdir -m755 $mysql_datadir; fi +if test ! -d $mysql_datadir; then mkdir -m 755 $mysql_datadir; fi if test ! -d $mysql_datadir/mysql; then mkdir $mysql_datadir/mysql; fi if test ! -d $mysql_datadir/test; then mkdir $mysql_datadir/test; fi @@ -493,12 +522,11 @@ chmod -R og-rw $mysql_datadir/mysql # Allow safe_mysqld to start mysqld and print a message before we exit sleep 2 - %post ndb-storage mysql_clusterdir=/var/lib/mysql-cluster # Create cluster directory if needed -if test ! -d $mysql_clusterdir; then mkdir -m755 $mysql_clusterdir; fi +if test ! -d $mysql_clusterdir; then mkdir -m 755 $mysql_clusterdir; fi %post Max From 5aa9cd33c47f51f2bac66a50ebab2a91e6ebb4b7 Mon Sep 17 00:00:00 2001 From: "skozlov/ksm@mysql.com/virtop.(none)" <> Date: Sun, 2 Mar 2008 21:20:36 +0300 Subject: [PATCH 062/139] Bug#22438 --- mysql-test/r/mysqldump.result | 2 +- mysql-test/t/mysqldump.test | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/mysqldump.result b/mysql-test/r/mysqldump.result index ca0aa399a56..b484cf7c51d 100644 --- a/mysql-test/r/mysqldump.result +++ b/mysql-test/r/mysqldump.result @@ -3306,7 +3306,7 @@ grant RELOAD on *.* to mysqltest_1@localhost; mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227) mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227) grant REPLICATION CLIENT on *.* to mysqltest_1@localhost; -CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=537; +CHANGE MASTER TO MASTER_LOG_FILE='master-bin.000001', MASTER_LOG_POS=#; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; CREATE TABLE `t1` ( diff --git a/mysql-test/t/mysqldump.test b/mysql-test/t/mysqldump.test index 6dba0a590d0..88053ae95fb 100644 --- a/mysql-test/t/mysqldump.test +++ b/mysql-test/t/mysqldump.test @@ -1348,6 +1348,7 @@ grant RELOAD on *.* to mysqltest_1@localhost; grant REPLICATION CLIENT on *.* to mysqltest_1@localhost; # Execute mysqldump, should now succeed +--replace_regex /MASTER_LOG_POS=[0-9]+/MASTER_LOG_POS=#/ --exec $MYSQL_DUMP --compact --master-data -u mysqltest_1 test 2>&1 # Clean up From fc1ae077853ba61556ed143fa8eea33a7677d303 Mon Sep 17 00:00:00 2001 From: "gluh@mysql.com/mgluh.(none)" <> Date: Mon, 3 Mar 2008 15:02:34 +0400 Subject: [PATCH 063/139] test case fix --- mysql-test/r/symlink.result | 8 ++++---- mysql-test/t/symlink.test | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/mysql-test/r/symlink.result b/mysql-test/r/symlink.result index 8773d3ec6c0..689aa724935 100644 --- a/mysql-test/r/symlink.result +++ b/mysql-test/r/symlink.result @@ -147,16 +147,16 @@ drop table t1; deallocate prepare stmt; CREATE TABLE t1(a INT) DATA DIRECTORY='TEST_DIR/var/master-data/test'; -ERROR HY000: Incorrect arguments to DATA DIRECORY +Got one of the listed errors CREATE TABLE t1(a INT) DATA DIRECTORY='TEST_DIR/var/master-data/'; -ERROR HY000: Incorrect arguments to DATA DIRECORY +Got one of the listed errors CREATE TABLE t1(a INT) INDEX DIRECTORY='TEST_DIR/var/master-data'; -ERROR HY000: Incorrect arguments to INDEX DIRECORY +Got one of the listed errors CREATE TABLE t1(a INT) INDEX DIRECTORY='TEST_DIR/var/master-data_var'; -ERROR HY000: Can't create/write to file 'TEST_DIR/var/master-data_var/t1.MYI' (Errcode: 2) +Got one of the listed errors End of 4.1 tests SET SESSION keep_files_on_create = TRUE; CREATE TABLE t1 (a INT) ENGINE MYISAM; diff --git a/mysql-test/t/symlink.test b/mysql-test/t/symlink.test index 8878f9fc461..10d8f355c98 100644 --- a/mysql-test/t/symlink.test +++ b/mysql-test/t/symlink.test @@ -204,19 +204,19 @@ deallocate prepare stmt; # Bug#32167 another privilege bypass with DATA/INDEX DIRECORY # --replace_result $MYSQL_TEST_DIR TEST_DIR ---error 1210 +--error 1,1210 eval CREATE TABLE t1(a INT) DATA DIRECTORY='$MYSQL_TEST_DIR/var/master-data/test'; --replace_result $MYSQL_TEST_DIR TEST_DIR ---error 1210 +--error 1,1210 eval CREATE TABLE t1(a INT) DATA DIRECTORY='$MYSQL_TEST_DIR/var/master-data/'; --replace_result $MYSQL_TEST_DIR TEST_DIR ---error 1210 +--error 1,1210 eval CREATE TABLE t1(a INT) INDEX DIRECTORY='$MYSQL_TEST_DIR/var/master-data'; --replace_result $MYSQL_TEST_DIR TEST_DIR ---error 1 +--error 1,1210 eval CREATE TABLE t1(a INT) INDEX DIRECTORY='$MYSQL_TEST_DIR/var/master-data_var'; From bd53f960ddc628741081ee15635e8caf1d174b2a Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Mon, 3 Mar 2008 17:34:06 +0300 Subject: [PATCH 064/139] Fix for bug #31781: multi-table UPDATE with temp-pool enabled fails with errno 17 my_create() did not perform any checks for the case when a file is successfully created by a call to open(), but the call to my_register_filename() later fails because the number of open files has exceeded the my_open_files limit. This can happen on platforms which do not have getrlimit(), and hence we do not know the real limit for open files. In such a case an error was returned to a caller although the file has actually been created. Since callers assume my_create() to return an error only when it failed to create a file, they did not perform any cleanups, leaving an 'orphaned' file on the file system. Fixed by adding a check for the above case to my_create() and ensuring the newly created file is deleted before returning an error. Creating a deterministic test case in the test suite is impossible, because the exact steps required to reproduce the above situation depend on the platform and/or environment (OS per-user limits, queries executed by previous tests, startup parameters). The patch was manually tested on Windows using examples posted in the bug report. --- mysys/my_create.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/mysys/my_create.c b/mysys/my_create.c index d612926c1a5..c535ae73a0a 100644 --- a/mysys/my_create.c +++ b/mysys/my_create.c @@ -35,7 +35,7 @@ File my_create(const char *FileName, int CreateFlags, int access_flags, myf MyFlags) { - int fd; + int fd, rc; DBUG_ENTER("my_create"); DBUG_PRINT("my",("Name: '%s' CreateFlags: %d AccessFlags: %d MyFlags: %d", FileName, CreateFlags, access_flags, MyFlags)); @@ -60,6 +60,20 @@ File my_create(const char *FileName, int CreateFlags, int access_flags, fd = open(FileName, access_flags); #endif - DBUG_RETURN(my_register_filename(fd, FileName, FILE_BY_CREATE, - EE_CANTCREATEFILE, MyFlags)); + rc= my_register_filename(fd, FileName, FILE_BY_CREATE, + EE_CANTCREATEFILE, MyFlags); + /* + my_register_filename() may fail on some platforms even if the call to + *open() above succeeds. In this case, don't leave the stale file because + callers assume the file to not exist if my_create() fails, so they don't + do any cleanups. + */ + if (unlikely(fd >= 0 && rc < 0)) + { + int tmp= my_errno; + my_delete(FileName, MyFlags); + my_errno= tmp; + } + + DBUG_RETURN(rc); } /* my_create */ From b779af5503de5760904c793c731a8e26481f8cb3 Mon Sep 17 00:00:00 2001 From: "sergefp@mysql.com" <> Date: Mon, 3 Mar 2008 20:35:44 +0300 Subject: [PATCH 065/139] BUG#34945: "ref_or_null queries that are null_rejecting and have a null value crash mysql" - Apply Eric Bergen's patch: in join_read_always_key(), move ha_index_init() call to before the late NULLs filtering code. - Backport function comments from 6.0. --- mysql-test/r/null_key.result | 18 ++++++++++++++++++ mysql-test/t/null_key.test | 23 +++++++++++++++++++++++ sql/sql_select.cc | 29 ++++++++++++++++++++++++++--- 3 files changed, 67 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/null_key.result b/mysql-test/r/null_key.result index 8a440284c53..58c587fe588 100644 --- a/mysql-test/r/null_key.result +++ b/mysql-test/r/null_key.result @@ -429,3 +429,21 @@ Handler_read_prev 0 Handler_read_rnd 0 Handler_read_rnd_next 5 DROP TABLE t1,t2,t3,t4; +CREATE TABLE t1 ( +a int(11) default NULL, +b int(11) default NULL, +KEY a (a,b) +); +INSERT INTO t1 VALUES (0,10),(0,11),(0,12); +CREATE TABLE t2 ( +a int(11) default NULL, +b int(11) default NULL, +KEY a (a) +); +INSERT INTO t2 VALUES (3,NULL),(3,11),(3,12); +SELECT * FROM t2 inner join t1 WHERE ( t1.a = 0 OR t1.a IS NULL) AND t2.a = 3 AND t2.b = t1.b; +a b a b +3 11 0 11 +3 12 0 12 +drop table t1, t2; +End of 5.0 tests diff --git a/mysql-test/t/null_key.test b/mysql-test/t/null_key.test index e15aec01d2a..1400c643203 100644 --- a/mysql-test/t/null_key.test +++ b/mysql-test/t/null_key.test @@ -240,3 +240,26 @@ SHOW STATUS LIKE "handler_read%"; DROP TABLE t1,t2,t3,t4; # End of 4.1 tests + +# +# BUG#34945 "ref_or_null queries that are null_rejecting and have a null value crash mysql" +# +CREATE TABLE t1 ( + a int(11) default NULL, + b int(11) default NULL, + KEY a (a,b) +); +INSERT INTO t1 VALUES (0,10),(0,11),(0,12); + +CREATE TABLE t2 ( + a int(11) default NULL, + b int(11) default NULL, + KEY a (a) +); +INSERT INTO t2 VALUES (3,NULL),(3,11),(3,12); + +SELECT * FROM t2 inner join t1 WHERE ( t1.a = 0 OR t1.a IS NULL) AND t2.a = 3 AND t2.b = t1.b; + +drop table t1, t2; +-- echo End of 5.0 tests + diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 926b389f59f..6392f7c4299 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -11173,19 +11173,42 @@ join_read_key(JOIN_TAB *tab) } +/* + ref access method implementation: "read_first" function + + SYNOPSIS + join_read_always_key() + tab JOIN_TAB of the accessed table + + DESCRIPTION + This is "read_fist" function for the "ref" access method. + + The functon must leave the index initialized when it returns. + ref_or_null access implementation depends on that. + + RETURN + 0 - Ok + -1 - Row not found + 1 - Error +*/ + static int join_read_always_key(JOIN_TAB *tab) { int error; TABLE *table= tab->table; + /* Initialize the index first */ + if (!table->file->inited) + table->file->ha_index_init(tab->ref.key); + + /* Perform "Late NULLs Filtering" (see internals manual for explanations) */ for (uint i= 0 ; i < tab->ref.key_parts ; i++) { if ((tab->ref.null_rejecting & 1 << i) && tab->ref.items[i]->is_null()) return -1; - } - if (!table->file->inited) - table->file->ha_index_init(tab->ref.key); + } + if (cp_buffer_from_ref(tab->join->thd, &tab->ref)) return -1; if ((error=table->file->index_read(table->record[0], From 687d2131de8b90b188128130072ed65412625465 Mon Sep 17 00:00:00 2001 From: "joerg@trift2." <> Date: Mon, 3 Mar 2008 21:19:58 +0100 Subject: [PATCH 066/139] Raise the version number after cloning 5.0.58 --- configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index e65bbd51432..2ee722b4905 100644 --- a/configure.in +++ b/configure.in @@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! # remember to also change ndb version below and update version.c in ndb -AM_INIT_AUTOMAKE(mysql, 5.0.58) +AM_INIT_AUTOMAKE(mysql, 5.0.60) AM_CONFIG_HEADER([include/config.h:config.h.in]) PROTOCOL_VERSION=10 @@ -23,7 +23,7 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0 # ndb version NDB_VERSION_MAJOR=5 NDB_VERSION_MINOR=0 -NDB_VERSION_BUILD=58 +NDB_VERSION_BUILD=60 NDB_VERSION_STATUS="" # Set all version vars based on $VERSION. How do we do this more elegant ? From 640a4d59fdf13349e05bd14a78672fe12c8eac46 Mon Sep 17 00:00:00 2001 From: "bar@mysql.com/bar.myoffice.izhnet.ru" <> Date: Tue, 4 Mar 2008 16:13:08 +0400 Subject: [PATCH 067/139] Bug#23097 mysql can't insert korean on mysql prompt. Problem: libedit is a very pure-ASCII oriented library, and it is not aware of extended (0x80..0xFF) or even multi-byte characters. It considered such characters as non-printable and didn't allow to input them. Fix: make libedit think that all bytes >= 0x80 are printable. --- cmd-line-utils/libedit/el.h | 2 ++ cmd-line-utils/libedit/key.c | 4 ++-- cmd-line-utils/libedit/map.c | 2 +- cmd-line-utils/libedit/read.c | 2 +- cmd-line-utils/libedit/refresh.c | 6 +++--- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cmd-line-utils/libedit/el.h b/cmd-line-utils/libedit/el.h index c4b6cff2186..d9379d7c8aa 100644 --- a/cmd-line-utils/libedit/el.h +++ b/cmd-line-utils/libedit/el.h @@ -136,6 +136,8 @@ struct editline { protected int el_editmode(EditLine *, int, const char **); +#define el_isprint(x) ((unsigned char) (x) < 0x80 ? isprint(x) : 1) + #ifdef DEBUG #define EL_ABORT(a) do { \ fprintf(el->el_errfile, "%s, %d: ", \ diff --git a/cmd-line-utils/libedit/key.c b/cmd-line-utils/libedit/key.c index 090a2684e92..35fcf0651b2 100644 --- a/cmd-line-utils/libedit/key.c +++ b/cmd-line-utils/libedit/key.c @@ -618,7 +618,7 @@ key__decode_char(char *buf, int cnt, int ch) } else if (ch == '\\') { buf[cnt++] = '\\'; buf[cnt] = '\\'; - } else if (ch == ' ' || (isprint(ch) && !isspace(ch))) { + } else if (ch == ' ' || (el_isprint(ch) && !isspace(ch))) { buf[cnt] = ch; } else { buf[cnt++] = '\\'; @@ -660,7 +660,7 @@ key__decode_str(const char *str, char *buf, const char *sep) } else if (*p == '^' || *p == '\\') { *b++ = '\\'; *b++ = *p; - } else if (*p == ' ' || (isprint((unsigned char) *p) && + } else if (*p == ' ' || (el_isprint((unsigned char) *p) && !isspace((unsigned char) *p))) { *b++ = *p; } else { diff --git a/cmd-line-utils/libedit/map.c b/cmd-line-utils/libedit/map.c index d99c36ff665..6be9279b5e5 100644 --- a/cmd-line-utils/libedit/map.c +++ b/cmd-line-utils/libedit/map.c @@ -961,7 +961,7 @@ map_init_nls(EditLine *el) el_action_t *map = el->el_map.key; for (i = 0200; i <= 0377; i++) - if (isprint(i)) + if (el_isprint(i)) map[i] = ED_INSERT; } diff --git a/cmd-line-utils/libedit/read.c b/cmd-line-utils/libedit/read.c index 051f3e8e42e..51848c2038e 100644 --- a/cmd-line-utils/libedit/read.c +++ b/cmd-line-utils/libedit/read.c @@ -508,7 +508,7 @@ el_gets(EditLine *el, int *nread) el->el_chared.c_redo.pos < el->el_chared.c_redo.lim) { if (cmdnum == VI_DELETE_PREV_CHAR && el->el_chared.c_redo.pos != el->el_chared.c_redo.buf - && isprint((unsigned char)el->el_chared.c_redo.pos[-1])) + && el_isprint((unsigned char)el->el_chared.c_redo.pos[-1])) el->el_chared.c_redo.pos--; else *el->el_chared.c_redo.pos++ = ch; diff --git a/cmd-line-utils/libedit/refresh.c b/cmd-line-utils/libedit/refresh.c index b2833d215c5..46aca15ef08 100644 --- a/cmd-line-utils/libedit/refresh.c +++ b/cmd-line-utils/libedit/refresh.c @@ -88,7 +88,7 @@ private void re_addc(EditLine *el, int c) { - if (isprint(c)) { + if (el_isprint(c)) { re_putc(el, c, 1); return; } @@ -964,7 +964,7 @@ re_refresh_cursor(EditLine *el) h = 1; v++; } - } else if (!isprint((unsigned char) c)) { + } else if (!el_isprint((unsigned char) c)) { h += 3; if (h > th) { /* if overflow, compensate */ h = h - th; @@ -1057,7 +1057,7 @@ re_fastaddc(EditLine *el) char mc = (c == '\177') ? '?' : (c | 0100); re_fastputc(el, '^'); re_fastputc(el, mc); - } else if (isprint((unsigned char) c)) { /* normal char */ + } else if (el_isprint((unsigned char) c)) { /* normal char */ re_fastputc(el, c); } else { re_fastputc(el, '\\'); From 6511002d3099a60d72b151e6791eb459abc2f6b4 Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Tue, 4 Mar 2008 10:17:49 -0300 Subject: [PATCH 068/139] Bug#35009 Results of mysql_client_test are discarded upon failure It's impossible to determine which test inside mysql_client_test failed if the log file is overwritten by mysqltest when dumping the test case results. Redirect mysql_client_test output to a separate file. --- mysql-test/t/mysql_client_test.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/t/mysql_client_test.test b/mysql-test/t/mysql_client_test.test index 66a27abd61a..b46a127785a 100644 --- a/mysql-test/t/mysql_client_test.test +++ b/mysql-test/t/mysql_client_test.test @@ -8,8 +8,8 @@ # server or run mysql-test-run --debug mysql_client_test and check # var/log/mysql_client_test.trace ---exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test.log 2>&1 ---exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.log 2>&1 +--exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test.out 2>&1 +--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out 2>&1 # End of 4.1 tests echo ok; From 777a143833249b34afde69f48a1b3eeead4ad0e7 Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Tue, 4 Mar 2008 10:32:30 -0300 Subject: [PATCH 069/139] Use the same name for mysql_client_test output file in all branches. --- mysql-test/t/mysql_client_test.test | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/t/mysql_client_test.test b/mysql-test/t/mysql_client_test.test index b46a127785a..7667522feaf 100644 --- a/mysql-test/t/mysql_client_test.test +++ b/mysql-test/t/mysql_client_test.test @@ -8,8 +8,8 @@ # server or run mysql-test-run --debug mysql_client_test and check # var/log/mysql_client_test.trace ---exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test.out 2>&1 ---exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out 2>&1 +--exec echo "$MYSQL_CLIENT_TEST" > $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1 +--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1 # End of 4.1 tests echo ok; From 773855c8006b21dd9c5b1161130fbda57da6f697 Mon Sep 17 00:00:00 2001 From: "joerg@trift2." <> Date: Tue, 4 Mar 2008 22:00:53 +0100 Subject: [PATCH 070/139] scripts/CMakeLists.txt : Treat "mysql_upgrade_shell" the same way as all the other scripts. --- scripts/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index d7bcb8fd4e7..8aca7792e7c 100755 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -73,6 +73,9 @@ CONFIGURE_FILE(mysql_secure_installation.pl.in CONFIGURE_FILE(mysql_tableinfo.sh scripts/mysql_tableinfo.pl ESCAPE_QUOTES @ONLY) +CONFIGURE_FILE(mysql_upgrade_shell.sh + scripts/mysql_upgrade_shell.pl ESCAPE_QUOTES @ONLY) + CONFIGURE_FILE(mysqld_multi.sh scripts/mysqld_multi.pl ESCAPE_QUOTES @ONLY) From 80d89023eadf93ac66dac865d82f3ef3bbb40e66 Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Wed, 5 Mar 2008 16:02:33 +0300 Subject: [PATCH 071/139] Fix for bug #34889: mysql_client_test::test_mysql_insert_id test fails sporadically Under some circumstances, the mysql_insert_id() value after SELECT ... INSERT could return a wrong value. This could happen when the last SELECT ... INSERT did not involve an AUTO_INCREMENT column, but the value of mysql_insert_id() was changed by some previous statements. Fixed by checking the value of thd->insert_id_used in select_insert::send_eof() and returning 0 for mysql_insert_id() if it is not set. --- sql/sql_insert.cc | 3 ++- tests/mysql_client_test.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 14292f1cd9d..1d324872409 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -3006,7 +3006,8 @@ bool select_insert::send_eof() ((thd->client_capabilities & CLIENT_FOUND_ROWS) ? info.touched : info.updated); id= autoinc_value_of_first_inserted_row > 0 ? - autoinc_value_of_first_inserted_row : thd->last_insert_id; + autoinc_value_of_first_inserted_row : thd->insert_id_used ? + thd->last_insert_id : 0; ::send_ok(thd, (ulong) thd->row_count_func, id, buff); DBUG_RETURN(0); } diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 9cc2af25529..f8c554a06fd 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -15241,6 +15241,22 @@ static void test_mysql_insert_id() myquery(rc); res= mysql_insert_id(mysql); DIE_UNLESS(res == 0); + + /* + Test for bug #34889: mysql_client_test::test_mysql_insert_id test fails + sporadically + */ + rc= mysql_query(mysql, "create table t2 (f1 int not null primary key auto_increment, f2 varchar(255))"); + myquery(rc); + rc= mysql_query(mysql, "insert into t2 values (null,'b')"); + myquery(rc); + rc= mysql_query(mysql, "insert into t1 select 5,'c'"); + myquery(rc); + res= mysql_insert_id(mysql); + DIE_UNLESS(res == 0); + rc= mysql_query(mysql, "drop table t2"); + myquery(rc); + rc= mysql_query(mysql, "insert into t1 select null,'d'"); myquery(rc); res= mysql_insert_id(mysql); From 00160fe9e9ae3c0c1836dbc428fd33c90699df72 Mon Sep 17 00:00:00 2001 From: "joerg@trift2." <> Date: Wed, 5 Mar 2008 14:03:05 +0100 Subject: [PATCH 072/139] Include "mysql_upgrade_shell.pl" in a binary distribution on Windows. --- scripts/make_win_bin_dist | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/make_win_bin_dist b/scripts/make_win_bin_dist index 56510dc857b..2b2477c52cd 100755 --- a/scripts/make_win_bin_dist +++ b/scripts/make_win_bin_dist @@ -337,6 +337,7 @@ mysql_explain_log.pl \ mysql_install_db.pl \ mysql_secure_installation.pl \ mysql_tableinfo.pl \ +mysql_upgrade_shell.pl \ mysqld_multi.pl \ mysqldumpslow.pl \ mysqlhotcopy.pl \ From 86d9b5e9dc89ce9bd34d54c438f3046bafae7e4a Mon Sep 17 00:00:00 2001 From: "bar@mysql.com/bar.myoffice.izhnet.ru" <> Date: Thu, 6 Mar 2008 09:58:49 +0400 Subject: [PATCH 073/139] additional test fixes for bug 27580 --- mysql-test/r/ctype_cp1250_ch.result | 34 +++++++++++++++++++++++++++++ mysql-test/r/ctype_cp932.result | 19 ++++++++++++++++ mysql-test/r/ctype_ucs.result | 17 +++++++++++++++ 3 files changed, 70 insertions(+) diff --git a/mysql-test/r/ctype_cp1250_ch.result b/mysql-test/r/ctype_cp1250_ch.result index 3f22933e260..2ed22802805 100644 --- a/mysql-test/r/ctype_cp1250_ch.result +++ b/mysql-test/r/ctype_cp1250_ch.result @@ -57,6 +57,23 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +create table t1 (a set('a') not null); +insert into t1 values (),(); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +select cast(a as char(1)) from t1; +cast(a as char(1)) + + +select a sounds like a from t1; +a sounds like a +1 +1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 +drop table t1; set names utf8; create table t1 ( name varchar(10), @@ -133,6 +150,23 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +create table t1 (a set('a') not null); +insert into t1 values (),(); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +select cast(a as char(1)) from t1; +cast(a as char(1)) + + +select a sounds like a from t1; +a sounds like a +1 +1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 +drop table t1; set names utf8; create table t1 ( name varchar(10), diff --git a/mysql-test/r/ctype_cp932.result b/mysql-test/r/ctype_cp932.result index 8974a6a8594..63cd720746f 100755 --- a/mysql-test/r/ctype_cp932.result +++ b/mysql-test/r/ctype_cp932.result @@ -6,6 +6,8 @@ SET @test_character_set= 'cp932'; SET @test_collation= 'cp932_japanese_ci'; SET @safe_character_set_server= @@character_set_server; SET @safe_collation_server= @@collation_server; +SET @safe_character_set_client= @@character_set_client; +SET @safe_character_set_results= @@character_set_results; SET character_set_server= @test_character_set; SET collation_server= @test_collation; CREATE DATABASE d1; @@ -72,10 +74,27 @@ select 1 from t1 order by cast(a as char(1)); 1 1 drop table t1; +set names utf8; +create table t1 ( +name varchar(10), +level smallint unsigned); +show create table t1; +Table Create Table +t1 CREATE TABLE `t1` ( + `name` varchar(10) default NULL, + `level` smallint(5) unsigned default NULL +) ENGINE=MyISAM DEFAULT CHARSET=cp932 +insert into t1 values ('string',1); +select concat(name,space(level)), concat(name, repeat(' ',level)) from t1; +concat(name,space(level)) concat(name, repeat(' ',level)) +string string +drop table t1; DROP DATABASE d1; USE test; SET character_set_server= @safe_character_set_server; SET collation_server= @safe_collation_server; +SET character_set_client= @safe_character_set_client; +SET character_set_results= @safe_character_set_results; set names cp932; set character_set_database = cp932; CREATE TABLE t1(c1 CHAR(1)) DEFAULT CHARACTER SET = cp932; diff --git a/mysql-test/r/ctype_ucs.result b/mysql-test/r/ctype_ucs.result index a69c98590c6..f1a2da6c6bb 100644 --- a/mysql-test/r/ctype_ucs.result +++ b/mysql-test/r/ctype_ucs.result @@ -54,6 +54,23 @@ SELECT c1 as want1result from t1 where c1 like 'location%'; want1result location DROP TABLE t1; +create table t1 (a set('a') not null); +insert into t1 values (),(); +Warnings: +Warning 1364 Field 'a' doesn't have a default value +select cast(a as char(1)) from t1; +cast(a as char(1)) + + +select a sounds like a from t1; +a sounds like a +1 +1 +select 1 from t1 order by cast(a as char(1)); +1 +1 +1 +drop table t1; set names utf8; create table t1 ( name varchar(10), From 93a0992854bc9c1bfe8537972baa75653be2f65d Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Thu, 6 Mar 2008 09:16:53 -0300 Subject: [PATCH 074/139] Bug#35103 mysql_client_test::test_bug29948 causes sporadic failures Disable test case for bug 29948, which is causing sporadically failures in other tests inside mysql_client_test. --- tests/mysql_client_test.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 260e7b1e7a7..0deb37d25c3 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -15942,6 +15942,7 @@ static void test_bug27592() DBUG_VOID_RETURN; } +#if 0 static void test_bug29948() { @@ -16017,6 +16018,8 @@ static void test_bug29948() mysql_close(dbc); } +#endif + /** Bug#29306 Truncated data in MS Access with decimal (3,1) columns in a VIEW */ @@ -16543,7 +16546,7 @@ static struct my_tests_st my_tests[]= { { "test_bug28505", test_bug28505 }, { "test_bug28934", test_bug28934 }, { "test_bug27592", test_bug27592 }, - { "test_bug29948", test_bug29948 }, + /* { "test_bug29948", test_bug29948 }, Bug#35103 */ { "test_bug29306", test_bug29306 }, { "test_bug31669", test_bug31669 }, { "test_bug32265", test_bug32265 }, From 122fefc593ae374702f90a7220f676bfddae7391 Mon Sep 17 00:00:00 2001 From: "aelkin/andrei@mysql1000.(none)" <> Date: Thu, 6 Mar 2008 14:49:21 +0200 Subject: [PATCH 075/139] Bug#26622 MASTER_POS_WAIT does not work as documented MASTER_POS_WAIT return values are different than expected when the server is not a slave. It returns -1 instead of NULL. Fixed with correcting st_relay_log_info::wait_for_pos() to return the proper value in the case of rli info is not inited. --- mysql-test/r/rpl_master_pos_wait.result | 6 ++++++ mysql-test/t/rpl_master_pos_wait.test | 11 +++++++++++ sql/slave.cc | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/rpl_master_pos_wait.result b/mysql-test/r/rpl_master_pos_wait.result index f0f48de4e07..b831eb9b95a 100644 --- a/mysql-test/r/rpl_master_pos_wait.result +++ b/mysql-test/r/rpl_master_pos_wait.result @@ -16,3 +16,9 @@ select master_pos_wait('master-bin.999999',0); stop slave sql_thread; master_pos_wait('master-bin.999999',0) NULL +"*** must be empty ***" +show slave status; +"*** must be NULL ***" +select master_pos_wait('foo', 98); +master_pos_wait('foo', 98) +NULL diff --git a/mysql-test/t/rpl_master_pos_wait.test b/mysql-test/t/rpl_master_pos_wait.test index 893c8746efc..2f7b18ae04b 100644 --- a/mysql-test/t/rpl_master_pos_wait.test +++ b/mysql-test/t/rpl_master_pos_wait.test @@ -15,4 +15,15 @@ stop slave sql_thread; connection slave; reap; +# +# bug#26622 MASTER_POS_WAIT does not work as documented +# + +connection master; +echo "*** must be empty ***"; +query_vertical show slave status; + +echo "*** must be NULL ***"; +select master_pos_wait('foo', 98); + # End of 4.1 tests diff --git a/sql/slave.cc b/sql/slave.cc index 181ad4ed8cb..d4d0655f366 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -2685,7 +2685,7 @@ int st_relay_log_info::wait_for_pos(THD* thd, String* log_name, longlong timeout) { if (!inited) - return -1; + return -2; int event_count = 0; ulong init_abort_pos_wait; int error=0; From 4ca61aa36e5538edfd2cc2e21ca1be0964dda367 Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Thu, 6 Mar 2008 18:19:47 +0300 Subject: [PATCH 076/139] Fix for bug #34512: CAST( AVG( double ) AS DECIMAL ) returns wrong results Casting AVG() to DECIMAL led to incorrect results when the arguments had a non-DECIMAL type, because in this case Item_sum_avg::val_decimal() performed the division by the number of arguments twice. Fixed by changing Item_sum_avg::val_decimal() to not rely on Item_sum_sum::val_decimal(), i.e. calculate sum and divide using DECIMAL arithmetics for DECIMAL arguments, and utilize val_real() with subsequent conversion to DECIMAL otherwise. --- mysql-test/r/func_group.result | 6 ++++++ mysql-test/t/func_group.test | 10 ++++++++++ sql/item_sum.cc | 10 +++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/func_group.result b/mysql-test/r/func_group.result index 4785ca9919d..772e432355b 100644 --- a/mysql-test/r/func_group.result +++ b/mysql-test/r/func_group.result @@ -1419,4 +1419,10 @@ Note 1003 select (`test`.`t1`.`a` + 1) AS `y` from `test`.`t1` group by (`test`. DROP VIEW v1; DROP TABLE t1; SET SQL_MODE=DEFAULT; +CREATE TABLE t1(a DOUBLE); +INSERT INTO t1 VALUES (10), (20); +SELECT AVG(a), CAST(AVG(a) AS DECIMAL) FROM t1; +AVG(a) CAST(AVG(a) AS DECIMAL) +15 15 +DROP TABLE t1; End of 5.0 tests diff --git a/mysql-test/t/func_group.test b/mysql-test/t/func_group.test index 75a380c733f..dbe6d3113d5 100644 --- a/mysql-test/t/func_group.test +++ b/mysql-test/t/func_group.test @@ -916,5 +916,15 @@ DROP VIEW v1; DROP TABLE t1; SET SQL_MODE=DEFAULT; +# +# Bug #34512: CAST( AVG( double ) AS DECIMAL ) returns wrong results +# + +CREATE TABLE t1(a DOUBLE); +INSERT INTO t1 VALUES (10), (20); +SELECT AVG(a), CAST(AVG(a) AS DECIMAL) FROM t1; + +DROP TABLE t1; + ### --echo End of 5.0 tests diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 3d6d46ab3f4..f583fc7f988 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -1206,7 +1206,15 @@ my_decimal *Item_sum_avg::val_decimal(my_decimal *val) null_value=1; return NULL; } - sum_dec= Item_sum_sum::val_decimal(&sum_buff); + + /* + For non-DECIMAL hybrid_type the division will be done in + Item_sum_avg::val_real(). + */ + if (hybrid_type != DECIMAL_RESULT) + return val_decimal_from_real(val); + + sum_dec= dec_buffs + curr_dec_buff; int2my_decimal(E_DEC_FATAL_ERROR, count, 0, &cnt); my_decimal_div(E_DEC_FATAL_ERROR, val, sum_dec, &cnt, prec_increment); return val; From 11cd97ed6b3cfd59310aaf79915cfeea1454886b Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@magare.gmz" <> Date: Fri, 7 Mar 2008 11:15:49 +0200 Subject: [PATCH 077/139] Bug #34909: mysqldump returns a 0 status on error when using --master-data No error code was returned by mysqldump if it detects that binary logging is not enabled on the server. Fixed by returning error code. --- client/mysqldump.c | 1 + mysql-test/r/mysqldump-no-binlog.result | 1 + mysql-test/t/mysqldump-no-binlog-master.opt | 1 + mysql-test/t/mysqldump-no-binlog.test | 6 ++++++ 4 files changed, 9 insertions(+) create mode 100644 mysql-test/r/mysqldump-no-binlog.result create mode 100644 mysql-test/t/mysqldump-no-binlog-master.opt create mode 100644 mysql-test/t/mysqldump-no-binlog.test diff --git a/client/mysqldump.c b/client/mysqldump.c index 980013d539a..e8129a6fd73 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -3285,6 +3285,7 @@ static int do_show_master_status(MYSQL *mysql_con) my_printf_error(0, "Error: Binlogging on server not active", MYF(0)); mysql_free_result(master); + maybe_exit(EX_MYSQLERR); return 1; } mysql_free_result(master); diff --git a/mysql-test/r/mysqldump-no-binlog.result b/mysql-test/r/mysqldump-no-binlog.result new file mode 100644 index 00000000000..78bc19b7cba --- /dev/null +++ b/mysql-test/r/mysqldump-no-binlog.result @@ -0,0 +1 @@ +mysqldump: Error: Binlogging on server not active diff --git a/mysql-test/t/mysqldump-no-binlog-master.opt b/mysql-test/t/mysqldump-no-binlog-master.opt new file mode 100644 index 00000000000..789275fa25e --- /dev/null +++ b/mysql-test/t/mysqldump-no-binlog-master.opt @@ -0,0 +1 @@ +--skip-log-bin diff --git a/mysql-test/t/mysqldump-no-binlog.test b/mysql-test/t/mysqldump-no-binlog.test new file mode 100644 index 00000000000..434b2931792 --- /dev/null +++ b/mysql-test/t/mysqldump-no-binlog.test @@ -0,0 +1,6 @@ +# Embedded server doesn't support external clients +--source include/not_embedded.inc + +--replace_regex /MASTER_LOG_POS=[0-9]+/XX/ +--error 2 +--exec $MYSQL_DUMP --compact --master-data=2 test 2>&1 From 30091e23f94fdee9e83b616d2dc56cdcc69b18d3 Mon Sep 17 00:00:00 2001 From: "mleich@five.local.lan" <> Date: Fri, 7 Mar 2008 17:33:07 +0100 Subject: [PATCH 078/139] WL#4203 Reorganize and fix the data dictionary tests of testsuite funcs_1 1. Fix the following bugs Bug#30440 "datadict" tests (all engines) fail: Character sets depend on configuration Solution: Test variants charset_collation_* adjusted to different builds Bug#32603 "datadict" tests (all engines) fail in "community" tree: "PROFILING" table Solution: Excluding "PROFILING" table from queries Bug#33654 "slow log" is missing a line Solution: Unify the content of the fields TABLES.TABLE_ROWS and STATISTICS.CARDINALITY within result sets Bug#34532 Some funcs_1 tests do not clean up at end of testing Solution: DROP objects/reset global server variables modified during testing + let tests missing implementation end before loading of tables Bug#31421 funcs_1: ndb__datadict fails, discrepancy between scripts and expected results Solution: Cut __datadict tests into smaller tests + generate new results. Bug#33599 INFORMATION_SCHEMA.STATISTICS got a new column INDEX_COMMENT: tests fail (2) Generation of new results during post merge fix Bug#33600 CHARACTER_OCTET_LENGTH is now CHARACTER_MAXIMUM_LENGTH * 4 Generation of new results during post merge fix Bug#33631 Platform-specific replace of CHARACTER_MAXIMUM_LENGTH broken by 4-byte encoding Generation of new results during post merge fix + removal of platform-specific replace routine (no more needed) 2. Restructure the tests - Test not more than one INFORMATION_SCHEMA view per testscript - Separate tests of I_S view layout+functionality from content related to the all time existing databases "information_schema", "mysql" and "test" - Avoid storage engine related variants of tests which are not sensible to storage engines at all. 3. Reimplement or add some subtests + cleanup There is a some probability that even the reviewed changeset - does not fix all bugs from above or - contains new bugs which show up on some platforms <> Linux or on one of the various build types 4. The changeset contains fixes according to - one code review - minor bugs within testing code found after code review (accepted by reviewer) - problems found during tests with 5.0.56 in build environment --- mysql-test/suite/funcs_1/README.txt | 170 +- .../suite/funcs_1/datadict/basics_mixed1.inc | 53 + .../suite/funcs_1/datadict/basics_mixed2.inc | 55 + .../suite/funcs_1/datadict/basics_mixed3.inc | 42 + .../funcs_1/datadict/charset_collation.inc | 122 + mysql-test/suite/funcs_1/datadict/columns.inc | 87 + .../suite/funcs_1/datadict/datadict.pre | 54 + .../funcs_1/datadict/datadict_master.inc | 3955 ----- .../funcs_1/datadict/datadict_show_schema.inc | 57 - .../datadict/datadict_show_table_design.inc | 28 - .../funcs_1/datadict/datadict_tables.inc | 62 - .../datadict/datadict_tables_error.inc | 33 - .../datadict/datadict_tables_error_1.inc | 80 - .../datadict/datadict_tables_error_1044.inc | 51 - .../datadict/datadict_tables_error_1049.inc | 49 - .../datadict/datadict_tables_error_1051.inc | 49 - .../datadict/datadict_tables_error_1146.inc | 49 - .../datadict/datadict_tables_error_1288.inc | 49 - .../suite/funcs_1/datadict/is_table_query.inc | 42 + .../suite/funcs_1/datadict/statistics.inc | 55 + .../funcs_1/datadict/table_constraints.inc | 45 + mysql-test/suite/funcs_1/datadict/tables1.inc | 39 + mysql-test/suite/funcs_1/datadict/tables2.inc | 47 + mysql-test/suite/funcs_1/include/cleanup.inc | 21 + .../suite/funcs_1/include/create_database.inc | 6 - .../include/create_user_lowest_priv.inc | 10 - .../funcs_1/include/create_user_no_super.inc | 11 - .../suite/funcs_1/include/memory_tb1.inc | 3 - .../suite/funcs_1/include/memory_tb2.inc | 3 - .../suite/funcs_1/include/memory_tb3.inc | 3 - .../suite/funcs_1/include/memory_tb4.inc | 3 - mysql-test/suite/funcs_1/include/sp_tb.inc | 4 - .../funcs_1/r/charset_collation_1.result | 309 + .../funcs_1/r/charset_collation_2.result | 311 + .../funcs_1/r/charset_collation_3.result | 309 + .../r/datadict_help_tables_build.result | 22 - .../funcs_1/r/datadict_help_tables_dev.result | 18 - .../suite/funcs_1/r/innodb__datadict.result | 12916 --------------- .../suite/funcs_1/r/innodb__load.result | 1 - .../suite/funcs_1/r/innodb_bitdata.result | 64 - .../suite/funcs_1/r/innodb_cursors.result | 78 - .../funcs_1/r/innodb_storedproc_02.result | 2 - .../funcs_1/r/innodb_storedproc_03.result | 2 - .../funcs_1/r/innodb_storedproc_06.result | 2 - .../funcs_1/r/innodb_storedproc_07.result | 2 - .../funcs_1/r/innodb_storedproc_08.result | 2 - .../funcs_1/r/innodb_storedproc_10.result | 2 - .../suite/funcs_1/r/innodb_trig_0102.result | 2 +- .../suite/funcs_1/r/innodb_trig_03.result | 2 +- .../suite/funcs_1/r/innodb_trig_0407.result | 2 +- .../suite/funcs_1/r/innodb_trig_08.result | 2 +- .../suite/funcs_1/r/innodb_trig_09.result | 2 +- .../funcs_1/r/innodb_trig_1011ext.result | 2 +- .../suite/funcs_1/r/innodb_trig_frkey.result | 2 +- .../suite/funcs_1/r/innodb_views.result | 4 +- .../suite/funcs_1/r/is_basics_mixed.result | 602 + .../suite/funcs_1/r/is_character_sets.result | 78 + ...llation_character_set_applicability.result | 76 + .../suite/funcs_1/r/is_collations.result | 90 + .../funcs_1/r/is_column_privileges.result | 370 + .../is_column_privileges_is_mysql_test.result | 37 + mysql-test/suite/funcs_1/r/is_columns.result | 486 + .../suite/funcs_1/r/is_columns_innodb.result | 1130 ++ .../suite/funcs_1/r/is_columns_is.result | 380 + .../suite/funcs_1/r/is_columns_memory.result | 1076 ++ .../suite/funcs_1/r/is_columns_myisam.result | 1207 ++ .../suite/funcs_1/r/is_columns_mysql.result | 361 + .../suite/funcs_1/r/is_columns_ndb.result | 223 + .../funcs_1/r/is_key_column_usage.result | 370 + mysql-test/suite/funcs_1/r/is_routines.result | 605 + .../funcs_1/r/is_schema_privileges.result | 304 + .../is_schema_privileges_is_mysql_test.result | 51 + mysql-test/suite/funcs_1/r/is_schemata.result | 181 + .../r/is_schemata_is_mysql_test.result | 42 + .../suite/funcs_1/r/is_statistics.result | 352 + .../suite/funcs_1/r/is_statistics_is.result | 17 + .../funcs_1/r/is_statistics_mysql.result | 60 + .../funcs_1/r/is_table_constraints.result | 310 + .../funcs_1/r/is_table_constraints_is.result | 17 + .../r/is_table_constraints_mysql.result | 37 + .../funcs_1/r/is_table_privileges.result | 332 + mysql-test/suite/funcs_1/r/is_tables.result | 419 + .../suite/funcs_1/r/is_tables_innodb.result | 1063 ++ .../suite/funcs_1/r/is_tables_is.result | 771 + .../suite/funcs_1/r/is_tables_memory.result | 1052 ++ .../suite/funcs_1/r/is_tables_myisam.result | 1092 ++ .../suite/funcs_1/r/is_tables_mysql.result | 424 + .../suite/funcs_1/r/is_tables_ndb.result | 560 + mysql-test/suite/funcs_1/r/is_triggers.result | 212 + .../suite/funcs_1/r/is_user_privileges.result | 400 + mysql-test/suite/funcs_1/r/is_views.result | 238 + .../suite/funcs_1/r/memory__datadict.result | 12814 --------------- .../suite/funcs_1/r/memory__load.result | 1 - .../suite/funcs_1/r/memory_bitdata.result | 65 - .../suite/funcs_1/r/memory_cursors.result | 75 - .../funcs_1/r/memory_storedproc_02.result | 2 - .../funcs_1/r/memory_storedproc_03.result | 2 - .../funcs_1/r/memory_storedproc_06.result | 2 - .../funcs_1/r/memory_storedproc_07.result | 2 - .../funcs_1/r/memory_storedproc_08.result | 2 - .../funcs_1/r/memory_storedproc_10.result | 2 - .../suite/funcs_1/r/memory_trig_0102.result | 4 +- .../suite/funcs_1/r/memory_trig_03.result | 4 +- .../suite/funcs_1/r/memory_trig_0407.result | 4 +- .../suite/funcs_1/r/memory_trig_08.result | 4 +- .../suite/funcs_1/r/memory_trig_09.result | 4 +- .../funcs_1/r/memory_trig_1011ext.result | 4 +- .../suite/funcs_1/r/memory_views.result | 8 +- .../suite/funcs_1/r/myisam__datadict.result | 13068 ---------------- .../suite/funcs_1/r/myisam__load.result | 1 - .../suite/funcs_1/r/myisam_bitdata.result | 73 - .../suite/funcs_1/r/myisam_cursors.result | 81 - .../funcs_1/r/myisam_storedproc_02.result | 2 - .../funcs_1/r/myisam_storedproc_03.result | 2 - .../funcs_1/r/myisam_storedproc_06.result | 2 - .../funcs_1/r/myisam_storedproc_07.result | 2 - .../funcs_1/r/myisam_storedproc_08.result | 2 - .../funcs_1/r/myisam_storedproc_10.result | 2 - .../suite/funcs_1/r/myisam_trig_0102.result | 2 +- .../suite/funcs_1/r/myisam_trig_03.result | 2 +- .../suite/funcs_1/r/myisam_trig_0407.result | 2 +- .../suite/funcs_1/r/myisam_trig_08.result | 2 +- .../suite/funcs_1/r/myisam_trig_09.result | 2 +- .../funcs_1/r/myisam_trig_1011ext.result | 2 +- .../suite/funcs_1/r/myisam_views.result | 4 +- .../suite/funcs_1/storedproc/load_sp_tb.inc | 3 - .../funcs_1/storedproc/storedproc_02.inc | 0 .../funcs_1/storedproc/storedproc_03.inc | 0 .../funcs_1/storedproc/storedproc_06.inc | 0 .../funcs_1/storedproc/storedproc_07.inc | 0 .../funcs_1/storedproc/storedproc_08.inc | 0 .../funcs_1/storedproc/storedproc_08_show.inc | 0 .../funcs_1/storedproc/storedproc_10.inc | 0 .../suite/funcs_1/t/charset_collation_1.test | 30 + .../suite/funcs_1/t/charset_collation_2.test | 24 + .../suite/funcs_1/t/charset_collation_3.test | 24 + .../funcs_1/t/datadict_help_tables_build.test | 73 - .../funcs_1/t/datadict_help_tables_dev.test | 27 - .../suite/funcs_1/t/innodb__datadict.test | 11 - mysql-test/suite/funcs_1/t/innodb__load.test | 47 - .../suite/funcs_1/t/innodb_bitdata.test | 29 +- .../suite/funcs_1/t/innodb_cursors.test | 27 +- .../suite/funcs_1/t/innodb_storedproc_02.test | 0 .../suite/funcs_1/t/innodb_storedproc_03.test | 0 .../suite/funcs_1/t/innodb_storedproc_06.test | 0 .../suite/funcs_1/t/innodb_storedproc_07.test | 0 .../suite/funcs_1/t/innodb_storedproc_08.test | 0 .../suite/funcs_1/t/innodb_storedproc_10.test | 0 .../suite/funcs_1/t/innodb_trig_0102.test | 26 +- .../suite/funcs_1/t/innodb_trig_03.test | 26 +- .../suite/funcs_1/t/innodb_trig_0407.test | 26 +- .../suite/funcs_1/t/innodb_trig_08.test | 26 +- .../suite/funcs_1/t/innodb_trig_09.test | 26 +- .../suite/funcs_1/t/innodb_trig_1011ext.test | 26 +- .../suite/funcs_1/t/innodb_trig_frkey.test | 26 +- mysql-test/suite/funcs_1/t/innodb_views.test | 46 +- .../suite/funcs_1/t/is_basics_mixed.test | 503 + .../suite/funcs_1/t/is_character_sets.test | 107 + ...collation_character_set_applicability.test | 108 + mysql-test/suite/funcs_1/t/is_collations.test | 114 + .../suite/funcs_1/t/is_column_privileges.test | 351 + .../t/is_column_privileges_is_mysql_test.test | 58 + mysql-test/suite/funcs_1/t/is_columns.test | 444 + .../suite/funcs_1/t/is_columns_innodb.test | 21 + mysql-test/suite/funcs_1/t/is_columns_is.test | 19 + .../suite/funcs_1/t/is_columns_memory.test | 21 + .../suite/funcs_1/t/is_columns_myisam.test | 21 + .../suite/funcs_1/t/is_columns_mysql.test | 13 + .../suite/funcs_1/t/is_columns_ndb.test | 33 + .../suite/funcs_1/t/is_key_column_usage.test | 344 + mysql-test/suite/funcs_1/t/is_routines.test | 471 + .../suite/funcs_1/t/is_schema_privileges.test | 336 + .../t/is_schema_privileges_is_mysql_test.test | 58 + mysql-test/suite/funcs_1/t/is_schemata.test | 246 + .../funcs_1/t/is_schemata_is_mysql_test.test | 58 + mysql-test/suite/funcs_1/t/is_statistics.test | 379 + .../suite/funcs_1/t/is_statistics_is.test | 14 + .../suite/funcs_1/t/is_statistics_mysql.test | 15 + .../suite/funcs_1/t/is_table_constraints.test | 331 + .../funcs_1/t/is_table_constraints_is.test | 14 + .../funcs_1/t/is_table_constraints_mysql.test | 14 + .../suite/funcs_1/t/is_table_privileges.test | 349 + mysql-test/suite/funcs_1/t/is_tables.test | 474 + .../suite/funcs_1/t/is_tables_innodb.test | 22 + mysql-test/suite/funcs_1/t/is_tables_is.test | 18 + .../suite/funcs_1/t/is_tables_memory.test | 22 + .../suite/funcs_1/t/is_tables_myisam.test | 22 + .../suite/funcs_1/t/is_tables_mysql.test | 14 + mysql-test/suite/funcs_1/t/is_tables_ndb.test | 34 + mysql-test/suite/funcs_1/t/is_triggers.test | 253 + .../suite/funcs_1/t/is_user_privileges.test | 347 + mysql-test/suite/funcs_1/t/is_views.test | 305 + .../suite/funcs_1/t/memory__datadict.test | 9 - mysql-test/suite/funcs_1/t/memory__load.test | 45 - .../suite/funcs_1/t/memory_bitdata.test | 28 +- .../suite/funcs_1/t/memory_cursors.test | 27 +- .../suite/funcs_1/t/memory_storedproc_02.test | 0 .../suite/funcs_1/t/memory_storedproc_03.test | 0 .../suite/funcs_1/t/memory_storedproc_06.test | 0 .../suite/funcs_1/t/memory_storedproc_07.test | 0 .../suite/funcs_1/t/memory_storedproc_08.test | 0 .../suite/funcs_1/t/memory_storedproc_10.test | 0 .../suite/funcs_1/t/memory_trig_0102.test | 26 +- .../suite/funcs_1/t/memory_trig_03.test | 26 +- .../suite/funcs_1/t/memory_trig_0407.test | 26 +- .../suite/funcs_1/t/memory_trig_08.test | 26 +- .../suite/funcs_1/t/memory_trig_09.test | 26 +- .../suite/funcs_1/t/memory_trig_1011ext.test | 26 +- mysql-test/suite/funcs_1/t/memory_views.test | 46 +- .../suite/funcs_1/t/myisam__datadict.test | 10 - mysql-test/suite/funcs_1/t/myisam__load.test | 45 - .../suite/funcs_1/t/myisam_bitdata.test | 28 +- .../suite/funcs_1/t/myisam_cursors.test | 27 +- .../suite/funcs_1/t/myisam_storedproc_02.test | 0 .../suite/funcs_1/t/myisam_storedproc_03.test | 0 .../suite/funcs_1/t/myisam_storedproc_06.test | 0 .../suite/funcs_1/t/myisam_storedproc_07.test | 0 .../suite/funcs_1/t/myisam_storedproc_08.test | 0 .../suite/funcs_1/t/myisam_storedproc_10.test | 0 .../suite/funcs_1/t/myisam_trig_0102.test | 26 +- .../suite/funcs_1/t/myisam_trig_03.test | 26 +- .../suite/funcs_1/t/myisam_trig_0407.test | 26 +- .../suite/funcs_1/t/myisam_trig_08.test | 26 +- .../suite/funcs_1/t/myisam_trig_09.test | 26 +- .../suite/funcs_1/t/myisam_trig_1011ext.test | 17 +- mysql-test/suite/funcs_1/t/myisam_views.test | 45 +- 226 files changed, 22861 insertions(+), 44898 deletions(-) create mode 100644 mysql-test/suite/funcs_1/datadict/basics_mixed1.inc create mode 100644 mysql-test/suite/funcs_1/datadict/basics_mixed2.inc create mode 100644 mysql-test/suite/funcs_1/datadict/basics_mixed3.inc create mode 100644 mysql-test/suite/funcs_1/datadict/charset_collation.inc create mode 100644 mysql-test/suite/funcs_1/datadict/columns.inc create mode 100644 mysql-test/suite/funcs_1/datadict/datadict.pre delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_master.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_tables.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc delete mode 100755 mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc delete mode 100644 mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc create mode 100644 mysql-test/suite/funcs_1/datadict/is_table_query.inc create mode 100644 mysql-test/suite/funcs_1/datadict/statistics.inc create mode 100644 mysql-test/suite/funcs_1/datadict/table_constraints.inc create mode 100644 mysql-test/suite/funcs_1/datadict/tables1.inc create mode 100644 mysql-test/suite/funcs_1/datadict/tables2.inc create mode 100644 mysql-test/suite/funcs_1/include/cleanup.inc delete mode 100644 mysql-test/suite/funcs_1/include/create_database.inc delete mode 100644 mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc delete mode 100644 mysql-test/suite/funcs_1/include/create_user_no_super.inc create mode 100644 mysql-test/suite/funcs_1/r/charset_collation_1.result create mode 100644 mysql-test/suite/funcs_1/r/charset_collation_2.result create mode 100644 mysql-test/suite/funcs_1/r/charset_collation_3.result delete mode 100644 mysql-test/suite/funcs_1/r/datadict_help_tables_build.result delete mode 100644 mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result delete mode 100644 mysql-test/suite/funcs_1/r/innodb__datadict.result delete mode 100644 mysql-test/suite/funcs_1/r/innodb__load.result create mode 100644 mysql-test/suite/funcs_1/r/is_basics_mixed.result create mode 100644 mysql-test/suite/funcs_1/r/is_character_sets.result create mode 100644 mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result create mode 100644 mysql-test/suite/funcs_1/r/is_collations.result create mode 100644 mysql-test/suite/funcs_1/r/is_column_privileges.result create mode 100644 mysql-test/suite/funcs_1/r/is_column_privileges_is_mysql_test.result create mode 100644 mysql-test/suite/funcs_1/r/is_columns.result create mode 100644 mysql-test/suite/funcs_1/r/is_columns_innodb.result create mode 100644 mysql-test/suite/funcs_1/r/is_columns_is.result create mode 100644 mysql-test/suite/funcs_1/r/is_columns_memory.result create mode 100644 mysql-test/suite/funcs_1/r/is_columns_myisam.result create mode 100644 mysql-test/suite/funcs_1/r/is_columns_mysql.result create mode 100644 mysql-test/suite/funcs_1/r/is_columns_ndb.result create mode 100644 mysql-test/suite/funcs_1/r/is_key_column_usage.result create mode 100644 mysql-test/suite/funcs_1/r/is_routines.result create mode 100644 mysql-test/suite/funcs_1/r/is_schema_privileges.result create mode 100644 mysql-test/suite/funcs_1/r/is_schema_privileges_is_mysql_test.result create mode 100644 mysql-test/suite/funcs_1/r/is_schemata.result create mode 100644 mysql-test/suite/funcs_1/r/is_schemata_is_mysql_test.result create mode 100644 mysql-test/suite/funcs_1/r/is_statistics.result create mode 100644 mysql-test/suite/funcs_1/r/is_statistics_is.result create mode 100644 mysql-test/suite/funcs_1/r/is_statistics_mysql.result create mode 100644 mysql-test/suite/funcs_1/r/is_table_constraints.result create mode 100644 mysql-test/suite/funcs_1/r/is_table_constraints_is.result create mode 100644 mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result create mode 100644 mysql-test/suite/funcs_1/r/is_table_privileges.result create mode 100644 mysql-test/suite/funcs_1/r/is_tables.result create mode 100644 mysql-test/suite/funcs_1/r/is_tables_innodb.result create mode 100644 mysql-test/suite/funcs_1/r/is_tables_is.result create mode 100644 mysql-test/suite/funcs_1/r/is_tables_memory.result create mode 100644 mysql-test/suite/funcs_1/r/is_tables_myisam.result create mode 100644 mysql-test/suite/funcs_1/r/is_tables_mysql.result create mode 100644 mysql-test/suite/funcs_1/r/is_tables_ndb.result create mode 100644 mysql-test/suite/funcs_1/r/is_triggers.result create mode 100644 mysql-test/suite/funcs_1/r/is_user_privileges.result create mode 100644 mysql-test/suite/funcs_1/r/is_views.result delete mode 100644 mysql-test/suite/funcs_1/r/memory__datadict.result delete mode 100644 mysql-test/suite/funcs_1/r/memory__load.result delete mode 100644 mysql-test/suite/funcs_1/r/myisam__datadict.result delete mode 100644 mysql-test/suite/funcs_1/r/myisam__load.result mode change 100755 => 100644 mysql-test/suite/funcs_1/storedproc/storedproc_02.inc mode change 100755 => 100644 mysql-test/suite/funcs_1/storedproc/storedproc_03.inc mode change 100755 => 100644 mysql-test/suite/funcs_1/storedproc/storedproc_06.inc mode change 100755 => 100644 mysql-test/suite/funcs_1/storedproc/storedproc_07.inc mode change 100755 => 100644 mysql-test/suite/funcs_1/storedproc/storedproc_08.inc mode change 100755 => 100644 mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc mode change 100755 => 100644 mysql-test/suite/funcs_1/storedproc/storedproc_10.inc create mode 100644 mysql-test/suite/funcs_1/t/charset_collation_1.test create mode 100644 mysql-test/suite/funcs_1/t/charset_collation_2.test create mode 100644 mysql-test/suite/funcs_1/t/charset_collation_3.test delete mode 100644 mysql-test/suite/funcs_1/t/datadict_help_tables_build.test delete mode 100644 mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test delete mode 100644 mysql-test/suite/funcs_1/t/innodb__datadict.test delete mode 100644 mysql-test/suite/funcs_1/t/innodb__load.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/innodb_storedproc_02.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/innodb_storedproc_03.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/innodb_storedproc_06.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/innodb_storedproc_07.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/innodb_storedproc_08.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/innodb_storedproc_10.test create mode 100644 mysql-test/suite/funcs_1/t/is_basics_mixed.test create mode 100644 mysql-test/suite/funcs_1/t/is_character_sets.test create mode 100644 mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test create mode 100644 mysql-test/suite/funcs_1/t/is_collations.test create mode 100644 mysql-test/suite/funcs_1/t/is_column_privileges.test create mode 100644 mysql-test/suite/funcs_1/t/is_column_privileges_is_mysql_test.test create mode 100644 mysql-test/suite/funcs_1/t/is_columns.test create mode 100644 mysql-test/suite/funcs_1/t/is_columns_innodb.test create mode 100644 mysql-test/suite/funcs_1/t/is_columns_is.test create mode 100644 mysql-test/suite/funcs_1/t/is_columns_memory.test create mode 100644 mysql-test/suite/funcs_1/t/is_columns_myisam.test create mode 100644 mysql-test/suite/funcs_1/t/is_columns_mysql.test create mode 100644 mysql-test/suite/funcs_1/t/is_columns_ndb.test create mode 100644 mysql-test/suite/funcs_1/t/is_key_column_usage.test create mode 100644 mysql-test/suite/funcs_1/t/is_routines.test create mode 100644 mysql-test/suite/funcs_1/t/is_schema_privileges.test create mode 100644 mysql-test/suite/funcs_1/t/is_schema_privileges_is_mysql_test.test create mode 100644 mysql-test/suite/funcs_1/t/is_schemata.test create mode 100644 mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test create mode 100644 mysql-test/suite/funcs_1/t/is_statistics.test create mode 100644 mysql-test/suite/funcs_1/t/is_statistics_is.test create mode 100644 mysql-test/suite/funcs_1/t/is_statistics_mysql.test create mode 100644 mysql-test/suite/funcs_1/t/is_table_constraints.test create mode 100644 mysql-test/suite/funcs_1/t/is_table_constraints_is.test create mode 100644 mysql-test/suite/funcs_1/t/is_table_constraints_mysql.test create mode 100644 mysql-test/suite/funcs_1/t/is_table_privileges.test create mode 100644 mysql-test/suite/funcs_1/t/is_tables.test create mode 100644 mysql-test/suite/funcs_1/t/is_tables_innodb.test create mode 100644 mysql-test/suite/funcs_1/t/is_tables_is.test create mode 100644 mysql-test/suite/funcs_1/t/is_tables_memory.test create mode 100644 mysql-test/suite/funcs_1/t/is_tables_myisam.test create mode 100644 mysql-test/suite/funcs_1/t/is_tables_mysql.test create mode 100644 mysql-test/suite/funcs_1/t/is_tables_ndb.test create mode 100644 mysql-test/suite/funcs_1/t/is_triggers.test create mode 100644 mysql-test/suite/funcs_1/t/is_user_privileges.test create mode 100644 mysql-test/suite/funcs_1/t/is_views.test delete mode 100644 mysql-test/suite/funcs_1/t/memory__datadict.test delete mode 100644 mysql-test/suite/funcs_1/t/memory__load.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/memory_storedproc_02.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/memory_storedproc_03.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/memory_storedproc_06.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/memory_storedproc_07.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/memory_storedproc_08.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/memory_storedproc_10.test delete mode 100644 mysql-test/suite/funcs_1/t/myisam__datadict.test delete mode 100644 mysql-test/suite/funcs_1/t/myisam__load.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/myisam_storedproc_02.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/myisam_storedproc_03.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/myisam_storedproc_06.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/myisam_storedproc_07.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/myisam_storedproc_08.test mode change 100755 => 100644 mysql-test/suite/funcs_1/t/myisam_storedproc_10.test diff --git a/mysql-test/suite/funcs_1/README.txt b/mysql-test/suite/funcs_1/README.txt index bf6ac945cb1..7e98d1bc117 100644 --- a/mysql-test/suite/funcs_1/README.txt +++ b/mysql-test/suite/funcs_1/README.txt @@ -1,134 +1,46 @@ -Matthias 17.06.2005 -------------------- -1. I changed the database test1 (dropped + created in SP test) - to test4. - Please adjust the SP test cases. -2. There is a difference between my definition of - innodb_tb4 + memory_tb4 - to the latest table definition used by disha. - Please adjust the table definition if needed. -3. The data load files are product of the Disha data generation script - (downloaded ~20 May ?) + modified by Omer - These load data fit fairly to the table definitions. +2008-02-29 Matthias Leich +========================= -4. How to execute the "small" test with 10 rows per table. - Do NOT set the environment variable NO_REFRESH to a - value <> ''. - Start the test for example by - ./mysql-test-run.pl --vardir=/dev/shm/var \ - --force --suite=funcs_1 --do-test=myisam - The "result" files fit mostly to this variant. +1. The testsuite "funcs_1" is mostly intended for additional (compared + to the common regression tests stored in mysql-test/t) checks + of features (VIEWS, INFORMATION_SCHEMA, STORED PROCEDURES,...) + introduced with MySQL 5.0. - Any database not in ('mysql','test') and any tables - needed within a testcase ( t/_.test ) - will be (re)created at the beginning of the test. +2. There were some extensions of this suite when new information_schema + views were introduced. But in most cases the tests for these views + were stored within the regression testsuite (mysql-test/t). -5. How to execute the "big" test with many rows per table. - Replace the directories - suite/funcs_1/data and - suite/funcs_1/r - with the appropriate ones for the "big" test. - Set the environment variable NO_REFRESH to a value <> ''. - Start the test for example by - ./mysql-test-run.pl --vardir=/dev/shm/var \ - --force --suite=funcs_1 --do-test=myisam + INFORMATION_SCHEMA views introduced with MySQL 5.1 + ================================================== + ENGINES (partially tested here) + EVENTS (partially tested here) + FILES + GLOBAL_STATUS + GLOBAL_VARIABLES + PARTITIONS + PLUGINS + PROCESSLIST (full tested here) + PROFILING + REFERENTIAL_CONSTRAINTS + SESSION_STATUS + SESSION_VARIABLES - All databases and tables will be (re)created by the script - __load.test . +3. Some hints: + - SHOW TABLES ... LIKE '' + does a case sensitive comparison between the tablename and + the pattern. + The names of the tables within the informationschema are in uppercase. + So please use something like + SHOW TABLES FOR information_schema LIKE 'TABLES' + when you intend to get the same non empty result set on OS with and + without case sensitive filesystems and default configuration. + - The name of the data dictionary is 'information_schema' (lowercase). + - Server on OS with filesystem with case sensitive filenames + (= The files 'abc' and 'Abc' can coexist.) + + default configuration + Example of behaviour: + DROP DATABASE information_schema; + ERROR 42000: Access denied for user ... to database 'information_schema' + DROP DATABASE INFORMATION_SCHEMA; + ERROR 42000: Access denied for user ... to database 'INFORMATION_SCHEMA' -6. I am not sure of the files - ./funcs_1/include/create_.inc - are in the moment needed. I included them, because I - guess my VIEW testcase example needs them. - -I guess the pushed files are far away from being perfect. -It is a 8 hours hack. -Please try them, create missing files and come up with improvements. - -Good luck ! - -Matthias 17.06.2005 -=================================================================== -Omer 19.06.2005 ---------------- -1. Changed the structure of the memory_tb3 table to include two - additional column f121, f122. These columns exist for the table in - the other storage engines as TEXT. Since memory does not support - TEXT, Disha did not include them. How ever I am using them in the - Trigger tests so added them to the memory definition as CHAR(50);. - Also modifyed the DataGen_modiy.pl file to account for these two - column when generating the data. - - checked in a new DataGen_modify.pl (create a 'lib' directory - under 'funcs_1'). - - checked in a new memory_tb3.txt -2. Added three _triggers.test files based on Matthias's - structure above. -3. Added three __triggers.result files -4. Added the Trigger_master.test file in the trigger dierctory - Note: This is not complete and is still under work -5. Created a 'lib' directory and added the DataGen*.pl scripts to it - (exists under the disha suite) but should be here as well). -Omer 19.06.2005 -=================================================================== -Matthias 12.09.2005 -------------------- - Replace the geometry data types by VARBINARY - The removal of the geometry data types was necessary, because the - execution of the funcs_1 testsuite should not depend on the - availability of the geometry feature. - Note: There are servers compiled without the geometry feature. - - The columns are not removed, but their data type was changed - VARBINARY. This allows us to omit any changes within the loader - input files or data generation scripts. - The replacement of geometry by VARCHAR allows us to use our - -Matthias 12.09.2005 -=================================================================== -Matthias 14.09.2005 -------------------- - The results of the _views testcases suffer when - executed in "--ps-protocol" mode from the open - Bug#11589: mysqltest, --ps-protocol, strange output, - float/double/real with zerofill . - Implementation of a workaround: - At the beginning of views_master.inc is a variable $have_bug_11589 . - If this varable is set to 1, the ps-protocol will be switched - of for the critical statements. -Matthias 14.09.2005 -=================================================================== -Carsten 16.09.2005 ------------------- -1. The results of the datadict_ testcases have been changed in nearly - all occurrencies of --error because now for the INFORMATION_SCHEMA only - the --error 1044 (ERROR 42000: Access denied for user '..' to database - 'information_schema') seems to be used. -2. To get identical results when using "--ps-protocol" some SELECTs FROM - information_schema has been wrapped to suppress using ps-protocol because - there are differences. -3. The test using SELECT .. OUTFILE has been disabled due to bug #13202. -4. Fixed datadict_.result files after the change that added 2 columns to - the VIEWS table (DEFINER varchar(77), SECURITY_TYPE varchar(7)). -=================================================================== -Matthias 25.08.2007 -------------------- -Fixes for Bugs 30418,30420,30438,30440 -1. Replace error numbers with error names -2. Replace static "InnoDB" (not all time available) used within an - "alter table" by $OTHER_ENGINE_TYPE (set to MEMORY or MyISAM). - Minor adjustment of column data type. -3. Use mysqltest result set sorting in several cases. -4. Avoid any statistics about help tables, because their content - depends on configuration: - developer release - help tables are empty - build release - help tables have content + growing with version -5. Add two help table related tests (one for build, one for developer) - to ensure that informations about help tables within - INFORMATION_SCHEMA.TABLES/STATISTICS are checked. -General note: - Most INFORMATION_SCHEMA properties (table layout, permissions etc.) - are not affected by our variation of the storage engines except - that some properties of our tables using a specific storage - engine become visible. So it makes sense to decompose - this test into a storage engine specific part and a non - storage engine specific part in future. diff --git a/mysql-test/suite/funcs_1/datadict/basics_mixed1.inc b/mysql-test/suite/funcs_1/datadict/basics_mixed1.inc new file mode 100644 index 00000000000..2cb9cbc700b --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/basics_mixed1.inc @@ -0,0 +1,53 @@ +# suite/funcs_1/datadict/basics_mixed1.inc +# +# Auxiliary script to be sourced by suite/funcs_1/t/is_basics_mixed.test +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# 1 Attempt to create tables and views when residing in information_schema +# 1.1 CREATE TABLE +USE information_schema; +let $message= root: create a table with a name of an IS table directly in IS; +let $dd_part1= CREATE TABLE; +let $dd_part2= ( c1 INT ); +--source suite/funcs_1/datadict/basics_mixed2.inc +# FIXME 3.2.1.6: error message ER_UNKNOWN_TABLE is misleading +--error ER_UNKNOWN_TABLE +CREATE TABLE t1 (f1 INT, f2 INT, f3 INT); +# +# 1.2 CREATE VIEW +# 1.2.1 Hit on existing INFORMATION_SCHEMA table +--error ER_DBACCESS_DENIED_ERROR +CREATE VIEW tables AS SELECT 'garbage'; +--error ER_DBACCESS_DENIED_ERROR +CREATE VIEW tables AS SELECT * FROM information_schema.tables; +# 1.2.2 New view +# ER_DBACCESS_DENIED_ERROR would be better. +--error ER_UNKNOWN_TABLE +CREATE VIEW v1 AS SELECT 'garbage'; + +# 2 Attempt to create tables and views when residing in information_schema +# 1.1 CREATE TABLE +USE test; +let $message= root: create a table with a name of an IS table from other db; +let $dd_part1= CREATE TABLE information_schema.; +let $dd_part2= ( c1 INT ); +--source suite/funcs_1/datadict/basics_mixed2.inc +# FIXME 3.2.1.6: error message ER_UNKNOWN_TABLE is misleading +--error ER_UNKNOWN_TABLE +CREATE TABLE information_schema.t1 (f1 INT, f2 INT, f3 INT); +# +# Hit on existing INFORMATION_SCHEMA table +--error ER_DBACCESS_DENIED_ERROR +CREATE VIEW information_schema.tables AS SELECT 'garbage'; +--error ER_DBACCESS_DENIED_ERROR +CREATE VIEW information_schema.tables AS +SELECT * FROM information_schema.tables; +# New table +# ER_DBACCESS_DENIED_ERROR would be better. +--error ER_UNKNOWN_TABLE +CREATE VIEW information_schema.v1 AS SELECT 'garbage'; diff --git a/mysql-test/suite/funcs_1/datadict/basics_mixed2.inc b/mysql-test/suite/funcs_1/datadict/basics_mixed2.inc new file mode 100644 index 00000000000..6b1f07798fb --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/basics_mixed2.inc @@ -0,0 +1,55 @@ +#### suite/funcs_1/datadict/basics_mixed2.inc +# +# Auxiliary script to be sourced by suite/funcs_1/datadict/is_basics_mixed1.inc +# +# contains all tables from INFORMATION_SCHEMA +# +# Usage example(snip of script): +# let $dd_part1= CREATE TABLE information_schema.; +# let $dd_part2= ( c1 INT ); +# --source suite/funcs_1/datadict/basics_mixed2.inc +# +# We expect to get +# ERROR 42000: Access denied for user 'root'@'localhost' +# to database 'information_schema' +# for every statement. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 schemata $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 tables $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 columns $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 character_sets $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 collations $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 collation_character_set_applicability $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 routines $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 statistics $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 views $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 user_privileges $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 schema_privileges $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 table_privileges $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 column_privileges $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 table_constraints $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 key_column_usage $dd_part2; +--error ER_DBACCESS_DENIED_ERROR +eval $dd_part1 triggers $dd_part2; + diff --git a/mysql-test/suite/funcs_1/datadict/basics_mixed3.inc b/mysql-test/suite/funcs_1/datadict/basics_mixed3.inc new file mode 100644 index 00000000000..f6a290636d9 --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/basics_mixed3.inc @@ -0,0 +1,42 @@ +#### suite/funcs_1/datadict/basics_mixed3.inc +# +# Auxiliary routine to be sourced by suite/funcs_1/t/is_basics_mixed.test +# +# Check if INFORMATION_SCHEMA tables contain a schema_name like 'db_data%'. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# No column with the name of a database contained in: +# character_sets collations collation_character_set_applicability +# user_privileges +SELECT DISTINCT table_schema FROM information_schema.columns +WHERE table_schema LIKE 'db_data%'; +SELECT DISTINCT table_schema FROM information_schema.column_privileges +WHERE table_schema LIKE 'db_data%'; +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.key_column_usage +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +SELECT DISTINCT routine_schema FROM information_schema.routines +WHERE routine_schema LIKE 'db_data%'; +SELECT DISTINCT schema_name FROM information_schema.schemata +WHERE schema_name LIKE 'db_data%'; +SELECT DISTINCT table_schema FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_data%'; +SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics +WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%'; +SELECT DISTINCT table_schema FROM information_schema.tables +WHERE table_schema LIKE 'db_data%'; +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.table_constraints +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +SELECT DISTINCT table_schema FROM information_schema.table_privileges +WHERE table_schema LIKE 'db_data%'; +SELECT DISTINCT trigger_schema,event_object_schema +FROM information_schema.triggers +WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%'; +SELECT DISTINCT table_schema FROM information_schema.views +WHERE table_schema LIKE 'db_data%'; diff --git a/mysql-test/suite/funcs_1/datadict/charset_collation.inc b/mysql-test/suite/funcs_1/datadict/charset_collation.inc new file mode 100644 index 00000000000..f8fc58b082b --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/charset_collation.inc @@ -0,0 +1,122 @@ +# suite/funcs_1/datadict/charset_collation.inc +# +# Tests checking the content of the information_schema tables +# character_sets +# collations +# collation_character_set_applicability +# +# +# The amount and properties of character_sets/collations depend on the +# build type +# 2007-12 MySQL 5.0 +# --------------------------------------------------------------------- +# +# Variant 1 fits to +# version_comment MySQL Enterprise Server (Commercial) +# version_comment MySQL Enterprise Server (GPL) +# version_comment MySQL Classic Server (Commercial) +# version_comment MySQL Pushbuild Edition, build +# (version_comment Source distribution +# and +# compile was without "max" - > no collation 'utf8_general_ci') +# +# Variant 2 fits to +# version_comment MySQL Enterprise Server (GPL) +# version_comment MySQL Classic Server (Commercial) +# version_comment MySQL Pushbuild Edition, build +# (version_comment Source distribution +# and +# compile was without "max" - > collation 'utf8_general_ci' exists) +# +# Difference between variant 1 and 2 is the collation 'utf8_general_ci'. +# +# Variant 3 fits to +# version_comment MySQL Community Server (GPL) +# version_comment MySQL Cluster Server (Commercial) +# +# Difference between variant 3 and 2 is within the collation properties +# IS_COMPILED and SORTLEN. +# +# Created: +# 2007-12-18 mleich - remove the unstable character_set/collation subtests +# from include/datadict-master.inc +# - create this new test +# + +# Create a low privileged user. +--error 0, ER_CANNOT_USER +DROP USER dbdict_test@localhost; +CREATE USER dbdict_test@localhost; + +--echo # Establish connection con (user=dbdict_test) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (con,localhost,dbdict_test,,); +################################################################################ +# +# The original requirements for the following tests were: +# +# 3.2.2.2: Ensure that the table (information_schema.character_sets) shows the +# relevant information on every character set for which the current +# user or PUBLIC have the USAGE privilege. +# +# 3.2.2.3: Ensure that the table (information_schema.character_sets) does not +# show any information on any character set for which the current user +# or PUBLIC have no USAGE privilege. +# +# +# 3.2.3.2: Ensure that the table (information_schema.collations) shows the +# relevant information on every collation for which the current user +# or PUBLIC have the USAGE privilege. +# +# 3.2.3.3: Ensure that the table (information_schema.collations) does not show +# any information on any collations for which the current user and +# PUBLIC have no USAGE privilege. +# +# +# 3.2.4.2: Ensure that the table +# information_schema.collation_character_set_applicability +# shows the relevant information on every collation/character set +# combination for which the current user or PUBLIC have the USAGE +# privilege. +# +# 3.2.4.3: Ensure that the table +# information_schema.collation_character_set_applicability +# does not show any information on any collation/character set +# combinations for which the current user and PUBLIC have no +# USAGE privilege. +# +# Notes (2007-12-19 mleich): +# - The requirements are outdated because grant/revoke privilege for using a +# characterset/collation were never implemented. +# Therefore the tests should simply check the content of these tables. +# +# - The amount of collations/character sets grows with new MySQL releases. +# +# - Even within the same release the amount of records within these tables +# can differ between different build types (community, enterprise, source,...) +# +# +################################################################################ +--echo +SELECT * +FROM information_schema.character_sets +ORDER BY character_set_name; + +--echo +SELECT * +FROM information_schema.collations +ORDER BY collation_name; + +echo; +--echo +SELECT * +FROM information_schema.collation_character_set_applicability +ORDER BY collation_name, character_set_name; + + +# Cleanup +--echo # Switch to connection default + disconnect con +connection default; +disconnect con; +DROP USER dbdict_test@localhost; + diff --git a/mysql-test/suite/funcs_1/datadict/columns.inc b/mysql-test/suite/funcs_1/datadict/columns.inc new file mode 100644 index 00000000000..86f8afeff73 --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/columns.inc @@ -0,0 +1,87 @@ +# suite/funcs_1/datadict/is_columns.inc +# +# Auxiliary script to be sourced by +# is_columns_is +# is_columns_mysql +# is_columns_ +# +# Purpose: +# Check the content of information_schema.columns about tables within certain +# database/s. +# +# Usage: +# The variable $my_where has to +# - be set before sourcing this script. +# - contain the first part of the WHERE qualification +# Example: +# let $my_where = WHERE table_schema = 'information_schema' +# AND table_name <> 'profiling'; +# --source suite/funcs_1/datadict/is_columns.inc +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval +SELECT * FROM information_schema.columns +$my_where +ORDER BY table_schema, table_name, column_name; + +--echo ########################################################################## +--echo # Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH +--echo ########################################################################## +eval +SELECT DISTINCT + CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, + DATA_TYPE, + CHARACTER_SET_NAME, + COLLATION_NAME +FROM information_schema.columns +$my_where +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; + +#FIXME 3.2.6.2: check the value 2.0079 tinytext ucs2 ucs2_general_ci +eval +SELECT DISTINCT + CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, + DATA_TYPE, + CHARACTER_SET_NAME, + COLLATION_NAME +FROM information_schema.columns +$my_where +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; + +eval +SELECT DISTINCT + CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, + DATA_TYPE, + CHARACTER_SET_NAME, + COLLATION_NAME +FROM information_schema.columns +$my_where + AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; + +echo --> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values; +echo --> are 0, which is intended behavior, and the result of 0 / 0 IS NULL; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval +SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, + TABLE_SCHEMA, + TABLE_NAME, + COLUMN_NAME, + DATA_TYPE, + CHARACTER_MAXIMUM_LENGTH, + CHARACTER_OCTET_LENGTH, + CHARACTER_SET_NAME, + COLLATION_NAME, + COLUMN_TYPE +FROM information_schema.columns +$my_where +ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; + diff --git a/mysql-test/suite/funcs_1/datadict/datadict.pre b/mysql-test/suite/funcs_1/datadict/datadict.pre new file mode 100644 index 00000000000..cedc24aad13 --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/datadict.pre @@ -0,0 +1,54 @@ +#### suite/funcs_1/datadict/datadict.pre +# +# Auxiliary script which loads prerequisites +# (variables needed for --replace_result ...) +# in datadictionary tests. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# +--disable_query_log + +# Bug#12777 Different size shown for VARCHAR(n) columns (with n> 64) +# in INFORMATION_SCHEMA +# This bug was unfortunately (for testers) declared to be no bug. +# So CHARACTER_MAXIMUM_LENGTH of several _CATALOG columns within +# the INFORMATION_SCHEMA depends on PATH_MAX of the operating system. +# Workaround for this problem: +# Get the size of ONE known colum and check the size against some values to +# be able to use the correct --replace_result statement. Using this only the +# one pair of 'wrong' values is replaced and not all occurrencies of all +# possible pairs of values. See bug #12777 for details. +SELECT character_maximum_length INTO @CML +FROM information_schema.columns +WHERE table_schema = 'information_schema' + AND table_name = 'columns' + AND column_name = 'table_catalog'; + +let $bug_12777_0512= `SELECT @CML = 512`; +let $bug_12777_1023= `SELECT @CML = 1023`; +let $bug_12777_1024= `SELECT @CML = 1024`; +let $bug_12777_2048= `SELECT @CML = 2048`; +# 4096 is the value used in the files with expected results. +let $bug_12777_4095= `SELECT @CML = 4095`; +if (0) +{ + # enable this for debugging only, but NOT in a pushed version, as then the + # result changes from OS to OS ... + eval SELECT @CML AS 'CML', + $bug_12777_0512 AS '512', + $bug_12777_1023 AS '1023', + $bug_12777_1024 AS '1024', + $bug_12777_2048 AS '2048', + $bug_12777_4095 AS '4095'; +} + + +# Prepare a variable to be able to suppress machine dependant diffs +# this can be used in: --replace_result $SERVER_NAME +let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user + WHERE host NOT In ("localhost", "127.0.0.1", "%")`; +--enable_query_log + diff --git a/mysql-test/suite/funcs_1/datadict/datadict_master.inc b/mysql-test/suite/funcs_1/datadict/datadict_master.inc deleted file mode 100644 index 0499d3945e2..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_master.inc +++ /dev/null @@ -1,3955 +0,0 @@ -#### suite/funcs_1/datadict/datadict_master.inc -# -# Checks of INFORMATION_SCHEMA table properties and content. -# (mostly only the features introduced with MySQL 5.1) -# -# Please set the variable $OTHER_ENGINE_TYPE before sourcing this script. -# $OTHER_ENGINE_TYPE must be -# - <> $engine_type -# - all time available like MyISAM or MEMORY -# -# Last change: -# 2007-08-24 mleich Fixes for the bugs -# #30438 "{memory,myisam,ndb}__datadict" tests fail: -# Use "InnoDB" without checking -# #30418 "datadict" tests (all engines) fail: -# Dependency on the host name for ordering -# #30420 "datadict" tests (all engines) fail: -# Release build has help tables loaded -# - ---disable_abort_on_error -let $message= -. -. It is intended that the 3 __datadict.test files are named this way to be -. sure they are - in a *full run* of the suite - the first tests done for each -. storage engine. Using two _ and the order of processing in mysql-test-run.pl -. ensures this in an easy way. -. -. If needed a restart could be implemented later between the storage engines if -. values changes in the result depending from the position where the -. *__datadict.test are started. This can be a result of showing e.g. maximum -. values of the number of rows of tables. -. -. This .result file has been checked OK with Linux 5.0.48, -. build tree ChangeSet@1.2477.6.3, 2007-07-30 -. except that the not fixed Bug#30020 causes a difference. -.; ---source include/show_msg80.inc - -################################################################################ -# - let $message= FIXME: There are subtests that are switched off due to known bugs:; - --source include/show_msg.inc - #set variable(s) here to be able to switch crashing sub tests with ONE change HERE. - #change the variable(s) to enable / disable the crashing parts. - - # different 'logics' are used because sometimes codelines needs to be switched off - # and otherwise some extra statements needs to be executed as long as the bug is not - # fixed: - let $have_bug_11589= 1; - - #seems not to work: --vertical_results - eval SELECT $have_bug_11589 AS "have_bug_11589"; - #seems not to work: --horizontal_results - - # As long as - # Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill - # is not fixed, we must switch the ps-protocol for some statements off. - # If this bug is fixed, please - # 1. set the following variable to 0 - # 2. check, if the test passes - # 3. remove the workarounds - if ($have_bug_11589) - { - let $message= There are some statements where the ps-protocol is switched off. - This may come from the bug listed below, ir from other problems. - Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill; - --source include/show_msg80.inc - } -# -################################################################################ - - -# loading the tables (data is not really needed in this test) is separated to -# make it easier in this file to show the message above. ---source suite/funcs_1/datadict/datadict_load.inc - -#FIXME: - check for remaining change of object names to standards: db_, tb_, v_, u_, ... -#FIXME: - check warnings when data is loaded (Data truncated for column ...) -#FIXME: - change connect() to use less users / connections -# -#FIXME: - check for additional 'FIXME' here in the script - -use information_schema; ---source suite/funcs_1/include/show_connection.inc - - -################################################################################ -# -# Data Dictionary -# -################################################################################ - -let $message= Testcase 3.2.1.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.1: Ensure that every INFORMATION_SCHEMA table can be queried -# with a SELECT statement, just as if it were an ordinary -# user-defined table. -################################################################################ - -# create at least one object for all 'tables' to be checked ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; -USE db_datadict; - -CREATE VIEW v1 AS SELECT * FROM information_schema.tables; - -# try to get the server's name to be able to clean-up the result from machine -# specific stuff. -CREATE OR REPLACE VIEW db_datadict.vu1 as -SELECT grantee AS u - FROM information_schema.user_privileges; -CREATE OR REPLACE VIEW db_datadict.vu as -SELECT DISTINCT u, - SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 ) - AS server, - SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3, - LENGTH( SUBSTRING( u, - LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 ) - AS Server_Clean -FROM db_datadict.vu1; ---replace_result $SERVER_NAME ---sorted_result -SELECT * FROM db_datadict.vu order by u; - -delimiter //; -CREATE PROCEDURE db_datadict.sp_1() - BEGIN - SELECT * FROM db_datadict.v1; - END// -delimiter ;// - -#FIXME 3.2.1.1: add missing objects of each type to have something to select -#FIXME 3.2.1.1: - FUNCTION -#FIXME 3.2.1.1: - TRIGGER - -USE information_schema; -SHOW tables; - -select * from schemata ORDER BY 2 DESC, 1 ASC; - -if ($have_bug_11589) -{ ---disable_ps_protocol -} ---vertical_results -#SELECT * FROM tables; -# -#FIXME 3.2.1.1: we split the "SELECT * FROM tables" in two parts until -#FIXME 3.2.1.1: Bug #12397: wrong values shown in column CREATE_OPTIONS of -#FIXME 3.2.1.1: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one -#FIXME 3.2.1.1: with 'less' replace -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME -# 20 CREATE_OPTIONS ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#" -SELECT * FROM tables - WHERE table_schema = 'information_schema'; -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM tables -WHERE NOT( table_schema = 'information_schema') - AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); ---horizontal_results ---enable_ps_protocol - -select s.catalog_name, s.schema_name, s.default_character_set_name, - t.table_type, t.engine - from schemata s inner join tables t - ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; ---source suite/funcs_1/datadict/datadict_bug_12777.inc -select * from columns; -select * from character_sets; -select sum(id) from collations where collation_name <> 'utf8_general_cs'; -select collation_name, character_set_name into @x,@y - from collation_character_set_applicability limit 1; - select @x, @y; - ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -select * from routines; - -select count(*) from routines; -select * from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); -select * from views; ---replace_result $SERVER_NAME ---sorted_result -select * from user_privileges order by grantee, privilege_type; -select * from schema_privileges; -select * from table_privileges; -select * from column_privileges; -select * from table_constraints; -select * from key_column_usage; -select count(*) as max_recs from key_column_usage; - -select max(cardinality) from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); - -select concat("View '", - table_name, "' is associated with the database '", table_schema, "'.") - AS "Who is Who for the Views" - from views; - -select concat("Table or view '", table_name, - "' is associated with the database '", table_schema, "'.") as "Who is Who" - from tables; - ---replace_result $SERVER_NAME ---sorted_result -select grantee as "user's having select privilege", - substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 ) - from user_privileges where privilege_type = 'select' - order by grantee; - -select all table_schema from schema_privileges limit 0,5; - -select distinct(privilege_type) from table_privileges; - -select * from column_privileges - group by table_schema having table_schema = 'db_datadict'; - -select * from table_constraints limit 0,5; -select count(*) as max_recs from key_column_usage limit 0,5; - -select information_schema.tables.table_name as "table name", - count(distinct(column_name)) as "no of columns in the table" - from information_schema.tables left outer join information_schema.columns on - information_schema.tables.table_name = information_schema.columns.table_name - group by information_schema.tables.table_name; - -# Reference Manual 22.1.16 - we will add more ...: -# select * from parameters; -# select * from referential_constraints; -# select * from triggers; - -let $message= root: simple select to check all - and never forget some - tables; -let $dd_part1= SELECT * FROM; -let $dd_part2= LIMIT 1; ---source suite/funcs_1/datadict/datadict_tables.inc - -# check again, but from different database (will fail due to missing database name) -use db_datadict; - ---error ER_NO_SUCH_TABLE -select * from schemata; ---error ER_NO_SUCH_TABLE -select * from tables; ---error ER_NO_SUCH_TABLE -select s.catalog_name, s.schema_name, s.default_character_set_name, - t.table_type, t.engine - from schemata s inner join tables t - ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name; ---error ER_NO_SUCH_TABLE -select * from columns limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from character_sets limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from collations limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from collation_character_set_applicability limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from routines limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from statistics limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from views limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from user_privileges limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from schema_privileges limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from table_privileges limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from column_privileges limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from table_constraints limit 0, 5; ---error ER_NO_SUCH_TABLE -select * from key_column_usage limit 0, 5; -# Reference Manual 22.1.16 - we will add more ...: -# --error ER_NO_SUCH_TABLE -# select * from parameters; -# --error ER_NO_SUCH_TABLE -# select * from referential_constraints; -# --error ER_NO_SUCH_TABLE -# select * from triggers; -let $message= will fail due to missing database name; -let $dd_part1= SELECT * FROM; -let $dd_part2=; ---source suite/funcs_1/datadict/datadict_tables_error_1146.inc - -# now check from "other" database, but with database name -select * from information_schema.schemata ORDER BY 2 DESC; - -#SELECT * FROM information_schema.tables; -# -#FIXME 3.2.1.1: we split the "SELECT * FROM tables" in two parts until -#FIXME 3.2.1.1: Bug #12397: wrong values shown in column CREATE_OPTIONS of -#FIXME 3.2.1.1: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one -#FIXME 3.2.1.1: with 'less' replace -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHRCK_TIME -# 20 CREATE_OPTIONS -if ($have_bug_11589) -{ ---disable_ps_protocol -} ---vertical_results ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#" -SELECT * FROM information_schema.tables - WHERE table_schema = 'information_schema'; -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHRCK_TIME ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema') - AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); ---horizontal_results ---enable_ps_protocol - -select s.catalog_name, s.schema_name, s.default_character_set_name, - t.table_type, t.engine - from information_schema.schemata s inner join information_schema.tables t - ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; - ---source suite/funcs_1/datadict/datadict_bug_12777.inc -select * from information_schema.columns limit 0, 5; -select * from information_schema.character_sets limit 0, 5; -select * from information_schema.collations limit 0, 5; -select * from information_schema.collation_character_set_applicability limit 0, 5; ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -select * from information_schema.routines limit 0, 5; -select * from information_schema.statistics limit 0, 5; -select * from information_schema.views limit 0, 5; ---replace_result $SERVER_NAME -select * from information_schema.user_privileges limit 0, 5; -select * from information_schema.schema_privileges limit 0, 5; -select * from information_schema.table_privileges limit 0, 5; -select * from information_schema.column_privileges limit 0, 5; -select * from information_schema.table_constraints limit 0, 5; -select * from information_schema.key_column_usage limit 0, 5; -select count(*) as max_recs from information_schema.key_column_usage limit 0, 5; - -# Reference Manual 22.1.16 - we will add more ...: -# select * from information_schema.parameters; -# select * from information_schema.referential_constraints; -# select * from information_schema.triggers; - -let $message= root: check with db name; -let $dd_part1= SELECT COUNT(*) FROM information_schema.; -let $dd_part2=; ---source suite/funcs_1/datadict/datadict_tables.inc - -# cleanup -USE db_datadict; -DROP VIEW v1, vu1, vu; -DROP PROCEDURE db_datadict.sp_1; -USE information_schema; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.2:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.2: Ensure that queries on an INFORMATION_SCHEMA table can -# accept all SELECT statement options and are always -# correctly evaluated. -################################################################################ - -# currently here only a subset of select statement options is checked, it's still -# not possible to check here all possible options -select catalog_name, schema_name, default_character_set_name - from schemata where schema_name like '%s%'; - -select count(*) as tot_tabs from tables; -select count(*) as the_cols from columns; - -select max(maxlen) as the_max from character_sets; -select * from collations order by id asc limit 0, 5; -select * from collation_character_set_applicability - order by character_set_name desc, collation_name limit 0, 5; - -select routine_definition from routines; -select * from statistics where table_name not like 'help_%' -group by index_name asc limit 0, 5; -select concat(table_schema, ', ', table_name, ', ', view_definition) view_info - from views; -select concat(table_schema, ', ', table_name) "Table_info" - from tables ORDER BY 1; - ---replace_result $SERVER_NAME ---sorted_result -select distinct grantee from user_privileges order by grantee, privilege_type; -select * from schema_privileges where table_catalog is null limit 0, 5; -select * from table_privileges where grantee like '%r%' limit 0, 5; - -select * from column_privileges where table_catalog is not null limit 0, 5; -select HIGH_PRIORITY * from table_constraints - group by constraint_name desc limit 0, 5; -select sum(ordinal_position) from key_column_usage; - -select * from schemata limit 0,5; -select * from schemata limit 0,5; ---replace_result $SERVER_NAME ---sorted_result -select distinct grantee from user_privileges; ---replace_result $SERVER_NAME ---sorted_result -select all grantee from user_privileges order by grantee, privilege_type; - -select id , character_set_name from collations order by id asc limit 10; - -select table_catalog from columns - union all -select table_catalog from tables limit 0,5; -select table_catalog from columns - union -select table_catalog from tables limit 0,5; - -select all schema_name from information_schema.schemata; - -# the $ENGINE_TYPE variable is used here ONLY to have 3 different file names in -# the three datadict testcases innodb_*, memory_* and myisam_* -eval SELECT * - INTO OUTFILE '../tmp/out.$ENGINE_TYPE.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; - -USE test; - -eval SELECT * - INTO OUTFILE '../tmp/out.$ENGINE_TYPE.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata - WHERE schema_name LIKE 'db_%'; - -# check also with a 'simple' user -CREATE USER user_3212@localhost; -GRANT ALL ON db_datadict.* TO user_3212@localhost; -# OBN: The following line was added following the fix to bug 28181 -# where queries to information_schema will fail if exporting to -# a file without having the FILE attribute -GRANT FILE ON *.* TO user_3212@localhost; - - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u3212,localhost,user_3212,,db_datadict); ---source suite/funcs_1/include/show_connection.inc - -# no db given --> db_datadict.schema does not exist ---error ER_NO_SUCH_TABLE -eval SELECT * - INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; ---error ER_NO_SUCH_TABLE -eval SELECT * - FROM schemata LIMIT 0, 5; - -eval SELECT * - INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata - WHERE schema_name LIKE 'db_%'; - -eval SELECT * - FROM information_schema.schemata - WHERE schema_name LIKE 'db_%'; - -USE information_schema; - -eval SELECT * - INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user_2.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; - -eval SELECT * - FROM schemata LIMIT 0, 5; - -eval SELECT * - INTO OUTFILE '../tmp/out.$ENGINE_TYPE.user_2.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata - WHERE schema_name LIKE 'db_%'; - -eval SELECT * - FROM information_schema.schemata - WHERE schema_name LIKE 'db_%'; - -disconnect u3212; -connection default; -USE information_schema; ---source suite/funcs_1/include/show_connection.inc - -use db_datadict; -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from information_schema.columns -union -select table_catalog, table_schema, table_name, - concat( "*** type = ", table_type ) - from information_schema.tables - order by 3, 4 desc, 1, 2 limit 30; - -use information_schema; ---source suite/funcs_1/datadict/datadict_bug_12777.inc -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from columns -union -select table_catalog, table_schema, table_name, - concat( "*** type = ", table_type ) - from tables - order by 3, 4 desc, 1, 2 limit 30; - -# cleanup -DROP USER user_3212@localhost; - -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.3: Ensure that no user may execute an INSERT statement on any -# INFORMATION_SCHEMA table. -################################################################################ - -#FIXME: in this block we had --error 1288 until Mid Sep05, check the change! ---error ER_DBACCESS_DENIED_ERROR -insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path) - values ('null', 'db1', 'latin1', 'null'); ---error ER_DBACCESS_DENIED_ERROR -insert into tables (table_schema, table_name)values('db_datadict', 't1'); ---error ER_DBACCESS_DENIED_ERROR -insert into columns (table_name, column_name)values('t3', 'f2'); ---error ER_DBACCESS_DENIED_ERROR -insert into character_sets (character_set_name, default_collate_name, description, maxlen) - values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1); ---error ER_DBACCESS_DENIED_ERROR -insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen) - values ('cp1251_bin', 'cp1251', 50, '', '', 0); ---error ER_DBACCESS_DENIED_ERROR -insert into collation_character_set_applicability (collation_name, character_set_name) - values (' big5_chinese_ci', 'big6'); ---error ER_DBACCESS_DENIED_ERROR -insert into routines(routine_name, routine_type ) values ('p2', 'procedure'); ---error ER_DBACCESS_DENIED_ERROR -insert into statistics(table_schema, table_name, index_name) - values ('mysql', 'db', 'primary'); ---error ER_DBACCESS_DENIED_ERROR -insert into views(table_schema, table_name) values ('db2', 'v2'); ---error ER_DBACCESS_DENIED_ERROR -insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes'); ---error ER_DBACCESS_DENIED_ERROR -insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert'); ---error ER_DBACCESS_DENIED_ERROR -insert into table_privileges (able_schema, table_name, privilege_type) - values('db2', 'v2', 'insert'); ---error ER_DBACCESS_DENIED_ERROR -insert into column_privileges (table_name, column_name, privilege_type) - values ('t3', 'f3', 'insert'); ---error ER_DBACCESS_DENIED_ERROR -insert into table_constraints ( constraint_schema, constraint_name, table_schema) - values ('primary', 'mysql', 'user'); ---error ER_DBACCESS_DENIED_ERROR -insert into key_column_usage (constraint_schema, constraint_name, table_name) - values ('mysql', 'primary', 'db'); - -# insert through a procedure ---disable_warnings -drop procedure if exists db_datadict.sp_4_1_3; ---enable_warnings - -delimiter //; -create procedure db_datadict.sp_4_1_3() -begin - insert into information_schema.schema_privileges (table_schema,privilege_type) - values('db2','insert'); -end// -delimiter ;// - -#FIXME: check for the diffs Win ./. Linux -SELECT table_schema, privilege_type FROM information_schema.schema_privileges - WHERE table_schema LIKE 'db%'; - ---error ER_DBACCESS_DENIED_ERROR -call db_datadict.sp_4_1_3(); - -#FIXME: check for the diffs Win ./. Linux -SELECT table_schema, privilege_type FROM information_schema.schema_privileges - WHERE table_schema LIKE 'db%'; - -# cleanup -drop procedure db_datadict.sp_4_1_3; - -# insert into information_schema as a limited user - -CREATE USER user_4_1_3@localhost; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u413,localhost,user_4_1_3,,test); ---source suite/funcs_1/include/show_connection.inc - -use information_schema; - -#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) ---error ER_DBACCESS_DENIED_ERROR -insert into table_constraints ( constraint_schema, constraint_name, table_schema) - values ('primary', 'mysql', 'user'); - -connection default; ---source suite/funcs_1/include/show_connection.inc -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.4:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.4: Ensure that no user may execute an UPDATE statement on any -# INFORMATION_SCHEMA table. -################################################################################ - -use information_schema; ---source suite/funcs_1/include/show_connection.inc - -#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) in the whole next block ---error ER_DBACCESS_DENIED_ERROR -update schemata set schema_name = 'db5' where default_character_set_name = 'latin1'; ---error ER_DBACCESS_DENIED_ERROR -update tables set table_schema = 'db_datadict1' where table_name = 't1'; ---error ER_DBACCESS_DENIED_ERROR -update columns set table_name = 't4' where column_name = 'f2'; ---error ER_DBACCESS_DENIED_ERROR -update character_sets set character_set_name = 'cp1252' where maxlen = 1; ---error ER_DBACCESS_DENIED_ERROR -update collations set collation_name = 'cp1253_bin' - where character_set_name = 'cp1251'; ---error ER_DBACCESS_DENIED_ERROR -update collation_character_set_applicability set collation_name = 'big6_chinese_ci' - where character_set_name = 'big6'; ---error ER_DBACCESS_DENIED_ERROR -update routines set routine_name = p2 where routine_body = 'sql'; ---error ER_DBACCESS_DENIED_ERROR -update statistics set table_schema = 'mysql1' where table_name = 'db'; ---error ER_DBACCESS_DENIED_ERROR -update views set table_schema = 'db3' where table_name = 'v1'; ---error ER_DBACCESS_DENIED_ERROR -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; ---error ER_DBACCESS_DENIED_ERROR -update schema_privileges set table_schema = 'db2' where privilege_type = 'select'; ---error ER_DBACCESS_DENIED_ERROR -update table_privileges set table_name = 'v3' where privilege_type = 'select'; ---error ER_DBACCESS_DENIED_ERROR -update column_privileges set table_name = 't4' where column_name = 'f3'; ---error ER_DBACCESS_DENIED_ERROR -update table_constraints set constraint_schema = 'primary' - where table_schema = 'proc'; ---error ER_DBACCESS_DENIED_ERROR -update key_column_usage set table_name = 'db1' where constraint_name = 'primary'; - -# update through a procedure ---disable_warnings -drop procedure if exists db_datadict.sp_4_1_4; ---enable_warnings - -delimiter //; -create procedure db_datadict.sp_4_1_4() -begin - update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end// -delimiter ;// - -#FIXME: check for the diffs Win ./. Linux ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -select * from information_schema.routines; - ---error ER_DBACCESS_DENIED_ERROR -call db_datadict.sp_4_1_4(); - -#FIXME: check for the diffs Win ./. Linux ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -select * from information_schema.routines; - -# cleanup -drop procedure db_datadict.sp_4_1_4; - -# update information_schema as a limited user - -connection u413; - -use information_schema; ---source suite/funcs_1/include/show_connection.inc - -#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) ---error ER_DBACCESS_DENIED_ERROR -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; - -connection default; ---source suite/funcs_1/include/show_connection.inc -# -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.5:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.5: Ensure that no user may execute a DELETE statement on any -# INFORMATION_SCHEMA table. -################################################################################ - -use information_schema; - -let $message= root: DELETE FROM any table in IS; -let $dd_part1= DELETE FROM; -let $dd_part2=; ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc - -#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) in the whole next block ---error ER_DBACCESS_DENIED_ERROR -delete from schemata where schema_name = 'mysql'; ---error ER_DBACCESS_DENIED_ERROR -delete from tables where table_name = 'abc'; ---error ER_DBACCESS_DENIED_ERROR -delete from columns; ---error ER_DBACCESS_DENIED_ERROR -delete from character_sets; ---error ER_DBACCESS_DENIED_ERROR -delete from collations; ---error ER_DBACCESS_DENIED_ERROR -delete from collation_character_set_applicability; ---error ER_DBACCESS_DENIED_ERROR -delete from routines; ---error ER_DBACCESS_DENIED_ERROR -delete from statistics; ---error ER_DBACCESS_DENIED_ERROR -delete from views; ---error ER_DBACCESS_DENIED_ERROR -delete from user_privileges; ---error ER_DBACCESS_DENIED_ERROR -delete from schema_privileges; ---error ER_DBACCESS_DENIED_ERROR -delete from table_privileges; ---error ER_DBACCESS_DENIED_ERROR -delete from column_privileges; ---error ER_DBACCESS_DENIED_ERROR -delete from table_constraints; ---error ER_DBACCESS_DENIED_ERROR -delete from key_column_usage; - -# delete through a procedure ---disable_warnings -drop procedure if exists db_datadict.sp_4_1_5; ---enable_warnings - -delimiter //; -create procedure db_datadict.sp_4_1_5() -begin - delete from information_schema.column_privileges; -end// -delimiter ;// - ---error ER_DBACCESS_DENIED_ERROR -call db_datadict.sp_4_1_5(); - -# cleanup -drop procedure db_datadict.sp_4_1_5; - -# delete from information_schema as a limited user - -connection u413; - -use information_schema; ---source suite/funcs_1/include/show_connection.inc - -#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) ---error ER_DBACCESS_DENIED_ERROR -delete from tables where table_name = 'abc'; - -disconnect u413; - -connection default; ---source suite/funcs_1/include/show_connection.inc - -# cleanup -DROP USER user_4_1_3@localhost; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.6:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.6: Ensure that no user may create an INFORMATION_SCHEMA base -# table. -################################################################################ - -use information_schema; - -let $message= root: create a table with a name of an IS table directly in IS; -let $dd_part1= CREATE TABLE; -let $dd_part2= ( c1 INT ); ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '' in ? ---error ER_UNKNOWN_TABLE -create table t1 (f1 int, f2 int, f3 int); - -use db_datadict; - -#FIXME: check correct error message - HY000 Can't create/write to file '.\information_schema\columns.frm' (Errcode: 2) -let $message= root: create a table with a name of an IS table from other db; -let $dd_part1= CREATE TABLE information_schema.; -let $dd_part2= ( c1 INT ); ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '' in ? ---error ER_UNKNOWN_TABLE -create table information_schema.t1 (f1 int, f2 int, f3 int); - -# create a table in information_schema as a limited user with sufficient permissions -CREATE USER user_4_1_6@localhost; - -grant all on *.* to user_4_1_6@localhost; - -FLUSH PRIVILEGES; - -SHOW GRANTS FOR user_4_1_6@localhost; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u2, localhost, user_4_1_6, , information_schema); ---source suite/funcs_1/include/show_connection.inc - -use information_schema; - -let $message= user: create a table with a name of an IS table directly in IS; -let $dd_part1= CREATE TABLE; -let $dd_part2= ( c1 INT ); ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '' in ? ---error ER_UNKNOWN_TABLE -create table t1 (f1 int, f2 int, f3 int); - -use test; - -#FIXME 3.2.1.6: check correct error message - HY000 Can't create/write to file '.\information_schema\columns.frm' (Errcode: 2) -let $message= user: create a table with a name of an IS table from other db; -let $dd_part1= CREATE TABLE information_schema.; -let $dd_part2= ( c1 INT ); ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -#FIXME solved - 3.2.1.6: check for better error message - 42S02: Unknown table '' in ? ---error ER_UNKNOWN_TABLE -create table information_schema.t1 (f1 int, f2 int, f3 int); - -#cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -disconnect u2; -DROP USER user_4_1_6@localhost; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.7:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.7: Ensure that no user may create an INFORMATION_SCHEMA view. -################################################################################ - -use information_schema; - -let $message= root: create a view with a name of an IS table directly in IS; -let $dd_part1= CREATE VIEW ; -let $dd_part2= AS SELECT * FROM mysql.time_zone; -#FIXME: check change from error 1 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc - ---error ER_UNKNOWN_TABLE -CREATE VIEW v1 AS SELECT * FROM information_schema.schemata; - -USE db_datadict; - -let $message= root: create a view with a name of an IS table from other db; -let $dd_part1= CREATE VIEW information_schema.; -let $dd_part2= AS SELECT * FROM mysql.time_zone; -#FIXME: check change from error 1 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc - -# ... but creating a view that 'uses' the information_schema is allowed: -CREATE VIEW v1 AS SELECT * FROM information_schema.columns; - -SELECT * FROM v1 LIMIT 5; - -# create a view in information_schema as a limited user with sufficient permissions -CREATE USER user_4_1_7@localhost; - -GRANT ALL ON db_datadict.* TO user_4_1_7@localhost; -#FIXME: check that GRANT ON i_s is no longer allowed ---error ER_DBACCESS_DENIED_ERROR -GRANT ALL ON information_schema.* TO user_4_1_7@localhost; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u3, localhost, user_4_1_7, , db_datadict); -use information_schema; ---source suite/funcs_1/include/show_connection.inc - -let $message= user: create a view with a name of an IS table directly in IS; -let $dd_part1= CREATE VIEW ; -let $dd_part2= AS SELECT * FROM db_datadict.v1; -#FIXME: check change from error 1 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc ---error ER_UNKNOWN_TABLE -create view v1 as select * from table_privileges; - -use db_datadict; - -let $message= user: create a view with a name of an IS table from other db; -let $dd_part1= CREATE VIEW information_schema.; -let $dd_part2= AS SELECT * FROM db_datadict.v1; -#FIXME: check change from error 1 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -disconnect u3; - -# cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER user_4_1_7@localhost; -DROP VIEW db_datadict.v1; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.8:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.8: Ensure that no user may create an index on an -# INFORMATION_SCHEMA table. -################################################################################ - -use information_schema; - -#FIXME: check later the change from 1288 to 1044 (since Mid Sep05) ---error ER_DBACCESS_DENIED_ERROR -create index i1 on schemata(schema_name); ---error ER_DBACCESS_DENIED_ERROR -create index i2 on tables(table_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i3 on columns(table_name); - ---error ER_DBACCESS_DENIED_ERROR -create index i4 on character_sets(character_set_name); ---error ER_DBACCESS_DENIED_ERROR -create index i5 on collations( collation_name); ---error ER_DBACCESS_DENIED_ERROR -create index i6 on collation_character_set_applicability(collation_name); - ---error ER_DBACCESS_DENIED_ERROR -create index i7 on routines(routine_name); ---error ER_DBACCESS_DENIED_ERROR -create index i8 on statistics(table_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i9 on views(table_schema); - ---error ER_DBACCESS_DENIED_ERROR -create index i10 on user_privileges(privilege_type); ---error ER_DBACCESS_DENIED_ERROR -create index i11 on schema_privileges(table_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i12 on table_privileges(able_schema); - ---error ER_DBACCESS_DENIED_ERROR -create index i13 on column_privileges(table_name); ---error ER_DBACCESS_DENIED_ERROR -create index i14 on table_constraints(constraint_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i15 on key_column_usage(constraint_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i16 on triggers(trigger_name); - -use db_datadict; ---error ER_DBACCESS_DENIED_ERROR -create index i15 on information_schema.key_column_usage(constraint_schema); - -use information_schema; - -# create an index on an information_schema table as a limited user with sufficient permissions -CREATE USER user_4_1_8@localhost; - -grant select, index on *.* to user_4_1_8@localhost; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u4, localhost, user_4_1_8, , test); ---source suite/funcs_1/include/show_connection.inc - -use information_schema; - ---error ER_DBACCESS_DENIED_ERROR -create index i1 on schemata(schema_name); ---error ER_DBACCESS_DENIED_ERROR -create index i2 on tables(table_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i3 on columns(table_name); - ---error ER_DBACCESS_DENIED_ERROR -create index i4 on character_sets(character_set_name); ---error ER_DBACCESS_DENIED_ERROR -create index i5 on collations( collation_name); ---error ER_DBACCESS_DENIED_ERROR -create index i6 on collation_character_set_applicability(collation_name); - ---error ER_DBACCESS_DENIED_ERROR -create index i7 on routines(routine_name); ---error ER_DBACCESS_DENIED_ERROR -create index i8 on statistics(table_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i9 on views(table_schema); - ---error ER_DBACCESS_DENIED_ERROR -create index i10 on user_privileges(privilege_type); ---error ER_DBACCESS_DENIED_ERROR -create index i11 on schema_privileges(table_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i12 on table_privileges(able_schema); - ---error ER_DBACCESS_DENIED_ERROR -create index i13 on column_privileges(table_name); ---error ER_DBACCESS_DENIED_ERROR -create index i14 on table_constraints(constraint_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i15 on key_column_usage(constraint_schema); ---error ER_DBACCESS_DENIED_ERROR -create index i16 on triggers(trigger_name); - -use db_datadict; ---error ER_DBACCESS_DENIED_ERROR -create index i15 on information_schema.key_column_usage(constraint_schema); - -disconnect u4; - -connection default; ---source suite/funcs_1/include/show_connection.inc - -# cleanup -DROP USER user_4_1_8@localhost; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.9:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.9: Ensure that no user may alter the definition of an -# INFORMATION_SCHEMA table. -################################################################################ - -#FIXME: 3.2.1.9 check for better error message than ERROR 42S02: Table 'information_schema.schemata' doesn't exist - -# first simple check all known - so we never forget one ... -let $message= root: alter a table from other db; -let $dd_part1= ALTER TABLE information_schema.; -let $dd_part2= ADD f1 INT; -#FIXME: check change from error 1146 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -use information_schema; -let $message= root: alter a table from directly; -let $dd_part1= ALTER TABLE ; -let $dd_part2= ADD f1 INT; -#FIXME: check change from error 1146 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -# now more detailed checks ---error ER_DBACCESS_DENIED_ERROR -alter table schemata add f1 int; ---error ER_DBACCESS_DENIED_ERROR -alter table tables drop primary key; ---error ER_DBACCESS_DENIED_ERROR -alter table columns add f1 int; ---error ER_DBACCESS_DENIED_ERROR -alter table character_sets disable keys; ---error ER_DBACCESS_DENIED_ERROR -alter table collations enable keys; ---error ER_DBACCESS_DENIED_ERROR -alter table collation_character_set_applicability add f1 int; ---error ER_DBACCESS_DENIED_ERROR -alter table routines discard tablespace; ---error ER_DBACCESS_DENIED_ERROR -alter table statistics import tablespace; ---error ER_DBACCESS_DENIED_ERROR -alter table views drop column table_name; ---error ER_DBACCESS_DENIED_ERROR -alter table user_privileges drop index privilege_type; ---error ER_DBACCESS_DENIED_ERROR -alter table schema_privileges drop column is_grantable; ---error ER_DBACCESS_DENIED_ERROR -alter table table_privileges order by constraint_type; ---error ER_DBACCESS_DENIED_ERROR -alter table column_privileges rename to aaxyz; ---error ER_DBACCESS_DENIED_ERROR -alter table table_constraints order by schema_name; ---error ER_DBACCESS_DENIED_ERROR -alter table key_column_usage rename to information_schema.aabxyz; ---error ER_DBACCESS_DENIED_ERROR -alter table triggers rename to information_schema.sql_mode; -# Alter an information_schema table as a limited user with sufficient permissions - -CREATE USER user_4_1_9@localhost; - -grant select, alter, create, insert on *.* to user_4_1_9@localhost; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u5, localhost, user_4_1_9, , db_datadict); ---source suite/funcs_1/include/show_connection.inc - -use db_datadict; - -let $message= user: alter a table from other db; -let $dd_part1= ALTER TABLE information_schema.; -let $dd_part2= ADD f1 INT; -#FIXME: check change from error 1146 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -use information_schema; -let $message= user: alter a table from directly; -let $dd_part1= ALTER TABLE ; -let $dd_part2= ADD f1 INT; -#FIXME: check change from error 1146 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -disconnect u5; - -# cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER user_4_1_9@localhost; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.10:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. -################################################################################ - -use information_schema; - -let $message= root: drop a table from IS; -let $dd_part1= DROP TABLE ; -let $dd_part2=; -#FIXME: check change from error 1051 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -use db_datadict; - -let $message= root: drop a table from other db; -let $dd_part1= DROP TABLE information_schema.; -let $dd_part2=; -#FIXME: check change from error 1051 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -use information_schema; - -# drop an information_schema table as a limited user with sufficient permissions - -CREATE USER user_4_1_10@localhost; - -GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u6,localhost,user_4_1_10,,db_datadict); - -use information_schema; ---source suite/funcs_1/include/show_connection.inc - -let $message= user: drop a table from IS; -let $dd_part1= DROP TABLE ; -let $dd_part2=; -#FIXME: check change from error 1051 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -use db_datadict; - -let $message= user: drop a table from other db; -let $dd_part1= DROP TABLE information_schema.; -let $dd_part2=; -#FIXME: check change from error 1051 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -disconnect u6; - -connection default; ---source suite/funcs_1/include/show_connection.inc - -# cleanup -DROP USER user_4_1_10@localhost; - -# Try to carry out information_schema modification operations with a user other than root having SUPER privileges -CREATE USER user_4_1_11@localhost; - -GRANT SUPER ON *.* TO user_4_1_11@localhost; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u7,localhost,user_4_1_11, ,test); - -use information_schema; ---source suite/funcs_1/include/show_connection.inc - ---error ER_DBACCESS_DENIED_ERROR -drop table routines; - ---error ER_DBACCESS_DENIED_ERROR -alter table collations enable keys; - ---error ER_DBACCESS_DENIED_ERROR -create index i5 on collations( collation_name ); - ---error ER_UNKNOWN_TABLE -create view v1 as select * from schemata; - ---error ER_DBACCESS_DENIED_ERROR -delete from columns; - ---error ER_DBACCESS_DENIED_ERROR -update columns set table_name = 't4' where column_name = 'f2'; - ---error ER_DBACCESS_DENIED_ERROR -insert into collations ( collation_name, character_set_name, id, is_default, - is_compiled, sortlen) - values ('cp1251_bin', 'cp1251', 50, '', '', 0); - -disconnect u7; - -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER user_4_1_11@localhost; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.11:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table -# to any other database. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings - -CREATE DATABASE db_datadict; -CREATE USER 'u_6_401011'@'localhost'; - -#FIXME: check that GRANT ON i_s is no longer allowed ---error ER_DBACCESS_DENIED_ERROR -GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost'; -GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost'; - -FLUSH PRIVILEGES; - ---error ER_DBACCESS_DENIED_ERROR -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; - -let $message= root: move table to other DB; -let $dd_part1= ALTER TABLE information_schema.; -let $dd_part2= RENAME db_datadict.tb_01; -#FIXME: check change from error 1146 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401011, localhost, u_6_401011, , db_datadict); - -USE information_schema; ---source suite/funcs_1/include/show_connection.inc - ---error ER_DBACCESS_DENIED_ERROR -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; - -let $message= user: move table to other DB; -let $dd_part1= ALTER TABLE information_schema.; -let $dd_part2= RENAME db_datadict.tb_01; -#FIXME: check change from error 1146 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -disconnect u_6_401011; - -connection default; ---source suite/funcs_1/include/show_connection.inc - -#cleanup ---disable_warnings -#DROP DATABASE db_datadict; -DROP TABLE IF EXISTS db_datadict.schemata; -DROP USER 'u_6_401011'@'localhost'; ---enable_warnings -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.12:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.12: Ensure that no user may directly add to, alter, or delete -# any data in an INFORMATION_SCHEMA table. -################################################################################ - -# first as root a DELETE check on all tables -let $message= root: delete from IS tables; -let $dd_part1= DELETE FROM information_schema.; -let $dd_part2=; -#FIXME: check change from error 1288 to 1044 ---source suite/funcs_1/datadict/datadict_tables_error_1044.inc -# check UPDATE for all ... ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.tables SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.columns SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.statistics SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.views SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.table_privileges SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.column_privileges SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.table_constraints SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.key_column_usage SET table_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.schemata SET catalog_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.character_sets SET description = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.collations SET character_set_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.collation_character_set_applicability - SET character_set_name = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.routines SET routine_type = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.user_privileges SET grantee = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.schema_privileges SET grantee = 't_4711'; ---error ER_DBACCESS_DENIED_ERROR -UPDATE information_schema.triggers SET sql_mode = 't_4711'; - -CREATE USER 'u_6_401012'@'localhost'; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401012, localhost, u_6_401012, , test); - -use information_schema; - ---error ER_DBACCESS_DENIED_ERROR -insert into information_schema.schemata (catalog_name, schema_name, - default_character_set_name, sql_path) - values (null, information_schema1, utf16, null); -#FIXME: check later the change from 1142 to 1044 (since Mid Sep05) ---error ER_DBACCESS_DENIED_ERROR -alter table information_schema.schemata rename db_datadict1.schemata; -#FIXME: check later the change from 1146 to 1044 (since Mid Sep05) ---error ER_DBACCESS_DENIED_ERROR -alter table information_schema.tables drop column checksum; ---error ER_DBACCESS_DENIED_ERROR -alter table information_schema.statistics modify packed int; ---error ER_DBACCESS_DENIED_ERROR -alter table information_schema.routines modify created int not null; ---error ER_DBACCESS_DENIED_ERROR -alter table information_schema.key_column_usage drop column ordinal_position; ---error ER_DBACCESS_DENIED_ERROR -alter table information_schema.table_privileges - change privilege_type rights_approved varchar(32); ---error ER_DBACCESS_DENIED_ERROR -update columns set table_name = 't4' where column_name = 'f2'; ---error ER_DBACCESS_DENIED_ERROR -delete from information_schema.collations; - -disconnect u_6_401012; - -# cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc - ---disable_warnings -drop table if exists db_datadict1.schemata; -DROP USER 'u_6_401012'@'localhost'; ---enable_warnings -#------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.1.13:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.13: Ensure that the creation of any new database object -# (e.g. table or column) automatically inserts all relevant -# information on that object into every appropriate -# INFORMATION_SCHEMA table. -################################################################################ - -use information_schema; - -let $dbname=db_datadict; -let $message= first check status >before< creating the objects ...; ---source suite/funcs_1/datadict/datadict_show_schema.inc - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; -USE db_datadict; - -eval create table res_t_401013(f1 char(10), f2 char(25), f3 int) - engine = $ENGINE_TYPE; -create view res_v_401013 as select * from res_t_401013; -CREATE USER u_6_401013@localhost; -create procedure sp_6_401013() select 'db_datadict'; -create function fn_6_401013() returns int return 0; -create index i_6_401013 on res_t_401013(f3); - -use information_schema; - -let $message= now check whether all new objects exists in IS ...; ---source suite/funcs_1/datadict/datadict_show_schema.inc - -# cleanup objects -use db_datadict; -drop index i_6_401013 on res_t_401013; -drop table db_datadict.res_t_401013; -drop view db_datadict.res_v_401013; -DROP USER u_6_401013@localhost; -drop procedure sp_6_401013; -drop function fn_6_401013; -drop database db_datadict; - -use information_schema; - -let $message= and now check whether all objects are removed from IS ...; ---source suite/funcs_1/datadict/datadict_show_schema.inc -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.14:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.14: Ensure that the alteration of any existing database object -# automatically updates all relevant information on that -# object in every appropriate INFORMATION_SCHEMA table. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; -USE db_datadict; - -create table res_t_401014(f1 char(10), f2 varchar(25), f3 int); -create view res_v_401014 as select * from res_t_401014; -create procedure sp_6_401014() select 'db_datadict'; -create function fn_6_401014() returns int return 0; - -# check current information in information_schema - -let $dbname=db_datadict; -let $message= show existing objects >before< changing them ...; ---source suite/funcs_1/datadict/datadict_show_schema.inc - -# alter objects - -use db_datadict; - -alter table res_t_401014 change f1 ff1 int; -eval alter table res_t_401014 engine = $OTHER_ENGINE_TYPE; -alter table res_t_401014 change f3 f3_new bigint; -alter view res_v_401014 as select ff1 from res_t_401014; -alter procedure sp_6_401014 sql security invoker; -alter function fn_6_401014 comment 'updated comments'; -alter database db_datadict character set utf8; - -# check updated information in information_schema -let $message= now check whether the changes are visible in IS ...; ---source suite/funcs_1/datadict/datadict_show_schema.inc - - -# cleanup - -use db_datadict; -drop table db_datadict.res_t_401014; -drop view db_datadict.res_v_401014; -drop procedure sp_6_401014; -drop function fn_6_401014; -drop database db_datadict; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.15:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.15: Ensure that the dropping of any existing database object -# automatically deletes all relevant information on that -# object from every appropriate INFORMATION_SCHEMA table. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; -USE db_datadict; - -create table res_t_401015(f1 char(10), f2 text(25), f3 int); -create view res_v_401015 as select * from res_t_401015; -CREATE USER u_6_401015@localhost; -create procedure sp_6_401015() select 'test'; -create function fn_6_401015() returns int return 0; -create index i_6_401015 on res_t_401015(f3); - -let $dbname=db_datadict; -let $message= show existing objects >before< dropping them ...; ---source suite/funcs_1/datadict/datadict_show_schema.inc - -use db_datadict; -drop index i_6_401015 on res_t_401015; -drop table db_datadict.res_t_401015; -drop view db_datadict.res_v_401015; -DROP USER u_6_401015@localhost; -drop procedure sp_6_401015; -drop function fn_6_401015; -#drop database db_datadict; - -let $message= now check they are really gone ...; ---source suite/funcs_1/datadict/datadict_show_schema.inc -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.16:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.16: Ensure that no user may use any INFORMATION_SCHEMA table to -# determine any information on a database and/or its -# structure unless authorized to get that information. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; - -CREATE DATABASE db_hidden; -USE db_hidden; -CREATE TABLE tb_hidden ( c1 TEXT ); - -USE db_datadict; - -CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int); -CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int); - -CREATE USER 'u_6_401016'@'localhost'; -GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost'; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401016, localhost, u_6_401016, , test); - -USE information_schema; - -SELECT table_schema, table_name, engine - FROM TABLES; -# WHERE table_name LIKE 'res_t_401016%'; - -SHOW TABLES; -SELECT * FROM schemata; - -disconnect u_6_401016; - -connection default; ---source suite/funcs_1/include/show_connection.inc - -#FIXME: check that GRANT ON i_s is no longer allowed ---error ER_DBACCESS_DENIED_ERROR -grant usage on information_schema.* to 'u_6_401016'@'localhost'; -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401016_1, localhost, u_6_401016, , db_datadict); - -USE information_schema; -SHOW TABLES; -SELECT * FROM schemata; - -disconnect u_6_401016_1; - -# all tables are checked again later with permission tests - -# cleanup -connection default; -use db_datadict; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'u_6_401016'@'localhost'; -drop table res_t_401016; -drop table res_t_401016_1; -DROP DATABASE db_hidden; -#drop database db_datadict; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.17:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.17: Ensure that the SELECT privilege is granted TO PUBLIC WITH -# GRANT OPTION on every INFORMATION_SCHEMA table. -################################################################################ - -CREATE USER 'u_6_401017'@'localhost'; - -#FIXME: check that GRANT ON i_s is no longer allowed ---error ER_DBACCESS_DENIED_ERROR -grant select on information_schema.* to u_6_401017@localhost; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401017, localhost, u_6_401017, , test); - -use information_schema; - -select * from collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -select * from schemata; -select table_name from tables; ---source suite/funcs_1/datadict/datadict_bug_12777.inc -select table_name, column_name, column_type from columns; -select character_set_name from character_sets; -select collation_name from collations where collation_name <> 'utf8_general_cs'; -select routine_name, routine_type from routines; -select table_name, index_name from statistics; -select table_name from views; -select privilege_type from user_privileges; -select grantee, privilege_type from schema_privileges; -select * from table_privileges; -select column_name, privilege_type from column_privileges; -select table_name,constraint_type from table_constraints; -select table_schema, table_name, column_name from key_column_usage; - -disconnect u_6_401017; - -# cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'u_6_401017'@'localhost'; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.18:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.18: Ensure that the CREATE VIEW privilege on an -# INFORMATION_SCHEMA table may be granted to any user. -################################################################################ - -CREATE USER 'u_6_401018'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost'; -GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost'; - -SHOW GRANTS FOR 'u_6_401018'@'localhost'; -FLUSH PRIVILEGES; - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401018, localhost, u_6_401018, , test); - -USE db_datadict; - -create view db_datadict.v_401018 as - select * from information_schema.schemata; -SELECT * FROM v_401018 ORDER BY 2 DESC; - -disconnect u_6_401018; - -#cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'u_6_401018'@'localhost'; -DROP DATABASE db_datadict; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.19:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.19: Ensure that no other privilege on an INFORMATION_SCHEMA -# table is granted, or may be granted, to any user. -################################################################################ - -CREATE USER 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant alter on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant alter routine on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant create on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant create routine on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant create temporary tables - on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant delete on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant drop on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant execute on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant index on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant insert on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant lock tables on information_schema.* to 'u_6_401019'@'localhost'; - -#FIXME: check GRANT on IS ---error ER_DBACCESS_DENIED_ERROR -grant update on information_schema.* to 'u_6_401019'@'localhost'; - -SELECT * FROM information_schema.table_privileges - WHERE table_schema = "information_schema"; -SELECT * FROM information_schema.column_privileges - WHERE table_schema = "information_schema"; - -# cleanup -DROP USER 'u_6_401019'@'localhost'; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.1.20:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.1.20: Ensure that USE INFORMATION_SCHEMA allows the user to -# switch to the INFORMATION_SCHEMA database, for query -# purposes only. -################################################################################ - -CREATE USER 'u_6_401020'@'localhost'; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401020, localhost, u_6_401020, , test); - -USE information_schema; -SELECT * FROM schemata; - ---error ER_UNKNOWN_TABLE -CREATE TABLE tb_not_allowed ( col TEXT ); -#FIXME 3.2.1.20: bad message: ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema -#FIXME 3.2.1.20: better: ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' - ---error ER_UNKNOWN_TABLE -create view res_v1 as select * from information_schema.schemata; - ---error ER_DBACCESS_DENIED_ERROR -alter table schemata modify catalog_name varchar(255); - ---error ER_DBACCESS_DENIED_ERROR -update schemata set catalog_name = 'abc' - where schema_name = 'information_schema'; - -delimiter //; ---error ER_BAD_DB_ERROR -CREATE PROCEDURE sp_3_2_1_20() - BEGIN - INSERT INTO information_schema.schema_privileges (table_schema,privilege_type) - VALUES('db2','insert'); - END// -delimiter ;// - ---error ER_DBACCESS_DENIED_ERROR -DELETE FROM schemata WHERE schema_name = 'information_schema'; - -disconnect u_6_401020; - -# cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'u_6_401020'@'localhost'; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.2.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.2.1: Ensure that the INFORMATION_SCHEMA.CHARACTER_SETS -# table has the following columns, in the following order: -# -# CHARACTER_SET_NAME (shows a character set name), -# DEFAULT_COLLATE_NAME (shows the name of the default -# collation for that character set), -# DESCRIPTION (shows a descriptive name for that character -# set), -# MAXLEN (shows the number of bytes used to store each -# character supported by that character set). -################################################################################ - -let $is_table= character_sets; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.2.2:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.2.2: Ensure that the table shows the relevant information on -# every character set for which the current user or PUBLIC -# have the USAGE privilege. -################################################################################ - ---source suite/funcs_1/include/show_connection.inc -SELECT * FROM information_schema.character_sets; -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.2.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.2.3: Ensure that the table shows the relevant information on -# every character set for which the current user or PUBLIC -# have the USAGE privilege. -################################################################################ - -# Test requirement is erroneous... we cannot grant / revoke privilege for using -# a character set. -# ------------------------------------------------------------------------------ - -let $message= Testcase 3.2.3.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.3.1: Ensure that the INFORMATION_SCHEMA.COLLATIONS -# table has the following columns, in the following order: -# -# COLLATION_NAME (shows a collation name), -# CHARACTER_SET_NAME (shows the name of the character set to -# which the collation applies), -# ID (shows a numeric identifier for that collation/character -# set combination), -# IS_DEFAULT (shows whether the collation is the default -# collation for the character set shown), -# IS_COMPILED (indicates whether the collation is compiled -# into the MySQL server), -# SORTLEN (shows a value related to the amount of memory -# required to sort strings using this -# collation/character set combination). -################################################################################ - -let $is_table= collations; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.3.2:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.3.2: Ensure that the table shows the relevant information on -# every collation for which the current user or PUBLIC have -# the USAGE privilege. -################################################################################ - -SELECT * FROM collations where collation_name <> 'utf8_general_cs'; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.3.3:; ---source include/show_msg80.inc - -############################################################################### -# Testcase 3.2.3.3: Ensure that the table does not show any information on any -# collations for which the current user and PUBLIC have no -# USAGE privilege. -################################################################################ - -# Test requirement is erroneous... we cannot grant / revoke privilege for using -# a collation. -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.4.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.4.1: Ensure that the -# INFORMATION_SCHEMA.COLLATION_CHARACTER_SET_APPLICABILITY -# table has the following columns, in the following order: -# -# COLLATION_NAME (shows the name of a collation), -# CHARACTER_SET_NAME (shows the name of a character set to -# which that collation applies). -################################################################################ - -let $is_table= collation_character_set_applicability; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.4.2:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.4.2: Ensure that the table shows the relevant information on -# every collation/character set combination for which the -# current user or PUBLIC have the USAGE privilege. -# Note(2007-08-24 mleich): -# The amount of collations/character sets grows with new -# MySQL releases and is a reason why this test might -# fail with differences. Please check the new entries -# and update with expected results afterwards. -################################################################################ - -SELECT * FROM collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.4.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.4.3: Ensure that the table does not show any information on any -# collation/character set combinations for which the current -# user and PUBLIC have no USAGE privilege. -################################################################################ - -# Test requirement is erroneous... we cannot grant / revoke privilege for using a collation. -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.5.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.5.1: Ensure that the INFORMATION_SCHEMA.COLUMN_PRIVILEGES -# table has the following columns, in the following order: -# -# GRANTEE (shows the name of a user who has either granted, -# or been granted a column privilege), -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the name of the schema, or database, -# in which the table for which a column privilege has -# been granted resides), -# TABLE_NAME (shows the name of the table), -# COLUMN_NAME (shows the name of the column on which a -# column privilege has been granted), -# PRIVILEGE_TYPE (shows the type of privilege that was -# granted; must be either SELECT, INSERT, UPDATE, or -# REFERENCES), -# IS_GRANTABLE (shows whether that privilege was granted -# WITH GRANT OPTION). -################################################################################ - -let $is_table= column_privileges; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.5.2: Ensure that the table shows the relevant information on -# every column privilege which has been granted to the -# current user or PUBLIC, or which was granted by the current -# user. -################################################################################ -# Testcase 3.2.5.3: Ensure that the table does not show any information on any -# column privilege which was granted to any user other than -# the current user or PUBLIC, or which was granted by any -# user other than the current user. -################################################################################ -# Testcase 3.2.5.4: Ensure that the table does not show any information on any -# privileges that are not column privileges for the current -# user. -################################################################################ - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; -USE db_datadict; - -CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT); - -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost'; -GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost'; - -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION; -GRANT ALL ON db_datadict.* TO 'user_3'@'localhost'; - -let $select= SELECT * FROM information_schema.column_privileges - WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -eval $select; - -let $message= FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has; ---source include/show_msg.inc - -GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION; - -eval $select; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_5_1, localhost, user_1, , db_datadict); -eval $select; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_5_2, localhost, user_2, , db_datadict); -eval $select; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_5_3, localhost, user_3, , db_datadict); - -let $message= FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES; ---source include/show_msg.inc -SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%"; -SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%"; -eval $select; -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; - -let $message= FIXME: check whether it is intended that *my* grants to others are *NOT* shown here; ---source include/show_msg.inc -eval $select; - -connection user_5_2; ---source suite/funcs_1/include/show_connection.inc -eval $select; - -disconnect user_5_1; -disconnect user_5_2; -disconnect user_5_3; - -#cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc ---disable_warnings -DROP TABLE IF EXISTS db_datadict.res_t40502; -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings - -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.6.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.6.1: Ensure that the INFORMATION_SCHEMA.COLUMNS table has the -# following columns, in the following order: -# -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the name of the database, or schema, -# in which an accessible table resides), -# TABLE_NAME (shows the name of an accessible table), -# COLUMN_NAME (shows the name of a column within that -# table), -# ORDINAL_POSITION (shows the ordinal position of that -# column in that table), -# COLUMN_DEFAULT (shows the column's default value), -# IS_NULLABLE (shows whether the column may accept NULL -# values), -# DATA_TYPE (shows the column's defined data type; keyword -# only), -# CHARACTER_MAXIMUM_LENGTH (shows, for a string column, the -# column's defined maximum length in characters; -# otherwise NULL), -# CHARACTER_OCTET_LENGTH (shows, for a string column, the -# column's defined maximum length in octets; -# otherwise NULL), -# NUMERIC_PRECISION (shows, for a numeric column, the -# column's or data type's defined precision; -# otherwise NULL), -# NUMERIC_SCALE (shows, for a numeric column, the column's -# or data type's defined scale; otherwise NULL), -# CHARACTER_SET_NAME (shows, for a character string column, -# the column's default character set; otherwise NULL), -# COLLATION_NAME (shows, for a character string column, the -# column's default collation; otherwise NULL), -# COLUMN_TYPE (shows the column's complete, defined data -# type), -# COLUMN_KEY (shows whether the column is indexed; possible -# values are PRI if the column is part of a PRIMARY -# KEY, UNI if the column is part of a UNIQUE key, MUL -# if the column is part of an index key that allows -# duplicates), -# EXTRA (shows any additional column definition information, -# e.g. whether the column was defined with the -# AUTO_INCREMENT attribute), -# PRIVILEGES (shows the privileges available to the user on -# the column), -# COLUMN_COMMENT (shows the comment, if any, defined for the -# comment; otherwise NULL). -################################################################################ - -let $is_table= columns; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.6.2 + 3.2.6.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.6.2: Ensure that the table shows the relevant information on the -# columns of every table that is accessible to the current -# user or to PUBLIC. -################################################################################ -# Testcase 3.2.6.3: Ensure that the table does not show any information on the -# columns of any table which is not accessible to the current -# user or PUBLIC. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; - -USE db_datadict; - -create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int); -grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost'; - -create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int); -GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost'; - -FLUSH PRIVILEGES; - -let $select= SELECT * FROM information_schema.columns - ORDER BY table_schema, table_name, ordinal_position; - -# show view of user root ---source suite/funcs_1/datadict/datadict_bug_12777.inc -eval $select; - -# reconnect to mysql with user credential of user u_6_406002_1. ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_6_1, localhost, user_1, , db_datadict); ---source suite/funcs_1/datadict/datadict_bug_12777.inc -eval $select; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_6_2, localhost, user_2, , db_datadict); ---source suite/funcs_1/datadict/datadict_bug_12777.inc -eval $select; - -disconnect user_6_1; -disconnect user_6_2; - -connection default; ---source suite/funcs_1/include/show_connection.inc - -let $message= Show the quotient of COL and CML for all COLUMNS; ---source include/show_msg.inc -SELECT DISTINCT - CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, - DATA_TYPE, - CHARACTER_SET_NAME, - COLLATION_NAME - FROM information_schema.columns - WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 - ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; - -#FIXME 3.2.6.2: check the value 2.0079 tinytext ucs2 ucs2_general_ci -SELECT DISTINCT - CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, - DATA_TYPE, - CHARACTER_SET_NAME, - COLLATION_NAME - FROM information_schema.columns - WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 - ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; - -SELECT DISTINCT - CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, - DATA_TYPE, - CHARACTER_SET_NAME, - COLLATION_NAME - FROM information_schema.columns - WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL - ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; - -echo --> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values; -echo --> are 0, which is intended behavior, and the result of 0 / 0 IS NULL; ---source suite/funcs_1/datadict/datadict_bug_12777.inc -SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, - TABLE_SCHEMA, - TABLE_NAME, - COLUMN_NAME, - DATA_TYPE, - CHARACTER_MAXIMUM_LENGTH, - CHARACTER_OCTET_LENGTH, - CHARACTER_SET_NAME, - COLLATION_NAME, - COLUMN_TYPE - FROM information_schema.columns - ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; - -#cleanup -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE IF EXISTS t_6_406001; -DROP TABLE IF EXISTS t_6_406002; -DROP DATABASE IF EXISTS db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.7.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.7.1: Ensure that the INFORMATION_SCHEMA.KEY_COLUMN_USAGE -# table has the following columns, in the following order: -# -# CONSTRAINT_CATALOG (always shows NULL), -# CONSTRAINT_SCHEMA (shows the database, or schema, in which -# an accessible constraint, or index, resides), -# CONSTRAINT_NAME (shows the name of the accessible -# constraint), -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the database, or schema, in which the -# table constrained by that constraint resides), -# TABLE_NAME (shows the name of the table constrained by the -# constraint), -# COLUMN_NAME (shows the name of a column that is the index -# key, or part of the index key), -# ORDINAL_POSITION (shows the ordinal position of the column -# within the constraint index), -# POSITION_IN_UNIQUE_CONSTRAINT (shows, for a foreign key -# column, the ordinal position of the referenced -# column within the referenced unique index; -# otherwise NULL). -# added with 5.0.6: REFERENCED_TABLE_SCHEMA, -# REFERENCED_TABLE_NAME, -# REFERENCED_COLUMN_NAME -################################################################################ - -let $is_table= key_column_usage; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.7.2 + 3.2.7.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.7.2: Ensure that the table shows the relevant information on -# every column, defined to be part of an index key, which is -# accessible to the current user or to PUBLIC. -################################################################################ -# Testcase 3.2.7.3: Ensure that the table does not show any information on any -# indexed column that is not accessible to the current user -# or PUBLIC. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings -CREATE DATABASE db_datadict; - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; - -USE db_datadict; - -CREATE TABLE t_40701 ( - f1 INT NOT NULL, PRIMARY KEY(f1), - f2 INT, INDEX f2_ind(f2) - ); -GRANT SELECT ON t_40701 to 'user_1'@'localhost'; - -CREATE TABLE t_40702 ( - f1 INT NOT NULL, PRIMARY KEY(f1), - f2 INT, INDEX f2_ind(f2) - ); -GRANT SELECT ON t_40702 to 'user_2'@'localhost'; -#FIXME: add foreign keys - -FLUSH PRIVILEGES; - -let $select= SELECT * FROM information_schema.key_column_usage - ORDER BY constraint_catalog, constraint_schema, constraint_name, - table_catalog, table_schema, table_name, ordinal_position; - -# show view of user root -eval $select; - -# reconnect to mysql with user credential of user u_6_406002_1. ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_7_1, localhost, user_1, , db_datadict); -eval $select; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_7_2, localhost, user_2, , db_datadict); -eval $select; - -disconnect user_7_1; -disconnect user_7_2; - -#cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE t_40701; -DROP TABLE t_40702; -DROP DATABASE IF EXISTS db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.8.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.8.1: Ensure that the INFORMATION_SCHEMA.ROUTINES -# table has the following columns, in the following order: -# -# SPECIFIC_NAME (shows the name of an accessible stored -# procedure, or routine), -# ROUTINE_CATALOG (always shows NULL), -# ROUTINE_SCHEMA (shows the database, or schema, in which -# the routine resides), -# ROUTINE_NAME (shows the same stored procedure name), -# ROUTINE_TYPE (shows whether the stored procedure is a -# procedure or a function), -# DTD_IDENTIFIER (shows, for a function, the complete -# data type definition of the value the function will -# return; otherwise NULL), -# ROUTINE_BODY (shows the language in which the stored -# procedure is written; currently always SQL), -# ROUTINE_DEFINITION (shows as much of the routine body as -# is possible in the allotted space), -# EXTERNAL_NAME (always shows NULL), -# EXTERNAL_LANGUAGE (always shows NULL), -# PARAMETER_STYLE (shows the routine's parameter style; -# always SQL), -# IS_DETERMINISTIC (shows whether the routine is -# deterministic), -# SQL_DATA_ACCESS (shows the routine's defined -# sql-data-access clause value), -# SQL_PATH (always shows NULL), -# SECURITY_TYPE (shows whether the routine's defined -# security_type is 'definer' or 'invoker'), -# CREATED (shows the timestamp of the time the routine was -# created), -# LAST_ALTERED (shows the timestamp of the time the routine -# was last altered), -# SQL_MODE (shows the sql_mode setting at the time the -# routine was created), -# ROUTINE_COMMENT (shows the comment, if any, defined for -# the routine; otherwise NULL), -# DEFINER (shows the user who created the routine). -################################################################################ - -let $is_table= routines; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.8.2 + 3.2.8.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.8.2: Ensure that the table shows the relevant information on -# every SQL-invoked routine (i.e. stored procedure) which is -# accessible to the current user or to PUBLIC. -################################################################################ -# Testcase 3.2.8.3: Ensure that the table does not show any information on any -# stored procedure that is not accessible to the current user -# or PUBLIC.; -############################################################################## - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; ---enable_warnings - -CREATE DATABASE db_datadict; -USE db_datadict; - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; - -CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); - -INSERT INTO res_6_408002_1(f1, f2, f3, f4) - VALUES('abc', 'xyz', '1989-11-09', 0815); - ---disable_warnings -DROP PROCEDURE IF EXISTS sp_6_408002_1; ---enable_warnings - -delimiter //; -CREATE PROCEDURE sp_6_408002_1() -BEGIN - SELECT * FROM db_datadict.res_6_408002_1; -END// -delimiter ;// - -CREATE DATABASE db_datadict_2; -USE db_datadict_2; - -CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); - -INSERT INTO res_6_408002_2(f1, f2, f3, f4) - VALUES('abc', 'xyz', '1990-10-03', 4711); - ---disable_warnings -DROP PROCEDURE IF EXISTS sp_6_408002_2; ---enable_warnings - -delimiter //; -CREATE PROCEDURE sp_6_408002_2() -BEGIN - SELECT * FROM db_datadict_2.res_6_408002_2; -END// -delimiter ;// - -GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost'; - -GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost'; - -GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_8_1, localhost, user_1, , db_datadict); - ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.routines; -disconnect user_8_1; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_8_2, localhost, user_2, , db_datadict); - ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.routines; -disconnect user_8_2; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_8_3, localhost, user_3, , test); - ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.routines; -disconnect user_8_3; - -# clean-up -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; - -use db_datadict; -DROP TABLE res_6_408002_1; -DROP PROCEDURE sp_6_408002_1; - -USE db_datadict_2; -DROP TABLE res_6_408002_2; -DROP PROCEDURE sp_6_408002_2; - -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.8.4:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.8.4: Ensure that a stored procedure with a routine body that is -# too large to fit into the -# INFORMATION_SCHEMA.ROUTINES.ROUTINE_DEFINITION column -# correctly shows as much of the information as is possible -# within the allotted size. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings - -CREATE DATABASE db_datadict; -USE db_datadict; - -create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); - -insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10); - ---disable_warnings -drop procedure if exists sp_6_408004; ---enable_warnings - -create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); - -insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10); - -let $message= Checking the max. possible length of (currently) 4 GByte is not possible in this environment here.; ---source include/show_msg.inc - -delimiter //; -create procedure sp_6_408004 () -begin - declare done integer default 0; - declare variable_number_1 longtext; - declare variable_number_2 mediumint; - declare variable_number_3 longblob; - declare variable_number_4 real; - declare variable_number_5 year; - declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10; - declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10; - declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10; - declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10; - declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10; - declare continue handler for sqlstate '02000' set done = 1; - begin - open cursor_number_1; - while done <> 1 do - fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; - if done <> 0 then - insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, - variable_number_4, variable_number_5); - end if; - end while; - begin - begin - set done = 0; - open cursor_number_2; - while done <> 1 do - fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; - if done <> 0 then - insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); - end if; - end while; - end; - set done = 0; - open cursor_number_3; - while done <> 1 do - fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; - if done <> 0 then - insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); - end if; - end while; - end; - end; - begin - set done = 0; - open cursor_number_4; - while done <> 1 do - fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; - if done <> 0 then - insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); - end if; - end while; - end; - begin - set @a='test row'; - select @a; - select @a; - select @a; - end; - begin - set done = 0; - open cursor_number_5; - while done <> 1 do - fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; - if done <> 0 then - insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); - end if; - end while; - end; - begin - set @a='test row'; - select @a; - select @a; - select @a; - end; -end// -delimiter ;// - -call sp_6_408004 (); -select * from res_6_408004_2; - ---vertical_results ---replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT *, LENGTH(routine_definition) - FROM information_schema.routines - WHERE routine_schema = 'db_datadict'; ---horizontal_results - -# clean-up -use db_datadict; -drop procedure sp_6_408004; -drop table res_6_408004_1; -drop table res_6_408004_2; -use test; -drop database db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.9.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.9.1: Ensure that the INFORMATION_SCHEMA.SCHEMATA -# table has the following columns, in the following order: -# -# CATALOG_NAME (always shows NULL), -# SCHEMA_NAME (shows the name of a database, or schema, on -# which the current user or PUBLIC has privileges), -# DEFAULT_CHARACTER_SET_NAME (shows the name of that -# database's default character set), -# DEFAULT_COLLATION_NAME (shows the database default -# collation) -# SQL_PATH (always shows NULL). -################################################################################ - -let $is_table= schemata; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.9.2 + 3.2.9.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.9.2: Ensure that the table shows the relevant information for -# every database on which the current user or PUBLIC have -# privileges. -################################################################################ -# Testcase 3.2.9.3: Ensure that the table does not show any information on any -# databases on which the current user and PUBLIC have no -# privileges. -################################################################################ - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; ---enable_warnings - -CREATE DATABASE db_datadict_1; -CREATE DATABASE db_datadict_2; - -GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost'; - -FLUSH PRIVILEGES; - -# shows db_1 ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_9_1, localhost, user_1, , db_datadict_1); - -SELECT COUNT(*) FROM information_schema.schemata; -SELECT * FROM information_schema.schemata; -disconnect user_9_1; - - -# shows db_2 ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_9_2, localhost, user_2, , db_datadict_2); - -SELECT COUNT(*) FROM information_schema.schemata; -SELECT * FROM information_schema.schemata; -disconnect user_9_2; - - -# shows neither db_1 nor db_2 ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_9_3, localhost, user_3, , test); - -SELECT COUNT(*) FROM information_schema.schemata; -SELECT * FROM information_schema.schemata; -disconnect user_9_3; - - -# clean-up -connection default; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE db_datadict_1; -DROP DATABASE db_datadict_2; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.10.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.10.1: Ensure that the INFORMATION_SCHEMA.TABLE_CONSTRAINTS -# table has the following columns, in the following order: -# -# CONSTRAINT_CATALOG (always shows NULL), -# CONSTRAINT_SCHEMA (shows the database, or schema, in which -# a constraint an accessible table resides), -# CONSTRAINT_NAME (shows the name of a constraint defined on -# an accessible table), -# TABLE_SCHEMA (shows the database, or schema, in which the -# table resides), -# TABLE_NAME (shows the name of the table), -# CONSTRAINT_TYPE (shows the type of the constraint; either -# 'primary key', 'foreign key', 'unique', 'check'). -################################################################################ - -let $is_table= table_constraints; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.10.2 + 3.2.10.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.10.2: Ensure that the table shows the relevant information on all -# constraints defined on every table for which the current -# user or PUBLIC have privileges. -################################################################################ -# Testcase 3.2.10.3: Ensure that the table does not show any information on -# constraints defined on any table for which the current user -# and PUBLIC have no privileges. -################################################################################ - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; ---enable_warnings - -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; - -USE db_datadict; - -CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); - -USE db_datadict_2; - -CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); - -GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost'; - -FLUSH PRIVILEGES; - - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_10_1, localhost, user_1, , db_datadict); - -SELECT * FROM information_schema.table_constraints; -SELECT COUNT(*) FROM information_schema.table_constraints; -disconnect user_10_1; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_10_2, localhost, user_2, , db_datadict_2); - -SELECT * FROM information_schema.table_constraints; -SELECT COUNT(*) FROM information_schema.table_constraints; -disconnect user_10_2; - -# clean-up -connection default; -use db_datadict; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE res_6_401003_1; -USE db_datadict_2; -DROP TABLE res_6_401003_2; -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.11.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.11.1: Ensure that the INFORMATION_SCHEMA.TABLE_PRIVILEGES -# table has the following columns, in the following order: -# -# GRANTEE (shows the name of a user who has either granted, -# or been granted a table privilege), -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the name of the schema, or database, -# in which the table for which a privilege has been -# granted resides), -# TABLE_NAME (shows the name of the table), -# PRIVILEGE_TYPE (shows the type of privilege that was -# granted; must be either SELECT, INSERT, UPDATE, -# DELETE, REFERENCES, ALTER, INDEX, DROP, or CREATE -# VIEW), -# IS_GRANTABLE (shows whether that privilege was granted -# WITH GRANT OPTION). -################################################################################ - -let $is_table= table_privileges; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.11.2: Ensure that the table shows the relevant information on -# every table privilege which has been granted to the current -# user or PUBLIC, or which was granted by the current user. -################################################################################ -# Testcase 3.2.11.3: Ensure that the table does not show any information on any -# table privilege which was granted to any user other than -# the current user or PUBLIC, or which was granted by any -# user other than the current user. -################################################################################ -# Testcase 3.2.11.4: Ensure that the table does not show any information on any -# privileges that are not table privileges for the current -# user. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings - -create database db_datadict; - -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; - -use db_datadict; - -create table tb1(f1 int, f2 int, f3 int); - -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_11_1, localhost, user_1, , db_datadict); - -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; - -SELECT * FROM information_schema.table_privileges - WHERE table_name LIKE 'tb%'; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_11_2, localhost, user_2, , db_datadict); - -# we see only table privileges for this user, and not any other privileges -SELECT * FROM information_schema.table_privileges; - -SELECT USER(), COUNT(*) - FROM information_schema.table_privileges - WHERE grantee = USER(); - -SELECT USER(), COUNT(*) - FROM information_schema.table_privileges - WHERE grantee = "'user_2'@'localhost'"; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_11_3, localhost, user_3, , db_datadict); - -# we see only table privileges for this user, and not any other privileges -SELECT * FROM information_schema.table_privileges; - -connection default; ---source suite/funcs_1/include/show_connection.inc - -# we see only 'public' table privileges -SELECT * FROM information_schema.table_privileges; - -# clean-up -connection default; ---source suite/funcs_1/include/show_connection.inc -disconnect user_11_1; -disconnect user_11_2; -disconnect user_11_3; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -drop table db_datadict.tb1; -drop table db_datadict.tb3; -use test; -drop database db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.12.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.12.1: Ensure that the INFORMATION_SCHEMA.TABLES -# table has the following columns, in the following order: -# -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the name of the database, or schema, -# in which an accessible table resides), -# TABLE_NAME (shows the name of a table which the current -# user may access), -# TABLE_TYPE (shows whether the table is a BASE TABLE, a -# TEMPORARY table, or a VIEW), -# ENGINE (shows the storage engine used for the table), -# VERSION (shows the version number of the table's .frm -# file), -# ROW_FORMAT (shows the table's row storage format; either -# FIXED, DYNAMIC or COMPRESSED), -# TABLE_ROWS (shows the number of rows in the table), -# AVG_ROW_LENGTH (shows the average length of the table's -# rows), -# DATA_LENGTH (shows the length of the table's data file), -# MAX_DATA_LENGTH (shows the maximum length of the table's -# data file), -# INDEX_LENGTH (shows the length of the index file -# associated with the table), -# DATA_FREE (shows the number of allocated, unused bytes), -# AUTO_INCREMENT (shows the next AUTO_INCREMENT value, where -# applicable), -# CREATE_TIME (shows the timestamp of the time the table was -# created), -# UPDATE_TIME (shows the timestamp of the time the table's -# data file was last updated), -# CHECK_TIME (shows the timestamp of the time the table was -# last checked), -# TABLE_COLLATION (shows the table's default collation), -# CHECKSUM (shows the live checksum value for the table, if -# any; otherwise NULL), -# CREATE_OPTIONS (shows any additional options used in the -# table's definition; otherwise NULL), -# TABLE_COMMENT (shows the comment added to the table's -# definition; otherwise NULL). -################################################################################ - -let $is_table= tables; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.12.2 + 3.2.12.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.12.2: Ensure that the table shows the relevant information on -# every base table and view on which the current user or -# PUBLIC has privileges. -################################################################################ -# Testcase 3.2.12.3: Ensure that the table does not show any information on any -# tables on which the current user and public have no -# privileges. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings - -create database db_datadict; - -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.* - TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; - -use db_datadict; - -create table tb1(f1 int, f2 int, f3 int); - -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_12_1, localhost, user_1, , db_datadict); - -# tb2 is not granted to anyone -CREATE TABLE tb2 (f1 DECIMAL); -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; -GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost'; - -CREATE VIEW v3 AS SELECT * FROM tb3; -GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost'; - -#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until -#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of -#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one -#FIXME 3.2.12: with 'less' replace -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME -# 20 CREATE_OPTIONS -if ($have_bug_11589) -{ ---disable_ps_protocol -} ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#" -SELECT * FROM information_schema.tables - WHERE table_schema = 'information_schema'; -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.tables - WHERE NOT( table_schema = 'information_schema'); ---enable_ps_protocol - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_12_2, localhost, user_2, , db_datadict); - -# we see only tables for this user, and not any other -#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until -#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of -#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one -#FIXME 3.2.12: with 'less' replace -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME -# 20 CREATE_OPTIONS -if ($have_bug_11589) -{ ---disable_ps_protocol -} ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#" -SELECT * FROM information_schema.tables - WHERE table_schema = 'information_schema'; -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.tables - WHERE NOT( table_schema = 'information_schema'); ---enable_ps_protocol - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_12_3, localhost, user_3, , db_datadict); - -# we see only tables for this user, and not any other -# -#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until -#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of -#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one -#FIXME 3.2.12: with 'less' replace -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME -# 20 CREATE_OPTIONS -if ($have_bug_11589) -{ ---disable_ps_protocol -} ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#" -SELECT * FROM information_schema.tables - WHERE table_schema = 'information_schema'; -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.tables - WHERE NOT( table_schema = 'information_schema'); ---enable_ps_protocol - -connection default; ---source suite/funcs_1/include/show_connection.inc - -# we see only 'public' tables -# -#FIXME 3.2.12: we split the "SELECT * FROM tables" in two parts until -#FIXME 3.2.12: Bug #12397: wrong values shown in column CREATE_OPTIONS of -#FIXME 3.2.12: INFORMATION_SCHEMA.TABLES is solved, one with 'more' and one -#FIXME 3.2.12: with 'less' replace -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME -# 20 CREATE_OPTIONS -if ($have_bug_11589) -{ ---disable_ps_protocol -} ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" 20 "#CO#" -SELECT * FROM information_schema.tables - WHERE table_schema = 'information_schema'; -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -# 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 17 CHECK_TIME ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM information_schema.tables - WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); ---enable_ps_protocol - -# clean-up -disconnect user_12_1; -disconnect user_12_2; -disconnect user_12_3; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP TABLE db_datadict.tb1; -DROP TABLE db_datadict.tb3; -DROP VIEW db_datadict.v3; -USE test; -DROP DATABASE db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.13.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.13.1: Ensure that the INFORMATION_SCHEMA.VIEWS -# table has the following columns, in the following order: -# -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the database, or schema, in which an -# accessible view resides), -# TABLE_NAME (shows the name of a view accessible to the -# current user), -# VIEW_DEFINITION (shows the SELECT statement that makes -# up the view's definition), -# CHECK_OPTION (shows the value of the WITH CHECK OPTION -# clause used to define the view, either NONE, LOCAL -# or CASCADED), -# IS_UPDATABLE (shows whether the view is an updatable -# view), -# DEFINER (added with 5.0.14), -# SECURITY_TYPE (added with 5.0.14). -################################################################################ - -let $is_table= views; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.13.2 + 3.2.13.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.13.2: Ensure that the table shows the relevant information on -# every view for which the current user or PUBLIC has the -# SHOW CREATE VIEW privilege. -################################################################################ -# Testcase 3.2.13.3: Ensure that the table does not show any information on any -# views for which the current user and PUBLIC have no SHOW -# CREATE VIEW privilege. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings - -CREATE DATABASE db_datadict; - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_no_views'@'localhost'; -USE db_datadict; - -CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT); -CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302; -CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302; - -GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost'; -GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost'; - -FLUSH PRIVILEGES; - -SELECT * FROM information_schema.views; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_13_1, localhost, user_1, , test); - -SELECT * FROM information_schema.views; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_13_2, localhost, user_2, , test); - -SELECT * FROM information_schema.views; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_no_views, localhost, user_no_views, , test); - -SELECT * FROM information_schema.views; - -# clean-up -connection default; ---source suite/funcs_1/include/show_connection.inc -disconnect user_13_1; -disconnect user_13_2; -disconnect user_no_views; -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_no_views'@'localhost'; -DROP VIEW v_granted_to_1; -DROP TABLE tb_401302; -DROP VIEW v_granted_glob; -USE test; -DROP DATABASE db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.14.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.14.1: Ensure that the INFORMATION_SCHEMA.STATISTICS -# table has the following columns, in the following order: -# -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the database, or schema, in which a -# table indexed by an accessible index resides), -# TABLE_NAME (shows the name of the indexed table), -# NON_UNIQUE (shows whether the index may contain duplicate -# values; 0 if it cannot, 1 if it can), -# INDEX_SCHEMA (shows the database, or schema, in which an -# accessible index resides), -# INDEX_NAME (shows the name of an index which the current -# user may access), -# SEQ_IN_INDEX (shows the ordinal position of an indexed -# column within the index), -# COLUMN_NAME (shows the name of a column that comprises -# some, or all, of an index key), -# COLLATION (shows how the column is sorted in the index; -# either A for ascending or NULL for unsorted -# columns), -# CARDINALITY (shows the number of unique values in the -# index), -# SUB_PART (shows the number of indexed characters if the -# index is a prefix index), -# PACKED (shows how the index key is packed), -# NULLABLE (shows whether the index column may contain NULL -# values), -# INDEX_TYPE (shows the index type; either BTREE, FULLTEXT, -# HASH or RTREE), -# COMMENT (shows a comment on the index, if any). -################################################################################ - -let $is_table= statistics; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.14.2 + 3.2.14.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.14.2: Ensure that the table shows the relevant information on -# every index which the current user or PUBLIC may access -# (usually because privileges on the indexed table have been -# granted). -################################################################################ -# Testcase 3.2.14.3: Ensure that the table does not show any information on any -# indexes which the current user and PUBLIC may not access. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; ---enable_warnings - -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; - -create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION; - -USE db_datadict_2; - -create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost'; - -FLUSH PRIVILEGES; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_14_1, localhost, user_1, , test); -SELECT * FROM information_schema.statistics; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_14_2, localhost, user_2, , test); -SELECT * FROM information_schema.statistics; - -connection default; ---source suite/funcs_1/include/show_connection.inc -REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost'; -SELECT * FROM information_schema.statistics -WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); - -# nothing visible for user_1 -connection user_14_1; ---source suite/funcs_1/include/show_connection.inc -SELECT * FROM information_schema.statistics; - -# no changes visible for user_2 -connection user_14_2; ---source suite/funcs_1/include/show_connection.inc -SELECT * FROM information_schema.statistics; - -# cleanup -connection default; ---source suite/funcs_1/include/show_connection.inc -disconnect user_14_1; -disconnect user_14_2; -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE tb_6_401402_1; -DROP TABLE tb_6_401402_2; -USE test; -DROP DATABASE db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.15.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.15.1: Ensure that the INFORMATION_SCHEMA.SCHEMA_PRIVILEGES -# table has the following columns, in the following order: -# -# GRANTEE (shows a user to whom a schema privilege has been -# granted), -# TABLE_CATALOG (always shows NULL), -# TABLE_SCHEMA (shows the name of the database, or schema, -# on which the privilege has been granted), -# PRIVILEGE_TYPE (shows the granted privilege), -# IS_GRANTABLE (shows whether the privilege was granted WITH -# GRANT OPTION). -################################################################################ - -let $is_table= schema_privileges; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.15.2:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.15.2: Ensure that the table shows the relevant information on -# every schema-level privilege which has been granted to the -# current user or to PUBLIC, or has been granted by the -# current user. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; ---enable_warnings - -create database db_datadict; -create database db_datadict_2; - -CREATE USER 'u_6_401502'@'localhost'; - -use db_datadict; - -create table res_6_401502(f1 int, f2 int, f3 int); -grant insert on db_datadict.* to 'u_6_401502'@'localhost'; - -FLUSH PRIVILEGES; - -SELECT * FROM information_schema.schema_privileges; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401502, localhost, u_6_401502, , test); - -SELECT * FROM information_schema.schema_privileges; - -disconnect u_6_401502; - -# clean-up - -connection default; -use db_datadict; ---source suite/funcs_1/include/show_connection.inc -DROP USER 'u_6_401502'@'localhost'; -drop table res_6_401502; -use test; -drop database db_datadict; -drop database db_datadict_2; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.15.3 + 3.2.15.4:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.15.3: Ensure that the table does not show any information on any -# schema-level privileges which have been granted to users -# other than the current user or to PUBLIC, or that have been -# granted by any user other than the current user. -################################################################################ -# Testcase 3.2.15.4: Ensure that the table does not show any information on any -# privileges that are not schema-level privileges for the -# current user. -################################################################################ - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; ---enable_warnings - -create database db_datadict; -create database db_datadict_2; - -CREATE USER 'u_6_401503_1'@'localhost'; -CREATE USER 'u_6_401503_2'@'localhost'; -CREATE USER 'u_6_401503_3'@'localhost'; - -use db_datadict; - -create table res_6_401503_1(f1 int, f2 int, f3 int); - -use db_datadict_2; - -create table res_6_401503_2(f1 int, f2 int, f3 int); - -grant update on db_datadict.* to 'u_6_401503_1'@'localhost'; -grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost'; - -FLUSH PRIVILEGES; - -SELECT * FROM information_schema.schema_privileges; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401503_1, localhost, u_6_401503_1, , test); - -SELECT * FROM information_schema.schema_privileges; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401503_2, localhost, u_6_401503_2, , test); - -SELECT * FROM information_schema.schema_privileges; - -# should not show anything ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (u_6_401503_3, localhost, u_6_401503_3, , test); - -SELECT * FROM information_schema.schema_privileges; - -# clean-up - -connection default; ---source suite/funcs_1/include/show_connection.inc -disconnect u_6_401503_1; -disconnect u_6_401503_2; -disconnect u_6_401503_3; -use db_datadict; -DROP USER 'u_6_401503_1'@'localhost'; -DROP USER 'u_6_401503_2'@'localhost'; -DROP USER 'u_6_401503_3'@'localhost'; -drop table res_6_401503_1; -use db_datadict_2; -drop table res_6_401503_2; -use test; -drop database db_datadict; -drop database db_datadict_2; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.16.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.16.1: Ensure that the INFORMATION_SCHEMA.USER_PRIVILEGES -# table has the following columns, in the following order: -# -# GRANTEE (shows a user to whom a user privilege has been -# granted), -# TABLE_CATALOG (always shows NULL), -# PRIVILEGE_TYPE (shows the granted privilege), -# IS_GRANTABLE (shows whether the privilege was granted WITH -# GRANT OPTION). -################################################################################ - -#----------- -# Bug #12063 column 'TABLE_SCHEMA' is missing in table -# INFORMATION_SCHEMA.USER_PRIVILEGE -# ... is not a bug, it has been added by mistake in the TP requirement document. -#----------- - -let $is_table= user_privileges; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.16.2: Ensure that the table shows the relevant information on -# every user privilege which has been granted to the current -# user or to PUBLIC, or has been granted by the current user. -################################################################################ -# Testcase 3.2.16.3: Ensure that the table does not show any information on any -# user privileges which have been granted to users other than -# the current user or have been granted by any user other -# than the current user. -################################################################################ -# Testcase 3.2.16.4: Ensure that the table does not show any information on any -# privileges that are not user privileges for the current -# user. -################################################################################ - -#FIXME 3.2.16: - when Bug #12269 is fixed a some of the outputs here may be -#FIXME 3.2.16: deleted as I added them for checking where / which information -#FIXME 3.2.16: is shown. - ---disable_warnings -DROP DATABASE IF EXISTS db_datadict; ---enable_warnings - -let $cmd1= SELECT * FROM information_schema.user_privileges - WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -let $cmd2= SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -let $cmd3= SHOW GRANTS; - -CREATE DATABASE db_datadict; - -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; - -GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; - -GRANT INSERT ON *.* TO 'user_2'@'localhost'; -GRANT UPDATE ON *.* TO 'user_2'@'localhost'; - -FLUSH PRIVILEGES; - -let $message= FIXME (see Bug 12269) Here we expect more than only for user_1; ---source include/show_msg.inc -eval $cmd1; -eval $cmd2; -eval $cmd3; - -let $message= add GRANT OPTION db_datadict.* to user_1; ---source include/show_msg.inc -GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; - -let $message= FIXME (see Bug 12269) Here the is missing for the GRANT OPTION for user_1; ---source include/show_msg.inc -eval $cmd1; -eval $cmd2; -eval $cmd3; - -FLUSH PRIVILEGES; - - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_16_1, localhost, user_1, , db_datadict); -eval $cmd1; -eval $cmd2; -eval $cmd3; - -# add SELECT on *.* to user_1 -let $message= Now add SELECT on *.* to user_1; ---source include/show_msg.inc - -connection default; ---source suite/funcs_1/include/show_connection.inc -GRANT SELECT ON *.* TO 'user_1'@'localhost'; -let $message= Here is shown correctly for user_1; ---source include/show_msg.inc -eval $cmd1; -eval $cmd2; -eval $cmd3; - -FLUSH PRIVILEGES; -eval $cmd1; -eval $cmd2; -eval $cmd3; - -# check that this appears -connection user_16_1; ---source suite/funcs_1/include/show_connection.inc -eval $cmd1; -eval $cmd2; -eval $cmd3; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_16_2, localhost, user_2, , db_datadict); -eval $cmd1; ---error ER_TABLEACCESS_DENIED_ERROR -eval $cmd2; -eval $cmd3; - ---replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK -connect (user_16_3, localhost, user_3, , test); -eval $cmd1; ---error ER_TABLEACCESS_DENIED_ERROR -eval $cmd2; -eval $cmd3; - -let $message= revoke privileges from user_1; ---source include/show_msg.inc - -connection default; ---source suite/funcs_1/include/show_connection.inc -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -eval $cmd1; -eval $cmd2; -eval $cmd3; - -# check for changes -connection user_16_1; ---source suite/funcs_1/include/show_connection.inc -eval $cmd1; ---error ER_TABLEACCESS_DENIED_ERROR -eval $cmd2; -eval $cmd3; - ---source suite/funcs_1/include/show_connection.inc -# checks entered before bug #12269 was reported -# OK, user_1 has no privs here ---error ER_TABLEACCESS_DENIED_ERROR -CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); ---source suite/funcs_1/include/show_connection.inc -eval $cmd1; ---error ER_TABLEACCESS_DENIED_ERROR -eval $cmd2; -eval $cmd3; -# OK, user_1 has no privs here ---error ER_TABLEACCESS_DENIED_ERROR -CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); - -let $message= add ALL on db_datadict.* (and select on mysql.user) to user_1; ---source include/show_msg.inc - -connection default; ---source suite/funcs_1/include/show_connection.inc - -GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; -eval $cmd1; -eval $cmd2; -eval $cmd3; - -# check for changes -connection user_16_1; ---source suite/funcs_1/include/show_connection.inc -eval $cmd1; -eval $cmd2; -eval $cmd3; - -# OK, user_1 has no privs here ---error ER_TABLEACCESS_DENIED_ERROR -CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); - -# using 'USE' lets the server read the privileges new, so now the CREATE works -USE db_datadict; ---source suite/funcs_1/include/show_connection.inc -eval $cmd1; -eval $cmd2; -eval $cmd3; -CREATE TABLE tb_57 ( c1 TEXT ); - -let $message= revoke privileges from user_1; ---source include/show_msg.inc - -connection default; ---source suite/funcs_1/include/show_connection.inc -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -FLUSH PRIVILEGES; -eval $cmd1; -eval $cmd2; -eval $cmd3; - -# check for changes -connection user_16_1; ---source suite/funcs_1/include/show_connection.inc -eval $cmd1; ---error ER_TABLEACCESS_DENIED_ERROR -eval $cmd2; -eval $cmd3; -# WORKS, as the existing old privileges are used! -CREATE TABLE db_datadict.tb_58 ( c1 TEXT ); -# existing privileges are "read" new when USE is called, user has no priviliges ---error ER_DBACCESS_DENIED_ERROR -USE db_datadict; -#FIXME 3.2.16: check that it is correct that this now 'works': --error 1142 -CREATE TABLE db_datadict.tb_59 ( c1 TEXT ); - - -# clean-up -connection default; ---source suite/funcs_1/include/show_connection.inc -disconnect user_16_1; -disconnect user_16_2; -disconnect user_16_3; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.17: Checks on Performance - not here in this script!; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.17.1: Ensure that every INFORMATION_SCHEMA table shows all the -# correct information, and no incorrect information, for a -# database to which 100 different users, each of which has a -# randomly issued set of privileges and access to a -# randomly chosen set of database objects, have access. -# The database should contain a mixture of all types of -# database objects (i.e. tables, views, stored procedures, -# triggers). -################################################################################ - -################################################################################ -# Testcase 3.2.17.2: Ensure that every INFORMATION_SCHEMA table shows all the -# correct information, and no incorrect information, for 10 -# different databases to which 50 different users, each of -# which has a randomly issued set of privileges and access -# to a randomly chosen set of database objects in two or -# more of the databases, have access. The databases should -# each contain a mixture of all types of database objects -# (i.e. tables, views, stored procedures, triggers). -################################################################################ - -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.18.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.18.1: Ensure that the INFORMATION_SCHEMA.TRIGGERS -# table has the following columns, in the following order: -# -# -# (FIXME - list copied from WL#1996) -# -# TRIGGER_CATALOG NULL -# TRIGGER_SCHEMA -# TRIGGER_NAME -# EVENT_MANIPULATION -# EVENT_OBJECT_CATALOG NULL -# EVENT_OBJECT_SCHEMA -# EVENT_OBJECT_TABLE -# ACTION_ORDER NULL -# ACTION_CONDITION NULL -# ACTION_STATEMENT -# ACTION_ORIENTATION -# ACTION_TIMING -# ACTION_REFERENCE_OLD_TABLE NULL -# ACTION_REFERENCE_NEW_TABLE NULL -# ACTION_REFERENCE_OLD_ROW -# ACTION_REFERENCE_NEW_ROW -# CREATED -# SQL_MODE -# -################################################################################ - -let $is_table= triggers; ---source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.18.2 + 3.2.18.3:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.18.2: Ensure that the table shows the relevant information on -# every trigger on which the current user or PUBLIC has -# privileges. -################################################################################ -# Testcase 3.2.18.3: Ensure that the table does not show any information on any -# trigger on which the current user and public have no -# privileges. -################################################################################ - -#FIXME 3.2.18.2: to be added. -#FIXME 3.2.18.2: don't forget to add the test description to QATestPlanV50func - -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.19.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.19.1: Ensure that the INFORMATION_SCHEMA.PARAMETERS -# table has the following columns, in the following order: -# -################################################################################ - -let $is_table= parameters; -# when table is implemented remove this and the next 4 lines and "enable" 5th line: -# and don't forget to add the test description to QATestPlanV50func -let $message= checking a table that will be implemented later; ---source include/show_msg.inc ---error ER_UNKNOWN_TABLE -eval DESC $is_table; -#--source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - -let $message= Testcase 3.2.20.1:; ---source include/show_msg80.inc - -################################################################################ -# Testcase 3.2.20.1: Ensure that the INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS -# table has the following columns, in the following order: -# -################################################################################ - -let $is_table= referential_constraints; -# when table is implemented remove this and the next 4 lines and "enable" 5th line: -# and don't forget to add the test description to QATestPlanV50func -let $message= checking a table that will be implemented later; ---source include/show_msg.inc ---error ER_UNKNOWN_TABLE -eval DESC $is_table; -#--source suite/funcs_1/datadict/datadict_show_table_design.inc -# ------------------------------------------------------------------------------------------------------- - - -################################################################################ -# -let $message= *** End of Data Dictionary Tests ***; ---source include/show_msg80.inc -# -################################################################################ - - -# some cleanup to be sure nothing remains ---disable_warnings -DROP TABLE IF EXISTS test.tb1; -DROP TABLE IF EXISTS test.tb2; -DROP TABLE IF EXISTS test.tb3; -DROP TABLE IF EXISTS test.tb4; -DROP TABLE IF EXISTS test.t1; -DROP TABLE IF EXISTS test.t2; -DROP TABLE IF EXISTS test.t3; -DROP TABLE IF EXISTS test.t4; -DROP TABLE IF EXISTS test.t7; -DROP TABLE IF EXISTS test.t8; -DROP TABLE IF EXISTS test.t9; -DROP TABLE IF EXISTS test.t10; -DROP TABLE IF EXISTS test.t11; -DROP DATABASE IF EXISTS test1; -DROP DATABASE IF EXISTS test4; -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; ---enable_warnings diff --git a/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc b/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc deleted file mode 100644 index 35060cefbf8..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_show_schema.inc +++ /dev/null @@ -1,57 +0,0 @@ -#### suite/funcs_1/datadict/datadict_show_schema.test - -# shows content of tables from INFORMATION_SCHEMA - -# usage: - -# let $message= ; -# let $dbname= ; -# --source suite/funcs_1/datadict/datadict_show_schema.test - ---source include/show_msg.inc - -eval select * - from information_schema.schemata - where schema_name like '$dbname%'; - -eval select table_catalog, table_schema, engine - from information_schema.tables - where table_schema like '$dbname%'; - -eval select * - from information_schema.columns - where table_schema like '$dbname%'; - -eval select table_schema, table_name, is_updatable - from information_schema.views - where table_schema like '$dbname%'; - -eval select routine_name, routine_type, security_type, sql_mode - from information_schema.routines - where routine_schema like '$dbname%'; - -eval select table_name, index_schema, index_name, index_type - from information_schema.statistics - where table_schema like '$dbname%'; - ---replace_result $SERVER_NAME ---sorted_result -eval select * - from information_schema.user_privileges; -# where grantee="'u_6_401013'@'%'"; - -eval select * - from information_schema.column_privileges - where table_schema like '$dbname%'; - -eval select * - from information_schema.table_privileges - where table_schema like '$dbname%'; - -eval select * - from information_schema.key_column_usage - where table_schema like '$dbname%'; - -eval SELECT * - FROM information_schema.triggers - WHERE trigger_schema LIKE '$dbname%'; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc b/mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc deleted file mode 100644 index e406d80f7f5..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_show_table_design.inc +++ /dev/null @@ -1,28 +0,0 @@ -#### suite/funcs_1/datadict/datadict_show_table_design.test -# -# - shows design of *one* table from INFORMATION_SCHEMA -# - used to have identical 'view' on all tested tables -# -# Usage: -# -# let $is_table= ; -# --source suite/funcs_1/datadict/datadict_show_table_design.test - -USE information_schema; - ---source suite/funcs_1/datadict/datadict_bug_12777.inc -eval DESC $is_table; - ---source suite/funcs_1/datadict/datadict_bug_12777.inc -eval SHOW CREATE TABLE $is_table; - -eval SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = '$is_table' -ORDER BY ordinal_position; - ---source suite/funcs_1/datadict/datadict_bug_12777.inc -eval SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = '$is_table' -ORDER BY ordinal_position; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables.inc deleted file mode 100644 index 00ec93095ea..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables.inc +++ /dev/null @@ -1,62 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables.inc - ---source include/show_msg.inc - -eval $dd_part1 schemata $dd_part2; - -#FIXME: splitting the "SELECT * FROM tables" in two parts until -#FIXME: Bug #12397: wrong values shown in column CREATE_OPTIONS of INFORMATION_SCHEMA.TABLES -#FIXME: is solved, like done in the _master.test, cannot be done here, so we replace here -#FIXME: the result for ALL rows. -# 9 AVG_ROW_LENGTH -# 10 DATA_LENGTH -# 11 MAX_DATA_LENGTH -## 12 INDEX_LENGTH -# 13 DATA_FREE -# 15 CREATE_TIME -# 16 UPDATE_TIME -# 20 CREATE_OPTIONS ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 20 "#CO#" -eval $dd_part1 tables $dd_part2; - ---source suite/funcs_1/datadict/datadict_bug_12777.inc -eval $dd_part1 columns $dd_part2; -eval $dd_part1 character_sets $dd_part2; -eval $dd_part1 collations where collation_name <> 'utf8_general_cs' $dd_part2; -eval $dd_part1 collation_character_set_applicability where collation_name <> 'utf8_general_cs' $dd_part2; ---replace_column 16 17 -eval $dd_part1 routines $dd_part2; -eval $dd_part1 statistics $dd_part2; -eval $dd_part1 views $dd_part2; -eval $dd_part1 user_privileges $dd_part2; -eval $dd_part1 schema_privileges $dd_part2; -eval $dd_part1 table_privileges $dd_part2; -eval $dd_part1 column_privileges $dd_part2; -eval $dd_part1 table_constraints $dd_part2; -eval $dd_part1 key_column_usage $dd_part2; -eval $dd_part1 triggers $dd_part2; - -# later planned new tables for INFORMATION_SCHEMA (not before version 5.0.11) -# -# (see Reference Manual: 22.1.16. Other INFORMATION_SCHEMA Tables): -# -# parameters -# referential_constraints -# -# check them here although they currently does not exist, but using this we -# immedeatly get notice when they are implemented - -#### DON'T FORGET TO ADD THE NEW TABLES TO THE CORRESPONDING FILES -#### datadict_tables_error_.test ! - ---error 1109 -eval $dd_part1 parameters $dd_part2; - ---error 1109 -eval $dd_part1 referential_constraints $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc deleted file mode 100644 index a551266c447..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables_error.inc +++ /dev/null @@ -1,33 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables.inc - - -#--disable_query_log -#eval SET @aux= 'This testcase shows the error number $error_no'; -#let $message= `SELECT @aux`; -#--enable_query_log ---source include/show_msg.inc - ---disable_abort_on_error -eval $dd_part1 schemata $dd_part2; -eval $dd_part1 tables $dd_part2; -eval $dd_part1 columns $dd_part2; -eval $dd_part1 character_sets $dd_part2; -eval $dd_part1 collations $dd_part2; -eval $dd_part1 collation_character_set_applicability $dd_part2; -eval $dd_part1 routines $dd_part2; -eval $dd_part1 statistics $dd_part2; -eval $dd_part1 views $dd_part2; -eval $dd_part1 user_privileges $dd_part2; -eval $dd_part1 schema_privileges $dd_part2; -eval $dd_part1 table_privileges $dd_part2; -eval $dd_part1 column_privileges $dd_part2; -eval $dd_part1 table_constraints $dd_part2; -eval $dd_part1 key_column_usage $dd_part2; -eval $dd_part1 triggers $dd_part2; ---enable_abort_on_error diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc deleted file mode 100644 index d04459991cc..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1.inc +++ /dev/null @@ -1,80 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables_err_.inc -# -# up to a change of "mysqltest", which makes lines like "eval --error $err_no" -# possible we will have some different files with the same content except the -# error numbers. - ---source include/show_msg.inc - -let $message= known error 1 (Can_t create/write to file ...):; ---source include/show_msg.inc - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 schemata $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 tables $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 columns $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 character_sets $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 collations $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 collation_character_set_applicability $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 routines $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 statistics $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 views $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 user_privileges $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 schema_privileges $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 table_privileges $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 column_privileges $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 table_constraints $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 key_column_usage $dd_part2; - ---replace_result '\\' '/' ---error 1 -eval $dd_part1 triggers $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc deleted file mode 100755 index a8876ee7db6..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1044.inc +++ /dev/null @@ -1,51 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables_error_1044.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables_err_.inc -# -# up to a change of "mysqltest", which makes lines like "eval --error $err_no" -# possible we will have some different files with the same content except the -# error numbers. - ---source include/show_msg.inc - -# e.g.: ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' - -let $message= known error 1044 (ERROR 42000: Access denied for user ... to database ...):; ---source include/show_msg.inc - ---error 1044 -eval $dd_part1 schemata $dd_part2; ---error 1044 -eval $dd_part1 tables $dd_part2; ---error 1044 -eval $dd_part1 columns $dd_part2; ---error 1044 -eval $dd_part1 character_sets $dd_part2; ---error 1044 -eval $dd_part1 collations $dd_part2; ---error 1044 -eval $dd_part1 collation_character_set_applicability $dd_part2; ---error 1044 -eval $dd_part1 routines $dd_part2; ---error 1044 -eval $dd_part1 statistics $dd_part2; ---error 1044 -eval $dd_part1 views $dd_part2; ---error 1044 -eval $dd_part1 user_privileges $dd_part2; ---error 1044 -eval $dd_part1 schema_privileges $dd_part2; ---error 1044 -eval $dd_part1 table_privileges $dd_part2; ---error 1044 -eval $dd_part1 column_privileges $dd_part2; ---error 1044 -eval $dd_part1 table_constraints $dd_part2; ---error 1044 -eval $dd_part1 key_column_usage $dd_part2; ---error 1044 -eval $dd_part1 triggers $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc deleted file mode 100644 index 4b12c836e92..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1049.inc +++ /dev/null @@ -1,49 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables_err_.inc -# -# up to a change of "mysqltest", which makes lines like "eval --error $err_no" -# possible we will have some different files with the same content except the -# error numbers. - ---source include/show_msg.inc - -let $message= known error 1049 (ERROR 42000: Unknown database ...):; ---source include/show_msg.inc - ---error 1049 -eval $dd_part1 schemata $dd_part2; ---error 1049 -eval $dd_part1 tables $dd_part2; ---error 1049 -eval $dd_part1 columns $dd_part2; ---error 1049 -eval $dd_part1 character_sets $dd_part2; ---error 1049 -eval $dd_part1 collations $dd_part2; ---error 1049 -eval $dd_part1 collation_character_set_applicability $dd_part2; ---error 1049 -eval $dd_part1 routines $dd_part2; ---error 1049 -eval $dd_part1 statistics $dd_part2; ---error 1049 -eval $dd_part1 views $dd_part2; ---error 1049 -eval $dd_part1 user_privileges $dd_part2; ---error 1049 -eval $dd_part1 schema_privileges $dd_part2; ---error 1049 -eval $dd_part1 table_privileges $dd_part2; ---error 1049 -eval $dd_part1 column_privileges $dd_part2; ---error 1049 -eval $dd_part1 table_constraints $dd_part2; ---error 1049 -eval $dd_part1 key_column_usage $dd_part2; ---error 1049 -eval $dd_part1 triggers $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc deleted file mode 100644 index 109b2ecd7da..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1051.inc +++ /dev/null @@ -1,49 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables_err_.inc -# -# up to a change of "mysqltest", which makes lines like "eval --error $err_no" -# possible we will have some different files with the same content except the -# error numbers. - ---source include/show_msg.inc - -let $message= known error 1051:; ---source include/show_msg.inc - ---error 1051 -eval $dd_part1 schemata $dd_part2; ---error 1051 -eval $dd_part1 tables $dd_part2; ---error 1051 -eval $dd_part1 columns $dd_part2; ---error 1051 -eval $dd_part1 character_sets $dd_part2; ---error 1051 -eval $dd_part1 collations $dd_part2; ---error 1051 -eval $dd_part1 collation_character_set_applicability $dd_part2; ---error 1051 -eval $dd_part1 routines $dd_part2; ---error 1051 -eval $dd_part1 statistics $dd_part2; ---error 1051 -eval $dd_part1 views $dd_part2; ---error 1051 -eval $dd_part1 user_privileges $dd_part2; ---error 1051 -eval $dd_part1 schema_privileges $dd_part2; ---error 1051 -eval $dd_part1 table_privileges $dd_part2; ---error 1051 -eval $dd_part1 column_privileges $dd_part2; ---error 1051 -eval $dd_part1 table_constraints $dd_part2; ---error 1051 -eval $dd_part1 key_column_usage $dd_part2; ---error 1051 -eval $dd_part1 triggers $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc deleted file mode 100644 index 5fa6d705b26..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1146.inc +++ /dev/null @@ -1,49 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables_err_.inc -# -# up to a change of "mysqltest", which makes lines like "eval --error $err_no" -# possible we will have some different files with the same content except the -# error numbers. - ---source include/show_msg.inc - -let $message= known error 1146:; ---source include/show_msg.inc - ---error 1146 -eval $dd_part1 schemata $dd_part2; ---error 1146 -eval $dd_part1 tables $dd_part2; ---error 1146 -eval $dd_part1 columns $dd_part2; ---error 1146 -eval $dd_part1 character_sets $dd_part2; ---error 1146 -eval $dd_part1 collations $dd_part2; ---error 1146 -eval $dd_part1 collation_character_set_applicability $dd_part2; ---error 1146 -eval $dd_part1 routines $dd_part2; ---error 1146 -eval $dd_part1 statistics $dd_part2; ---error 1146 -eval $dd_part1 views $dd_part2; ---error 1146 -eval $dd_part1 user_privileges $dd_part2; ---error 1146 -eval $dd_part1 schema_privileges $dd_part2; ---error 1146 -eval $dd_part1 table_privileges $dd_part2; ---error 1146 -eval $dd_part1 column_privileges $dd_part2; ---error 1146 -eval $dd_part1 table_constraints $dd_part2; ---error 1146 -eval $dd_part1 key_column_usage $dd_part2; ---error 1146 -eval $dd_part1 triggers $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc b/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc deleted file mode 100644 index e64226f0d35..00000000000 --- a/mysql-test/suite/funcs_1/datadict/datadict_tables_error_1288.inc +++ /dev/null @@ -1,49 +0,0 @@ -#### suite/funcs_1/datadict/datadict_tables.inc - -# contains all tables from INFORMATION_SCHEMA - -# usage: - -# --source suite/funcs_1/datadict/datadict_tables_err_.inc -# -# up to a change of "mysqltest", which makes lines like "eval --error $err_no" -# possible we will have some different files with the same content except the -# error numbers. - ---source include/show_msg.inc - -let $message= known error 1288:; ---source include/show_msg.inc - ---error 1288 -eval $dd_part1 schemata $dd_part2; ---error 1288 -eval $dd_part1 tables $dd_part2; ---error 1288 -eval $dd_part1 columns $dd_part2; ---error 1288 -eval $dd_part1 character_sets $dd_part2; ---error 1288 -eval $dd_part1 collations $dd_part2; ---error 1288 -eval $dd_part1 collation_character_set_applicability $dd_part2; ---error 1288 -eval $dd_part1 routines $dd_part2; ---error 1288 -eval $dd_part1 statistics $dd_part2; ---error 1288 -eval $dd_part1 views $dd_part2; ---error 1288 -eval $dd_part1 user_privileges $dd_part2; ---error 1288 -eval $dd_part1 schema_privileges $dd_part2; ---error 1288 -eval $dd_part1 table_privileges $dd_part2; ---error 1288 -eval $dd_part1 column_privileges $dd_part2; ---error 1288 -eval $dd_part1 table_constraints $dd_part2; ---error 1288 -eval $dd_part1 key_column_usage $dd_part2; ---error 1288 -eval $dd_part1 triggers $dd_part2; diff --git a/mysql-test/suite/funcs_1/datadict/is_table_query.inc b/mysql-test/suite/funcs_1/datadict/is_table_query.inc new file mode 100644 index 00000000000..3ed7413167a --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/is_table_query.inc @@ -0,0 +1,42 @@ +# suite/funcs_1/datadict/is_table_query.inc +# +# Check that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# (Requirement 3.2.1.1) +# +# The variable $is_table must be set before sourcing this script. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# +--disable_warnings +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +--enable_warnings +eval CREATE VIEW test.v1 AS SELECT * FROM information_schema.$is_table; +eval CREATE PROCEDURE test.p1() SELECT * FROM information_schema.$is_table; +delimiter //; +eval CREATE FUNCTION test.f1() returns BIGINT +BEGIN + DECLARE counter BIGINT DEFAULT NULL; + SELECT COUNT(*) INTO counter FROM information_schema.$is_table; + RETURN counter; +END// +delimiter ;// + + +# We are not interested to check the content here. +--echo # Attention: The printing of the next result sets is disabled. +--disable_result_log +eval SELECT * FROM information_schema.$is_table; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +--enable_result_log + +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; diff --git a/mysql-test/suite/funcs_1/datadict/statistics.inc b/mysql-test/suite/funcs_1/datadict/statistics.inc new file mode 100644 index 00000000000..00fd7a1b06b --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/statistics.inc @@ -0,0 +1,55 @@ +# suite/funcs_1/datadict/statistics.inc +# +# Auxiliary script to be sourced by +# is_statistics_is +# is_statistics_mysql +# is_statistics_ +# +# Purpose: +# Check the content of information_schema.statistics about tables within the +# database '$database'. +# +# Usage: +# The variable $database has to be set before sourcing this script. +# Example: +# let $database = db_data; +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--source suite/funcs_1/datadict/datadict.pre + +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +# Create a low privileged user. +# Note: The database db_datadict is just a "home" for the low privileged user +# and not in the focus of testing. +--error 0,ER_CANNOT_USER +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; + +let $my_select = SELECT * FROM information_schema.statistics +$my_where +ORDER BY table_schema, table_name, index_name, seq_in_index, column_name; +--replace_column 10 #CARD# +eval $my_select; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1,localhost,testuser1,,db_datadict); +--replace_column 10 #CARD# +eval $my_select; + +--echo # Switch to connection default and close connection testuser1 +connection default; +disconnect testuser1; +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/datadict/table_constraints.inc b/mysql-test/suite/funcs_1/datadict/table_constraints.inc new file mode 100644 index 00000000000..9e57976862b --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/table_constraints.inc @@ -0,0 +1,45 @@ +# suite/funcs_1/datadict/table_constraints.inc +# +# Auxiliary script to be sourced by +# suite/funcs_1/t/is_table_constraints_mysql.test +# suite/funcs_1/t/is_table_constraints_is.test +# +# The variable +# $table_schema database to be inspected +# has to be set before sourcing this script. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +# Create a low privileged user. +# Note: The database db_datadict is just a "home" for the low privileged user +# and not in the focus of testing. +--error 0,ER_CANNOT_USER +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; + +let $my_select = SELECT * FROM information_schema.table_constraints +WHERE table_schema = '$table_schema' +ORDER BY table_schema,table_name,constraint_name; +eval $my_select; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1,localhost,testuser1,,db_datadict); +eval $my_select; + +--echo # Switch to connection default and close connection testuser1 +connection default; +disconnect testuser1; +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/datadict/tables1.inc b/mysql-test/suite/funcs_1/datadict/tables1.inc new file mode 100644 index 00000000000..a03304028f6 --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/tables1.inc @@ -0,0 +1,39 @@ +# suite/funcs_1/datadict/tables1.inc +# +# Auxiliary script to be sourced by +# is_tables_mysql.test +# is_tables_is.test +# is_tables_.test +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--source suite/funcs_1/datadict/tables2.inc + +# Create a low privileged user. +# Note: The database db_datadict is just a "home" for the low privileged user +# and not in the focus of testing. +--error 0,ER_CANNOT_USER +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1,localhost,testuser1,,db_datadict); +--source suite/funcs_1/datadict/tables2.inc + +--echo # Switch to connection default and close connection testuser1 +connection default; +disconnect testuser1; +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/datadict/tables2.inc b/mysql-test/suite/funcs_1/datadict/tables2.inc new file mode 100644 index 00000000000..1066e52f8f0 --- /dev/null +++ b/mysql-test/suite/funcs_1/datadict/tables2.inc @@ -0,0 +1,47 @@ +# suite/funcs_1/datadict/tables2.inc +# +# Auxiliary script to be sourced by suite/funcs_1/datadict/tables1.inc. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# +################################################################################ + +# 8 TABLE_ROWS +# 9 AVG_ROW_LENGTH +# 10 DATA_LENGTH +# 11 MAX_DATA_LENGTH +# 12 INDEX_LENGTH +# 13 DATA_FREE +# 15 CREATE_TIME +# 16 UPDATE_TIME +# 17 CHECK_TIME +# 20 CREATE_OPTIONS +# 21 TABLE_COMMENT User defined comment +# + InnoDB +# + NDB: "number_of_replicas: " appended +# + InnoDB: "InnoDB free: kB" appended +# depends on tablespace history! +# The LEFT/INSTR/IF/LENGTH stuff should remove these +# storage engine specific part. +let $innodb_pattern = 'InnoDB free'; +let $ndb_pattern = 'number_of_replicas'; +--vertical_results +--replace_column 8 "#TBLR#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT#" 16 "#UT#" 17 "#CT#" 20 "#CO#" 21 "#TC#" +eval +SELECT *, + LEFT( table_comment, + IF(INSTR(table_comment,$innodb_pattern) = 0 + AND INSTR(table_comment,$ndb_pattern) = 0, + LENGTH(table_comment), + INSTR(table_comment,$innodb_pattern) + + INSTR(table_comment,$ndb_pattern) - 1)) + AS "user_comment", + '-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +$my_where +ORDER BY table_schema,table_name; +--horizontal_results + diff --git a/mysql-test/suite/funcs_1/include/cleanup.inc b/mysql-test/suite/funcs_1/include/cleanup.inc new file mode 100644 index 00000000000..ef8b8f01cfa --- /dev/null +++ b/mysql-test/suite/funcs_1/include/cleanup.inc @@ -0,0 +1,21 @@ +# suite/funcs_1/include/cleanup.inc +# +# Remove all objects created by sourcing +# suite/funcs_1/datadict/datadict_load.inc +# +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; +DROP TABLE test.tb1; +DROP TABLE test.tb2; +DROP TABLE test.tb3; +DROP TABLE test.tb4; + diff --git a/mysql-test/suite/funcs_1/include/create_database.inc b/mysql-test/suite/funcs_1/include/create_database.inc deleted file mode 100644 index aa11d936aa3..00000000000 --- a/mysql-test/suite/funcs_1/include/create_database.inc +++ /dev/null @@ -1,6 +0,0 @@ -##### suite/funcs_1/include/create_database.inc - ---disable_warnings -eval DROP DATABASE IF EXISTS $new_database; ---enable_warnings -eval CREATE DATABASE $new_database; diff --git a/mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc b/mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc deleted file mode 100644 index d9ec367b524..00000000000 --- a/mysql-test/suite/funcs_1/include/create_user_lowest_priv.inc +++ /dev/null @@ -1,10 +0,0 @@ -##### suite/funcs_1/include/create_user_no_priv.inc -# -# $new_user must contain the name (with @ if necessary) -# - ---error 0,1396 -eval DROP USER $new_user; -eval CREATE USER $new_user identified by 'PWD'; -# Just to be sure -eval REVOKE ALL PRIVILEGES, GRANT OPTION FROM $new_user; diff --git a/mysql-test/suite/funcs_1/include/create_user_no_super.inc b/mysql-test/suite/funcs_1/include/create_user_no_super.inc deleted file mode 100644 index 0de923bf98b..00000000000 --- a/mysql-test/suite/funcs_1/include/create_user_no_super.inc +++ /dev/null @@ -1,11 +0,0 @@ -##### suite/funcs_1/include/create_user_no_super.inc -# -# $new_user must contain the name (with @ if necessary) -# of the user to be created - ---error 0,1396 -eval DROP USER $new_user; -eval CREATE USER $new_user identified by 'PWD'; - -eval GRANT ALL ON *.* TO $new_user WITH GRANT OPTION; -eval REVOKE SUPER ON *.* FROM $new_user; diff --git a/mysql-test/suite/funcs_1/include/memory_tb1.inc b/mysql-test/suite/funcs_1/include/memory_tb1.inc index 93cc91a4b17..7d66443c62f 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb1.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb1.inc @@ -1,8 +1,5 @@ ##### suite/funcs_1/include/memory_tb1.inc -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; - --disable_warnings drop table if exists tb1 ; --enable_warnings diff --git a/mysql-test/suite/funcs_1/include/memory_tb2.inc b/mysql-test/suite/funcs_1/include/memory_tb2.inc index 6ee0f064e68..869a4904ce0 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb2.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb2.inc @@ -1,8 +1,5 @@ ##### suite/funcs_1/include/memory_tb2.inc -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; - --disable_warnings drop table if exists tb2 ; --enable_warnings diff --git a/mysql-test/suite/funcs_1/include/memory_tb3.inc b/mysql-test/suite/funcs_1/include/memory_tb3.inc index 75dd7d98eee..5aa56d06ede 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb3.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb3.inc @@ -1,8 +1,5 @@ ##### suite/funcs_1/include/memory_tb3.inc -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; - --disable_warnings drop table if exists tb3; --enable_warnings diff --git a/mysql-test/suite/funcs_1/include/memory_tb4.inc b/mysql-test/suite/funcs_1/include/memory_tb4.inc index c3187d8d4a3..97bc04118bd 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb4.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb4.inc @@ -1,8 +1,5 @@ ##### suite/funcs_1/include/memory_tb4.inc -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; - --disable_warnings drop table if exists tb4 ; --enable_warnings diff --git a/mysql-test/suite/funcs_1/include/sp_tb.inc b/mysql-test/suite/funcs_1/include/sp_tb.inc index ef209afc0cf..b37f2cc7ffe 100644 --- a/mysql-test/suite/funcs_1/include/sp_tb.inc +++ b/mysql-test/suite/funcs_1/include/sp_tb.inc @@ -1,9 +1,5 @@ --disable_abort_on_error -# ML: Should be set outside when memory -# set @@global.max_heap_table_size=4294967295; -# set @@session.max_heap_table_size=4294967295; - USE test; --disable_warnings diff --git a/mysql-test/suite/funcs_1/r/charset_collation_1.result b/mysql-test/suite/funcs_1/r/charset_collation_1.result new file mode 100644 index 00000000000..d397c671321 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/charset_collation_1.result @@ -0,0 +1,309 @@ +DROP USER dbdict_test@localhost; +CREATE USER dbdict_test@localhost; +# Establish connection con (user=dbdict_test) + +SELECT * +FROM information_schema.character_sets +ORDER BY character_set_name; +CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN +armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 +ascii ascii_general_ci US ASCII 1 +big5 big5_chinese_ci Big5 Traditional Chinese 2 +binary binary Binary pseudo charset 1 +cp1250 cp1250_general_ci Windows Central European 1 +cp1251 cp1251_general_ci Windows Cyrillic 1 +cp1256 cp1256_general_ci Windows Arabic 1 +cp1257 cp1257_general_ci Windows Baltic 1 +cp850 cp850_general_ci DOS West European 1 +cp852 cp852_general_ci DOS Central European 1 +cp866 cp866_general_ci DOS Russian 1 +cp932 cp932_japanese_ci SJIS for Windows Japanese 2 +dec8 dec8_swedish_ci DEC West European 1 +eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 +euckr euckr_korean_ci EUC-KR Korean 2 +gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 +gbk gbk_chinese_ci GBK Simplified Chinese 2 +geostd8 geostd8_general_ci GEOSTD8 Georgian 1 +greek greek_general_ci ISO 8859-7 Greek 1 +hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 +hp8 hp8_english_ci HP West European 1 +keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 +koi8r koi8r_general_ci KOI8-R Relcom Russian 1 +koi8u koi8u_general_ci KOI8-U Ukrainian 1 +latin1 latin1_swedish_ci cp1252 West European 1 +latin2 latin2_general_ci ISO 8859-2 Central European 1 +latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 +latin7 latin7_general_ci ISO 8859-13 Baltic 1 +macce macce_general_ci Mac Central European 1 +macroman macroman_general_ci Mac West European 1 +sjis sjis_japanese_ci Shift-JIS Japanese 2 +swe7 swe7_swedish_ci 7bit Swedish 1 +tis620 tis620_thai_ci TIS620 Thai 1 +ucs2 ucs2_general_ci UCS-2 Unicode 2 +ujis ujis_japanese_ci EUC-JP Japanese 3 +utf8 utf8_general_ci UTF-8 Unicode 3 + +SELECT * +FROM information_schema.collations +ORDER BY collation_name; +COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN +armscii8_bin armscii8 64 0 +armscii8_general_ci armscii8 32 Yes 0 +ascii_bin ascii 65 0 +ascii_general_ci ascii 11 Yes 0 +big5_bin big5 84 Yes 1 +big5_chinese_ci big5 1 Yes Yes 1 +binary binary 63 Yes Yes 1 +cp1250_bin cp1250 66 Yes 1 +cp1250_croatian_ci cp1250 44 Yes 1 +cp1250_czech_cs cp1250 34 Yes 2 +cp1250_general_ci cp1250 26 Yes Yes 1 +cp1251_bin cp1251 50 0 +cp1251_bulgarian_ci cp1251 14 0 +cp1251_general_ci cp1251 51 Yes 0 +cp1251_general_cs cp1251 52 0 +cp1251_ukrainian_ci cp1251 23 0 +cp1256_bin cp1256 67 0 +cp1256_general_ci cp1256 57 Yes 0 +cp1257_bin cp1257 58 0 +cp1257_general_ci cp1257 59 Yes 0 +cp1257_lithuanian_ci cp1257 29 0 +cp850_bin cp850 80 0 +cp850_general_ci cp850 4 Yes 0 +cp852_bin cp852 81 0 +cp852_general_ci cp852 40 Yes 0 +cp866_bin cp866 68 0 +cp866_general_ci cp866 36 Yes 0 +cp932_bin cp932 96 Yes 1 +cp932_japanese_ci cp932 95 Yes Yes 1 +dec8_bin dec8 69 0 +dec8_swedish_ci dec8 3 Yes 0 +eucjpms_bin eucjpms 98 Yes 1 +eucjpms_japanese_ci eucjpms 97 Yes Yes 1 +euckr_bin euckr 85 Yes 1 +euckr_korean_ci euckr 19 Yes Yes 1 +gb2312_bin gb2312 86 Yes 1 +gb2312_chinese_ci gb2312 24 Yes Yes 1 +gbk_bin gbk 87 Yes 1 +gbk_chinese_ci gbk 28 Yes Yes 1 +geostd8_bin geostd8 93 0 +geostd8_general_ci geostd8 92 Yes 0 +greek_bin greek 70 0 +greek_general_ci greek 25 Yes 0 +hebrew_bin hebrew 71 0 +hebrew_general_ci hebrew 16 Yes 0 +hp8_bin hp8 72 0 +hp8_english_ci hp8 6 Yes 0 +keybcs2_bin keybcs2 73 0 +keybcs2_general_ci keybcs2 37 Yes 0 +koi8r_bin koi8r 74 0 +koi8r_general_ci koi8r 7 Yes 0 +koi8u_bin koi8u 75 0 +koi8u_general_ci koi8u 22 Yes 0 +latin1_bin latin1 47 Yes 1 +latin1_danish_ci latin1 15 Yes 1 +latin1_general_ci latin1 48 Yes 1 +latin1_general_cs latin1 49 Yes 1 +latin1_german1_ci latin1 5 Yes 1 +latin1_german2_ci latin1 31 Yes 2 +latin1_spanish_ci latin1 94 Yes 1 +latin1_swedish_ci latin1 8 Yes Yes 1 +latin2_bin latin2 77 Yes 1 +latin2_croatian_ci latin2 27 Yes 1 +latin2_czech_cs latin2 2 Yes 4 +latin2_general_ci latin2 9 Yes Yes 1 +latin2_hungarian_ci latin2 21 Yes 1 +latin5_bin latin5 78 0 +latin5_turkish_ci latin5 30 Yes 0 +latin7_bin latin7 79 0 +latin7_estonian_cs latin7 20 0 +latin7_general_ci latin7 41 Yes 0 +latin7_general_cs latin7 42 0 +macce_bin macce 43 0 +macce_general_ci macce 38 Yes 0 +macroman_bin macroman 53 0 +macroman_general_ci macroman 39 Yes 0 +sjis_bin sjis 88 Yes 1 +sjis_japanese_ci sjis 13 Yes Yes 1 +swe7_bin swe7 82 0 +swe7_swedish_ci swe7 10 Yes 0 +tis620_bin tis620 89 Yes 1 +tis620_thai_ci tis620 18 Yes Yes 4 +ucs2_bin ucs2 90 Yes 1 +ucs2_czech_ci ucs2 138 Yes 8 +ucs2_danish_ci ucs2 139 Yes 8 +ucs2_esperanto_ci ucs2 145 Yes 8 +ucs2_estonian_ci ucs2 134 Yes 8 +ucs2_general_ci ucs2 35 Yes Yes 1 +ucs2_hungarian_ci ucs2 146 Yes 8 +ucs2_icelandic_ci ucs2 129 Yes 8 +ucs2_latvian_ci ucs2 130 Yes 8 +ucs2_lithuanian_ci ucs2 140 Yes 8 +ucs2_persian_ci ucs2 144 Yes 8 +ucs2_polish_ci ucs2 133 Yes 8 +ucs2_romanian_ci ucs2 131 Yes 8 +ucs2_roman_ci ucs2 143 Yes 8 +ucs2_slovak_ci ucs2 141 Yes 8 +ucs2_slovenian_ci ucs2 132 Yes 8 +ucs2_spanish2_ci ucs2 142 Yes 8 +ucs2_spanish_ci ucs2 135 Yes 8 +ucs2_swedish_ci ucs2 136 Yes 8 +ucs2_turkish_ci ucs2 137 Yes 8 +ucs2_unicode_ci ucs2 128 Yes 8 +ujis_bin ujis 91 Yes 1 +ujis_japanese_ci ujis 12 Yes Yes 1 +utf8_bin utf8 83 Yes 1 +utf8_czech_ci utf8 202 Yes 8 +utf8_danish_ci utf8 203 Yes 8 +utf8_esperanto_ci utf8 209 Yes 8 +utf8_estonian_ci utf8 198 Yes 8 +utf8_general_ci utf8 33 Yes Yes 1 +utf8_hungarian_ci utf8 210 Yes 8 +utf8_icelandic_ci utf8 193 Yes 8 +utf8_latvian_ci utf8 194 Yes 8 +utf8_lithuanian_ci utf8 204 Yes 8 +utf8_persian_ci utf8 208 Yes 8 +utf8_polish_ci utf8 197 Yes 8 +utf8_romanian_ci utf8 195 Yes 8 +utf8_roman_ci utf8 207 Yes 8 +utf8_slovak_ci utf8 205 Yes 8 +utf8_slovenian_ci utf8 196 Yes 8 +utf8_spanish2_ci utf8 206 Yes 8 +utf8_spanish_ci utf8 199 Yes 8 +utf8_swedish_ci utf8 200 Yes 8 +utf8_turkish_ci utf8 201 Yes 8 +utf8_unicode_ci utf8 192 Yes 8 + + +SELECT * +FROM information_schema.collation_character_set_applicability +ORDER BY collation_name, character_set_name; +COLLATION_NAME CHARACTER_SET_NAME +armscii8_bin armscii8 +armscii8_general_ci armscii8 +ascii_bin ascii +ascii_general_ci ascii +big5_bin big5 +big5_chinese_ci big5 +binary binary +cp1250_bin cp1250 +cp1250_croatian_ci cp1250 +cp1250_czech_cs cp1250 +cp1250_general_ci cp1250 +cp1251_bin cp1251 +cp1251_bulgarian_ci cp1251 +cp1251_general_ci cp1251 +cp1251_general_cs cp1251 +cp1251_ukrainian_ci cp1251 +cp1256_bin cp1256 +cp1256_general_ci cp1256 +cp1257_bin cp1257 +cp1257_general_ci cp1257 +cp1257_lithuanian_ci cp1257 +cp850_bin cp850 +cp850_general_ci cp850 +cp852_bin cp852 +cp852_general_ci cp852 +cp866_bin cp866 +cp866_general_ci cp866 +cp932_bin cp932 +cp932_japanese_ci cp932 +dec8_bin dec8 +dec8_swedish_ci dec8 +eucjpms_bin eucjpms +eucjpms_japanese_ci eucjpms +euckr_bin euckr +euckr_korean_ci euckr +gb2312_bin gb2312 +gb2312_chinese_ci gb2312 +gbk_bin gbk +gbk_chinese_ci gbk +geostd8_bin geostd8 +geostd8_general_ci geostd8 +greek_bin greek +greek_general_ci greek +hebrew_bin hebrew +hebrew_general_ci hebrew +hp8_bin hp8 +hp8_english_ci hp8 +keybcs2_bin keybcs2 +keybcs2_general_ci keybcs2 +koi8r_bin koi8r +koi8r_general_ci koi8r +koi8u_bin koi8u +koi8u_general_ci koi8u +latin1_bin latin1 +latin1_danish_ci latin1 +latin1_general_ci latin1 +latin1_general_cs latin1 +latin1_german1_ci latin1 +latin1_german2_ci latin1 +latin1_spanish_ci latin1 +latin1_swedish_ci latin1 +latin2_bin latin2 +latin2_croatian_ci latin2 +latin2_czech_cs latin2 +latin2_general_ci latin2 +latin2_hungarian_ci latin2 +latin5_bin latin5 +latin5_turkish_ci latin5 +latin7_bin latin7 +latin7_estonian_cs latin7 +latin7_general_ci latin7 +latin7_general_cs latin7 +macce_bin macce +macce_general_ci macce +macroman_bin macroman +macroman_general_ci macroman +sjis_bin sjis +sjis_japanese_ci sjis +swe7_bin swe7 +swe7_swedish_ci swe7 +tis620_bin tis620 +tis620_thai_ci tis620 +ucs2_bin ucs2 +ucs2_czech_ci ucs2 +ucs2_danish_ci ucs2 +ucs2_esperanto_ci ucs2 +ucs2_estonian_ci ucs2 +ucs2_general_ci ucs2 +ucs2_hungarian_ci ucs2 +ucs2_icelandic_ci ucs2 +ucs2_latvian_ci ucs2 +ucs2_lithuanian_ci ucs2 +ucs2_persian_ci ucs2 +ucs2_polish_ci ucs2 +ucs2_romanian_ci ucs2 +ucs2_roman_ci ucs2 +ucs2_slovak_ci ucs2 +ucs2_slovenian_ci ucs2 +ucs2_spanish2_ci ucs2 +ucs2_spanish_ci ucs2 +ucs2_swedish_ci ucs2 +ucs2_turkish_ci ucs2 +ucs2_unicode_ci ucs2 +ujis_bin ujis +ujis_japanese_ci ujis +utf8_bin utf8 +utf8_czech_ci utf8 +utf8_danish_ci utf8 +utf8_esperanto_ci utf8 +utf8_estonian_ci utf8 +utf8_general_ci utf8 +utf8_hungarian_ci utf8 +utf8_icelandic_ci utf8 +utf8_latvian_ci utf8 +utf8_lithuanian_ci utf8 +utf8_persian_ci utf8 +utf8_polish_ci utf8 +utf8_romanian_ci utf8 +utf8_roman_ci utf8 +utf8_slovak_ci utf8 +utf8_slovenian_ci utf8 +utf8_spanish2_ci utf8 +utf8_spanish_ci utf8 +utf8_swedish_ci utf8 +utf8_turkish_ci utf8 +utf8_unicode_ci utf8 +# Switch to connection default + disconnect con +DROP USER dbdict_test@localhost; diff --git a/mysql-test/suite/funcs_1/r/charset_collation_2.result b/mysql-test/suite/funcs_1/r/charset_collation_2.result new file mode 100644 index 00000000000..0035da13c56 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/charset_collation_2.result @@ -0,0 +1,311 @@ +DROP USER dbdict_test@localhost; +CREATE USER dbdict_test@localhost; +# Establish connection con (user=dbdict_test) + +SELECT * +FROM information_schema.character_sets +ORDER BY character_set_name; +CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN +armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 +ascii ascii_general_ci US ASCII 1 +big5 big5_chinese_ci Big5 Traditional Chinese 2 +binary binary Binary pseudo charset 1 +cp1250 cp1250_general_ci Windows Central European 1 +cp1251 cp1251_general_ci Windows Cyrillic 1 +cp1256 cp1256_general_ci Windows Arabic 1 +cp1257 cp1257_general_ci Windows Baltic 1 +cp850 cp850_general_ci DOS West European 1 +cp852 cp852_general_ci DOS Central European 1 +cp866 cp866_general_ci DOS Russian 1 +cp932 cp932_japanese_ci SJIS for Windows Japanese 2 +dec8 dec8_swedish_ci DEC West European 1 +eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 +euckr euckr_korean_ci EUC-KR Korean 2 +gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 +gbk gbk_chinese_ci GBK Simplified Chinese 2 +geostd8 geostd8_general_ci GEOSTD8 Georgian 1 +greek greek_general_ci ISO 8859-7 Greek 1 +hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 +hp8 hp8_english_ci HP West European 1 +keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 +koi8r koi8r_general_ci KOI8-R Relcom Russian 1 +koi8u koi8u_general_ci KOI8-U Ukrainian 1 +latin1 latin1_swedish_ci cp1252 West European 1 +latin2 latin2_general_ci ISO 8859-2 Central European 1 +latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 +latin7 latin7_general_ci ISO 8859-13 Baltic 1 +macce macce_general_ci Mac Central European 1 +macroman macroman_general_ci Mac West European 1 +sjis sjis_japanese_ci Shift-JIS Japanese 2 +swe7 swe7_swedish_ci 7bit Swedish 1 +tis620 tis620_thai_ci TIS620 Thai 1 +ucs2 ucs2_general_ci UCS-2 Unicode 2 +ujis ujis_japanese_ci EUC-JP Japanese 3 +utf8 utf8_general_ci UTF-8 Unicode 3 + +SELECT * +FROM information_schema.collations +ORDER BY collation_name; +COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN +armscii8_bin armscii8 64 0 +armscii8_general_ci armscii8 32 Yes 0 +ascii_bin ascii 65 0 +ascii_general_ci ascii 11 Yes 0 +big5_bin big5 84 Yes 1 +big5_chinese_ci big5 1 Yes Yes 1 +binary binary 63 Yes Yes 1 +cp1250_bin cp1250 66 Yes 1 +cp1250_croatian_ci cp1250 44 Yes 1 +cp1250_czech_cs cp1250 34 Yes 2 +cp1250_general_ci cp1250 26 Yes Yes 1 +cp1251_bin cp1251 50 0 +cp1251_bulgarian_ci cp1251 14 0 +cp1251_general_ci cp1251 51 Yes 0 +cp1251_general_cs cp1251 52 0 +cp1251_ukrainian_ci cp1251 23 0 +cp1256_bin cp1256 67 0 +cp1256_general_ci cp1256 57 Yes 0 +cp1257_bin cp1257 58 0 +cp1257_general_ci cp1257 59 Yes 0 +cp1257_lithuanian_ci cp1257 29 0 +cp850_bin cp850 80 0 +cp850_general_ci cp850 4 Yes 0 +cp852_bin cp852 81 0 +cp852_general_ci cp852 40 Yes 0 +cp866_bin cp866 68 0 +cp866_general_ci cp866 36 Yes 0 +cp932_bin cp932 96 Yes 1 +cp932_japanese_ci cp932 95 Yes Yes 1 +dec8_bin dec8 69 0 +dec8_swedish_ci dec8 3 Yes 0 +eucjpms_bin eucjpms 98 Yes 1 +eucjpms_japanese_ci eucjpms 97 Yes Yes 1 +euckr_bin euckr 85 Yes 1 +euckr_korean_ci euckr 19 Yes Yes 1 +gb2312_bin gb2312 86 Yes 1 +gb2312_chinese_ci gb2312 24 Yes Yes 1 +gbk_bin gbk 87 Yes 1 +gbk_chinese_ci gbk 28 Yes Yes 1 +geostd8_bin geostd8 93 0 +geostd8_general_ci geostd8 92 Yes 0 +greek_bin greek 70 0 +greek_general_ci greek 25 Yes 0 +hebrew_bin hebrew 71 0 +hebrew_general_ci hebrew 16 Yes 0 +hp8_bin hp8 72 0 +hp8_english_ci hp8 6 Yes 0 +keybcs2_bin keybcs2 73 0 +keybcs2_general_ci keybcs2 37 Yes 0 +koi8r_bin koi8r 74 0 +koi8r_general_ci koi8r 7 Yes 0 +koi8u_bin koi8u 75 0 +koi8u_general_ci koi8u 22 Yes 0 +latin1_bin latin1 47 Yes 1 +latin1_danish_ci latin1 15 Yes 1 +latin1_general_ci latin1 48 Yes 1 +latin1_general_cs latin1 49 Yes 1 +latin1_german1_ci latin1 5 Yes 1 +latin1_german2_ci latin1 31 Yes 2 +latin1_spanish_ci latin1 94 Yes 1 +latin1_swedish_ci latin1 8 Yes Yes 1 +latin2_bin latin2 77 Yes 1 +latin2_croatian_ci latin2 27 Yes 1 +latin2_czech_cs latin2 2 Yes 4 +latin2_general_ci latin2 9 Yes Yes 1 +latin2_hungarian_ci latin2 21 Yes 1 +latin5_bin latin5 78 0 +latin5_turkish_ci latin5 30 Yes 0 +latin7_bin latin7 79 0 +latin7_estonian_cs latin7 20 0 +latin7_general_ci latin7 41 Yes 0 +latin7_general_cs latin7 42 0 +macce_bin macce 43 0 +macce_general_ci macce 38 Yes 0 +macroman_bin macroman 53 0 +macroman_general_ci macroman 39 Yes 0 +sjis_bin sjis 88 Yes 1 +sjis_japanese_ci sjis 13 Yes Yes 1 +swe7_bin swe7 82 0 +swe7_swedish_ci swe7 10 Yes 0 +tis620_bin tis620 89 Yes 1 +tis620_thai_ci tis620 18 Yes Yes 4 +ucs2_bin ucs2 90 Yes 1 +ucs2_czech_ci ucs2 138 Yes 8 +ucs2_danish_ci ucs2 139 Yes 8 +ucs2_esperanto_ci ucs2 145 Yes 8 +ucs2_estonian_ci ucs2 134 Yes 8 +ucs2_general_ci ucs2 35 Yes Yes 1 +ucs2_hungarian_ci ucs2 146 Yes 8 +ucs2_icelandic_ci ucs2 129 Yes 8 +ucs2_latvian_ci ucs2 130 Yes 8 +ucs2_lithuanian_ci ucs2 140 Yes 8 +ucs2_persian_ci ucs2 144 Yes 8 +ucs2_polish_ci ucs2 133 Yes 8 +ucs2_romanian_ci ucs2 131 Yes 8 +ucs2_roman_ci ucs2 143 Yes 8 +ucs2_slovak_ci ucs2 141 Yes 8 +ucs2_slovenian_ci ucs2 132 Yes 8 +ucs2_spanish2_ci ucs2 142 Yes 8 +ucs2_spanish_ci ucs2 135 Yes 8 +ucs2_swedish_ci ucs2 136 Yes 8 +ucs2_turkish_ci ucs2 137 Yes 8 +ucs2_unicode_ci ucs2 128 Yes 8 +ujis_bin ujis 91 Yes 1 +ujis_japanese_ci ujis 12 Yes Yes 1 +utf8_bin utf8 83 Yes 1 +utf8_czech_ci utf8 202 Yes 8 +utf8_danish_ci utf8 203 Yes 8 +utf8_esperanto_ci utf8 209 Yes 8 +utf8_estonian_ci utf8 198 Yes 8 +utf8_general_ci utf8 33 Yes Yes 1 +utf8_general_cs utf8 254 Yes 1 +utf8_hungarian_ci utf8 210 Yes 8 +utf8_icelandic_ci utf8 193 Yes 8 +utf8_latvian_ci utf8 194 Yes 8 +utf8_lithuanian_ci utf8 204 Yes 8 +utf8_persian_ci utf8 208 Yes 8 +utf8_polish_ci utf8 197 Yes 8 +utf8_romanian_ci utf8 195 Yes 8 +utf8_roman_ci utf8 207 Yes 8 +utf8_slovak_ci utf8 205 Yes 8 +utf8_slovenian_ci utf8 196 Yes 8 +utf8_spanish2_ci utf8 206 Yes 8 +utf8_spanish_ci utf8 199 Yes 8 +utf8_swedish_ci utf8 200 Yes 8 +utf8_turkish_ci utf8 201 Yes 8 +utf8_unicode_ci utf8 192 Yes 8 + + +SELECT * +FROM information_schema.collation_character_set_applicability +ORDER BY collation_name, character_set_name; +COLLATION_NAME CHARACTER_SET_NAME +armscii8_bin armscii8 +armscii8_general_ci armscii8 +ascii_bin ascii +ascii_general_ci ascii +big5_bin big5 +big5_chinese_ci big5 +binary binary +cp1250_bin cp1250 +cp1250_croatian_ci cp1250 +cp1250_czech_cs cp1250 +cp1250_general_ci cp1250 +cp1251_bin cp1251 +cp1251_bulgarian_ci cp1251 +cp1251_general_ci cp1251 +cp1251_general_cs cp1251 +cp1251_ukrainian_ci cp1251 +cp1256_bin cp1256 +cp1256_general_ci cp1256 +cp1257_bin cp1257 +cp1257_general_ci cp1257 +cp1257_lithuanian_ci cp1257 +cp850_bin cp850 +cp850_general_ci cp850 +cp852_bin cp852 +cp852_general_ci cp852 +cp866_bin cp866 +cp866_general_ci cp866 +cp932_bin cp932 +cp932_japanese_ci cp932 +dec8_bin dec8 +dec8_swedish_ci dec8 +eucjpms_bin eucjpms +eucjpms_japanese_ci eucjpms +euckr_bin euckr +euckr_korean_ci euckr +gb2312_bin gb2312 +gb2312_chinese_ci gb2312 +gbk_bin gbk +gbk_chinese_ci gbk +geostd8_bin geostd8 +geostd8_general_ci geostd8 +greek_bin greek +greek_general_ci greek +hebrew_bin hebrew +hebrew_general_ci hebrew +hp8_bin hp8 +hp8_english_ci hp8 +keybcs2_bin keybcs2 +keybcs2_general_ci keybcs2 +koi8r_bin koi8r +koi8r_general_ci koi8r +koi8u_bin koi8u +koi8u_general_ci koi8u +latin1_bin latin1 +latin1_danish_ci latin1 +latin1_general_ci latin1 +latin1_general_cs latin1 +latin1_german1_ci latin1 +latin1_german2_ci latin1 +latin1_spanish_ci latin1 +latin1_swedish_ci latin1 +latin2_bin latin2 +latin2_croatian_ci latin2 +latin2_czech_cs latin2 +latin2_general_ci latin2 +latin2_hungarian_ci latin2 +latin5_bin latin5 +latin5_turkish_ci latin5 +latin7_bin latin7 +latin7_estonian_cs latin7 +latin7_general_ci latin7 +latin7_general_cs latin7 +macce_bin macce +macce_general_ci macce +macroman_bin macroman +macroman_general_ci macroman +sjis_bin sjis +sjis_japanese_ci sjis +swe7_bin swe7 +swe7_swedish_ci swe7 +tis620_bin tis620 +tis620_thai_ci tis620 +ucs2_bin ucs2 +ucs2_czech_ci ucs2 +ucs2_danish_ci ucs2 +ucs2_esperanto_ci ucs2 +ucs2_estonian_ci ucs2 +ucs2_general_ci ucs2 +ucs2_hungarian_ci ucs2 +ucs2_icelandic_ci ucs2 +ucs2_latvian_ci ucs2 +ucs2_lithuanian_ci ucs2 +ucs2_persian_ci ucs2 +ucs2_polish_ci ucs2 +ucs2_romanian_ci ucs2 +ucs2_roman_ci ucs2 +ucs2_slovak_ci ucs2 +ucs2_slovenian_ci ucs2 +ucs2_spanish2_ci ucs2 +ucs2_spanish_ci ucs2 +ucs2_swedish_ci ucs2 +ucs2_turkish_ci ucs2 +ucs2_unicode_ci ucs2 +ujis_bin ujis +ujis_japanese_ci ujis +utf8_bin utf8 +utf8_czech_ci utf8 +utf8_danish_ci utf8 +utf8_esperanto_ci utf8 +utf8_estonian_ci utf8 +utf8_general_ci utf8 +utf8_general_cs utf8 +utf8_hungarian_ci utf8 +utf8_icelandic_ci utf8 +utf8_latvian_ci utf8 +utf8_lithuanian_ci utf8 +utf8_persian_ci utf8 +utf8_polish_ci utf8 +utf8_romanian_ci utf8 +utf8_roman_ci utf8 +utf8_slovak_ci utf8 +utf8_slovenian_ci utf8 +utf8_spanish2_ci utf8 +utf8_spanish_ci utf8 +utf8_swedish_ci utf8 +utf8_turkish_ci utf8 +utf8_unicode_ci utf8 +# Switch to connection default + disconnect con +DROP USER dbdict_test@localhost; diff --git a/mysql-test/suite/funcs_1/r/charset_collation_3.result b/mysql-test/suite/funcs_1/r/charset_collation_3.result new file mode 100644 index 00000000000..b9a2dbe8a98 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/charset_collation_3.result @@ -0,0 +1,309 @@ +DROP USER dbdict_test@localhost; +CREATE USER dbdict_test@localhost; +# Establish connection con (user=dbdict_test) + +SELECT * +FROM information_schema.character_sets +ORDER BY character_set_name; +CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN +armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 +ascii ascii_general_ci US ASCII 1 +big5 big5_chinese_ci Big5 Traditional Chinese 2 +binary binary Binary pseudo charset 1 +cp1250 cp1250_general_ci Windows Central European 1 +cp1251 cp1251_general_ci Windows Cyrillic 1 +cp1256 cp1256_general_ci Windows Arabic 1 +cp1257 cp1257_general_ci Windows Baltic 1 +cp850 cp850_general_ci DOS West European 1 +cp852 cp852_general_ci DOS Central European 1 +cp866 cp866_general_ci DOS Russian 1 +cp932 cp932_japanese_ci SJIS for Windows Japanese 2 +dec8 dec8_swedish_ci DEC West European 1 +eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 +euckr euckr_korean_ci EUC-KR Korean 2 +gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 +gbk gbk_chinese_ci GBK Simplified Chinese 2 +geostd8 geostd8_general_ci GEOSTD8 Georgian 1 +greek greek_general_ci ISO 8859-7 Greek 1 +hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 +hp8 hp8_english_ci HP West European 1 +keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 +koi8r koi8r_general_ci KOI8-R Relcom Russian 1 +koi8u koi8u_general_ci KOI8-U Ukrainian 1 +latin1 latin1_swedish_ci cp1252 West European 1 +latin2 latin2_general_ci ISO 8859-2 Central European 1 +latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 +latin7 latin7_general_ci ISO 8859-13 Baltic 1 +macce macce_general_ci Mac Central European 1 +macroman macroman_general_ci Mac West European 1 +sjis sjis_japanese_ci Shift-JIS Japanese 2 +swe7 swe7_swedish_ci 7bit Swedish 1 +tis620 tis620_thai_ci TIS620 Thai 1 +ucs2 ucs2_general_ci UCS-2 Unicode 2 +ujis ujis_japanese_ci EUC-JP Japanese 3 +utf8 utf8_general_ci UTF-8 Unicode 3 + +SELECT * +FROM information_schema.collations +ORDER BY collation_name; +COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN +armscii8_bin armscii8 64 Yes 1 +armscii8_general_ci armscii8 32 Yes Yes 1 +ascii_bin ascii 65 Yes 1 +ascii_general_ci ascii 11 Yes Yes 1 +big5_bin big5 84 Yes 1 +big5_chinese_ci big5 1 Yes Yes 1 +binary binary 63 Yes Yes 1 +cp1250_bin cp1250 66 Yes 1 +cp1250_croatian_ci cp1250 44 Yes 1 +cp1250_czech_cs cp1250 34 Yes 2 +cp1250_general_ci cp1250 26 Yes Yes 1 +cp1251_bin cp1251 50 Yes 1 +cp1251_bulgarian_ci cp1251 14 Yes 1 +cp1251_general_ci cp1251 51 Yes Yes 1 +cp1251_general_cs cp1251 52 Yes 1 +cp1251_ukrainian_ci cp1251 23 Yes 1 +cp1256_bin cp1256 67 Yes 1 +cp1256_general_ci cp1256 57 Yes Yes 1 +cp1257_bin cp1257 58 Yes 1 +cp1257_general_ci cp1257 59 Yes Yes 1 +cp1257_lithuanian_ci cp1257 29 Yes 1 +cp850_bin cp850 80 Yes 1 +cp850_general_ci cp850 4 Yes Yes 1 +cp852_bin cp852 81 Yes 1 +cp852_general_ci cp852 40 Yes Yes 1 +cp866_bin cp866 68 Yes 1 +cp866_general_ci cp866 36 Yes Yes 1 +cp932_bin cp932 96 Yes 1 +cp932_japanese_ci cp932 95 Yes Yes 1 +dec8_bin dec8 69 Yes 1 +dec8_swedish_ci dec8 3 Yes Yes 1 +eucjpms_bin eucjpms 98 Yes 1 +eucjpms_japanese_ci eucjpms 97 Yes Yes 1 +euckr_bin euckr 85 Yes 1 +euckr_korean_ci euckr 19 Yes Yes 1 +gb2312_bin gb2312 86 Yes 1 +gb2312_chinese_ci gb2312 24 Yes Yes 1 +gbk_bin gbk 87 Yes 1 +gbk_chinese_ci gbk 28 Yes Yes 1 +geostd8_bin geostd8 93 Yes 1 +geostd8_general_ci geostd8 92 Yes Yes 1 +greek_bin greek 70 Yes 1 +greek_general_ci greek 25 Yes Yes 1 +hebrew_bin hebrew 71 Yes 1 +hebrew_general_ci hebrew 16 Yes Yes 1 +hp8_bin hp8 72 Yes 1 +hp8_english_ci hp8 6 Yes Yes 1 +keybcs2_bin keybcs2 73 Yes 1 +keybcs2_general_ci keybcs2 37 Yes Yes 1 +koi8r_bin koi8r 74 Yes 1 +koi8r_general_ci koi8r 7 Yes Yes 1 +koi8u_bin koi8u 75 Yes 1 +koi8u_general_ci koi8u 22 Yes Yes 1 +latin1_bin latin1 47 Yes 1 +latin1_danish_ci latin1 15 Yes 1 +latin1_general_ci latin1 48 Yes 1 +latin1_general_cs latin1 49 Yes 1 +latin1_german1_ci latin1 5 Yes 1 +latin1_german2_ci latin1 31 Yes 2 +latin1_spanish_ci latin1 94 Yes 1 +latin1_swedish_ci latin1 8 Yes Yes 1 +latin2_bin latin2 77 Yes 1 +latin2_croatian_ci latin2 27 Yes 1 +latin2_czech_cs latin2 2 Yes 4 +latin2_general_ci latin2 9 Yes Yes 1 +latin2_hungarian_ci latin2 21 Yes 1 +latin5_bin latin5 78 Yes 1 +latin5_turkish_ci latin5 30 Yes Yes 1 +latin7_bin latin7 79 Yes 1 +latin7_estonian_cs latin7 20 Yes 1 +latin7_general_ci latin7 41 Yes Yes 1 +latin7_general_cs latin7 42 Yes 1 +macce_bin macce 43 Yes 1 +macce_general_ci macce 38 Yes Yes 1 +macroman_bin macroman 53 Yes 1 +macroman_general_ci macroman 39 Yes Yes 1 +sjis_bin sjis 88 Yes 1 +sjis_japanese_ci sjis 13 Yes Yes 1 +swe7_bin swe7 82 Yes 1 +swe7_swedish_ci swe7 10 Yes Yes 1 +tis620_bin tis620 89 Yes 1 +tis620_thai_ci tis620 18 Yes Yes 4 +ucs2_bin ucs2 90 Yes 1 +ucs2_czech_ci ucs2 138 Yes 8 +ucs2_danish_ci ucs2 139 Yes 8 +ucs2_esperanto_ci ucs2 145 Yes 8 +ucs2_estonian_ci ucs2 134 Yes 8 +ucs2_general_ci ucs2 35 Yes Yes 1 +ucs2_hungarian_ci ucs2 146 Yes 8 +ucs2_icelandic_ci ucs2 129 Yes 8 +ucs2_latvian_ci ucs2 130 Yes 8 +ucs2_lithuanian_ci ucs2 140 Yes 8 +ucs2_persian_ci ucs2 144 Yes 8 +ucs2_polish_ci ucs2 133 Yes 8 +ucs2_romanian_ci ucs2 131 Yes 8 +ucs2_roman_ci ucs2 143 Yes 8 +ucs2_slovak_ci ucs2 141 Yes 8 +ucs2_slovenian_ci ucs2 132 Yes 8 +ucs2_spanish2_ci ucs2 142 Yes 8 +ucs2_spanish_ci ucs2 135 Yes 8 +ucs2_swedish_ci ucs2 136 Yes 8 +ucs2_turkish_ci ucs2 137 Yes 8 +ucs2_unicode_ci ucs2 128 Yes 8 +ujis_bin ujis 91 Yes 1 +ujis_japanese_ci ujis 12 Yes Yes 1 +utf8_bin utf8 83 Yes 1 +utf8_czech_ci utf8 202 Yes 8 +utf8_danish_ci utf8 203 Yes 8 +utf8_esperanto_ci utf8 209 Yes 8 +utf8_estonian_ci utf8 198 Yes 8 +utf8_general_ci utf8 33 Yes Yes 1 +utf8_hungarian_ci utf8 210 Yes 8 +utf8_icelandic_ci utf8 193 Yes 8 +utf8_latvian_ci utf8 194 Yes 8 +utf8_lithuanian_ci utf8 204 Yes 8 +utf8_persian_ci utf8 208 Yes 8 +utf8_polish_ci utf8 197 Yes 8 +utf8_romanian_ci utf8 195 Yes 8 +utf8_roman_ci utf8 207 Yes 8 +utf8_slovak_ci utf8 205 Yes 8 +utf8_slovenian_ci utf8 196 Yes 8 +utf8_spanish2_ci utf8 206 Yes 8 +utf8_spanish_ci utf8 199 Yes 8 +utf8_swedish_ci utf8 200 Yes 8 +utf8_turkish_ci utf8 201 Yes 8 +utf8_unicode_ci utf8 192 Yes 8 + + +SELECT * +FROM information_schema.collation_character_set_applicability +ORDER BY collation_name, character_set_name; +COLLATION_NAME CHARACTER_SET_NAME +armscii8_bin armscii8 +armscii8_general_ci armscii8 +ascii_bin ascii +ascii_general_ci ascii +big5_bin big5 +big5_chinese_ci big5 +binary binary +cp1250_bin cp1250 +cp1250_croatian_ci cp1250 +cp1250_czech_cs cp1250 +cp1250_general_ci cp1250 +cp1251_bin cp1251 +cp1251_bulgarian_ci cp1251 +cp1251_general_ci cp1251 +cp1251_general_cs cp1251 +cp1251_ukrainian_ci cp1251 +cp1256_bin cp1256 +cp1256_general_ci cp1256 +cp1257_bin cp1257 +cp1257_general_ci cp1257 +cp1257_lithuanian_ci cp1257 +cp850_bin cp850 +cp850_general_ci cp850 +cp852_bin cp852 +cp852_general_ci cp852 +cp866_bin cp866 +cp866_general_ci cp866 +cp932_bin cp932 +cp932_japanese_ci cp932 +dec8_bin dec8 +dec8_swedish_ci dec8 +eucjpms_bin eucjpms +eucjpms_japanese_ci eucjpms +euckr_bin euckr +euckr_korean_ci euckr +gb2312_bin gb2312 +gb2312_chinese_ci gb2312 +gbk_bin gbk +gbk_chinese_ci gbk +geostd8_bin geostd8 +geostd8_general_ci geostd8 +greek_bin greek +greek_general_ci greek +hebrew_bin hebrew +hebrew_general_ci hebrew +hp8_bin hp8 +hp8_english_ci hp8 +keybcs2_bin keybcs2 +keybcs2_general_ci keybcs2 +koi8r_bin koi8r +koi8r_general_ci koi8r +koi8u_bin koi8u +koi8u_general_ci koi8u +latin1_bin latin1 +latin1_danish_ci latin1 +latin1_general_ci latin1 +latin1_general_cs latin1 +latin1_german1_ci latin1 +latin1_german2_ci latin1 +latin1_spanish_ci latin1 +latin1_swedish_ci latin1 +latin2_bin latin2 +latin2_croatian_ci latin2 +latin2_czech_cs latin2 +latin2_general_ci latin2 +latin2_hungarian_ci latin2 +latin5_bin latin5 +latin5_turkish_ci latin5 +latin7_bin latin7 +latin7_estonian_cs latin7 +latin7_general_ci latin7 +latin7_general_cs latin7 +macce_bin macce +macce_general_ci macce +macroman_bin macroman +macroman_general_ci macroman +sjis_bin sjis +sjis_japanese_ci sjis +swe7_bin swe7 +swe7_swedish_ci swe7 +tis620_bin tis620 +tis620_thai_ci tis620 +ucs2_bin ucs2 +ucs2_czech_ci ucs2 +ucs2_danish_ci ucs2 +ucs2_esperanto_ci ucs2 +ucs2_estonian_ci ucs2 +ucs2_general_ci ucs2 +ucs2_hungarian_ci ucs2 +ucs2_icelandic_ci ucs2 +ucs2_latvian_ci ucs2 +ucs2_lithuanian_ci ucs2 +ucs2_persian_ci ucs2 +ucs2_polish_ci ucs2 +ucs2_romanian_ci ucs2 +ucs2_roman_ci ucs2 +ucs2_slovak_ci ucs2 +ucs2_slovenian_ci ucs2 +ucs2_spanish2_ci ucs2 +ucs2_spanish_ci ucs2 +ucs2_swedish_ci ucs2 +ucs2_turkish_ci ucs2 +ucs2_unicode_ci ucs2 +ujis_bin ujis +ujis_japanese_ci ujis +utf8_bin utf8 +utf8_czech_ci utf8 +utf8_danish_ci utf8 +utf8_esperanto_ci utf8 +utf8_estonian_ci utf8 +utf8_general_ci utf8 +utf8_hungarian_ci utf8 +utf8_icelandic_ci utf8 +utf8_latvian_ci utf8 +utf8_lithuanian_ci utf8 +utf8_persian_ci utf8 +utf8_polish_ci utf8 +utf8_romanian_ci utf8 +utf8_roman_ci utf8 +utf8_slovak_ci utf8 +utf8_slovenian_ci utf8 +utf8_spanish2_ci utf8 +utf8_spanish_ci utf8 +utf8_swedish_ci utf8 +utf8_turkish_ci utf8 +utf8_unicode_ci utf8 +# Switch to connection default + disconnect con +DROP USER dbdict_test@localhost; diff --git a/mysql-test/suite/funcs_1/r/datadict_help_tables_build.result b/mysql-test/suite/funcs_1/r/datadict_help_tables_build.result deleted file mode 100644 index c81063b6bb2..00000000000 --- a/mysql-test/suite/funcs_1/r/datadict_help_tables_build.result +++ /dev/null @@ -1,22 +0,0 @@ -DELETE FROM mysql.help_category LIMIT ; -DELETE FROM mysql.help_keyword LIMIT ; -DELETE FROM mysql.help_relation LIMIT ; -DELETE FROM mysql.help_topic LIMIT ; -SELECT * FROM INFORMATION_SCHEMA.TABLES -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL mysql help_category BASE TABLE MyISAM 10 Fixed 30 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories -NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 320 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords -NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 640 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation -NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 380 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics -SELECT * FROM INFORMATION_SCHEMA.STATISTICS -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 30 NULL NULL BTREE -NULL mysql help_category 0 mysql name 1 name A 30 NULL NULL BTREE -NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 320 NULL NULL BTREE -NULL mysql help_keyword 0 mysql name 1 name A 320 NULL NULL BTREE -NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE -NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 640 NULL NULL BTREE -NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 380 NULL NULL BTREE -NULL mysql help_topic 0 mysql name 1 name A 380 NULL NULL BTREE diff --git a/mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result b/mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result deleted file mode 100644 index 5a7381e9592..00000000000 --- a/mysql-test/suite/funcs_1/r/datadict_help_tables_dev.result +++ /dev/null @@ -1,18 +0,0 @@ -SELECT * FROM INFORMATION_SCHEMA.TABLES -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL mysql help_category BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories -NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords -NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation -NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics -SELECT * FROM INFORMATION_SCHEMA.STATISTICS -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE -NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE -NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE -NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE -NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE -NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE -NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE -NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE diff --git a/mysql-test/suite/funcs_1/r/innodb__datadict.result b/mysql-test/suite/funcs_1/r/innodb__datadict.result deleted file mode 100644 index 9fa268b37e3..00000000000 --- a/mysql-test/suite/funcs_1/r/innodb__datadict.result +++ /dev/null @@ -1,12916 +0,0 @@ - -. -. It is intended that the 3 __datadict.test files are named this way to be -. sure they are - in a *full run* of the suite - the first tests done for each -. storage engine. Using two _ and the order of processing in mysql-test-run.pl -. ensures this in an easy way. -. -. If needed a restart could be implemented later between the storage engines if -. values changes in the result depending from the position where the -. *__datadict.test are started. This can be a result of showing e.g. maximum -. values of the number of rows of tables. -. -. This .result file has been checked OK with Linux 5.0.48, -. build tree ChangeSet@1.2477.6.3, 2007-07-30 -. except that the not fixed Bug#30020 causes a difference. -. --------------------------------------------------------------------------------- - -FIXME: There are subtests that are switched off due to known bugs: ------------------------------------------------------------------- -SELECT 1 AS "have_bug_11589"; -have_bug_11589 -1 - -There are some statements where the ps-protocol is switched off. -This may come from the bug listed below, ir from other problems. -Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill --------------------------------------------------------------------------------- -SET @NO_REFRESH = IF( '' = '', 0, 1); -DROP DATABASE IF EXISTS test1; -CREATE DATABASE test1; -USE test; -drop table if exists tb1 ; -create table tb1 ( -f1 char(0), -f2 char(0) binary, -f3 char(0) ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, -f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal, -f34 decimal unsigned, -f35 decimal zerofill, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, -f58 numeric (64) not null DEFAULT 99 -) engine = innodb; -Warnings: -Note 1265 Data truncated for column 'f36' at row 1 -Note 1265 Data truncated for column 'f37' at row 1 -Note 1265 Data truncated for column 'f38' at row 1 -Note 1265 Data truncated for column 'f39' at row 1 -Note 1265 Data truncated for column 'f40' at row 1 -Note 1265 Data truncated for column 'f41' at row 1 -Note 1265 Data truncated for column 'f42' at row 1 -Note 1265 Data truncated for column 'f43' at row 1 -Note 1265 Data truncated for column 'f44' at row 1 -Note 1265 Data truncated for column 'f45' at row 1 -Note 1265 Data truncated for column 'f47' at row 1 -Note 1265 Data truncated for column 'f49' at row 1 -Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ; -drop table if exists tb2 ; -create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", -f109 set("1set","2set") not null default "1set" -) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; -drop table if exists tb3 ; -create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) -) engine = innodb; -Warnings: -Note 1265 Data truncated for column 'f150' at row 1 -Note 1265 Data truncated for column 'f151' at row 1 -Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; -drop table if exists tb4; -create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f235 char(0) unicode, -f236 char(90), -f237 char(255) ascii, -f238 varchar(0), -f239 varchar(20000) binary, -f240 varchar(2000) unicode, -f241 char(100) unicode -) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ; -USE test1; -drop table if exists tb2 ; -create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", -f109 set("1set","2set") not null default "1set" -) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; -USE test; -USE test; -DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; -drop TABLE if exists t3; -CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = innodb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; -drop database if exists test4; -CREATE database test4; -use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = innodb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; -use test; -drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = innodb; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = innodb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 -drop TABLE if exists t9; -CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = innodb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; -use information_schema; - -root@localhost information_schema - -Testcase 3.2.1.1: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE VIEW v1 AS SELECT * FROM information_schema.tables; -CREATE OR REPLACE VIEW db_datadict.vu1 as -SELECT grantee AS u -FROM information_schema.user_privileges; -CREATE OR REPLACE VIEW db_datadict.vu as -SELECT DISTINCT u, -SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 ) -AS server, -SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3, -LENGTH( SUBSTRING( u, -LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 ) -AS Server_Clean -FROM db_datadict.vu1; -SELECT * FROM db_datadict.vu order by u; -u server Server_Clean -'root'@'127.0.0.1' 127.0.0.1' 127.0.0.1 -'root'@'' ' -'root'@'localhost' localhost' localhost -CREATE PROCEDURE db_datadict.sp_1() -BEGIN -SELECT * FROM db_datadict.v1; -END// -USE information_schema; -SHOW tables; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -select * from schemata ORDER BY 2 DESC, 1 ASC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test4 latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -SELECT * FROM tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME CHARACTER_SETS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATIONS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMNS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMN_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME KEY_COLUMN_USAGE -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME ROUTINES -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMATA -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMA_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME STATISTICS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_CONSTRAINTS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TRIGGERS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME USER_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME VIEWS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -SELECT * FROM tables -WHERE NOT( table_schema = 'information_schema') -AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME v1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME columns_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Column privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME db -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 2 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME func -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT User defined functions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME host -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Host privileges; Merged with database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME proc -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 1 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Stored Procedures -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME procs_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Procedure privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME tables_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Table privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 5 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT 6 -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_leap_second -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 22 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Leap seconds information for time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_name -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 6 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone names -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 393 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transitions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition_type -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 31 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transition types -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME user -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 3 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Users and global privileges -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t1 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t10 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t11 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t2 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t3 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t4 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t7 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t8 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t9 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb1 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb3 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb4 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test1 -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test4 -TABLE_NAME t6 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from schemata s inner join tables t -ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; -catalog_name schema_name default_character_set_name table_type engine -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -select * from columns; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL db_datadict v1 TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL db_datadict v1 TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select,insert,update,references -NULL db_datadict v1 TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select,insert,update,references -NULL db_datadict v1 TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select,insert,update,references -NULL db_datadict vu u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references -NULL db_datadict vu server 2 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references -NULL db_datadict vu Server_Clean 3 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references -NULL db_datadict vu1 u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references -NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references -NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references -NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references -NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references -NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references -NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references -NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references -NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references -NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references -NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references -NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references -NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references -NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references -NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references -NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references -NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references -NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references -NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references -NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references -NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select * from character_sets; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -latin1 latin1_swedish_ci cp1252 West European 1 -latin2 latin2_general_ci ISO 8859-2 Central European 1 -swe7 swe7_swedish_ci 7bit Swedish 1 -ascii ascii_general_ci US ASCII 1 -ujis ujis_japanese_ci EUC-JP Japanese 3 -sjis sjis_japanese_ci Shift-JIS Japanese 2 -hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 -tis620 tis620_thai_ci TIS620 Thai 1 -euckr euckr_korean_ci EUC-KR Korean 2 -koi8u koi8u_general_ci KOI8-U Ukrainian 1 -gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 -greek greek_general_ci ISO 8859-7 Greek 1 -cp1250 cp1250_general_ci Windows Central European 1 -gbk gbk_chinese_ci GBK Simplified Chinese 2 -latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 -armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 -utf8 utf8_general_ci UTF-8 Unicode 3 -ucs2 ucs2_general_ci UCS-2 Unicode 2 -cp866 cp866_general_ci DOS Russian 1 -keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 -macce macce_general_ci Mac Central European 1 -macroman macroman_general_ci Mac West European 1 -cp852 cp852_general_ci DOS Central European 1 -latin7 latin7_general_ci ISO 8859-13 Baltic 1 -cp1251 cp1251_general_ci Windows Cyrillic 1 -cp1256 cp1256_general_ci Windows Arabic 1 -cp1257 cp1257_general_ci Windows Baltic 1 -binary binary Binary pseudo charset 1 -geostd8 geostd8_general_ci GEOSTD8 Georgian 1 -cp932 cp932_japanese_ci SJIS for Windows Japanese 2 -eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 -select sum(id) from collations where collation_name <> 'utf8_general_cs'; -sum(id) -10741 -select collation_name, character_set_name into @x,@y -from collation_character_set_applicability limit 1; -select @x, @y; -@x @y -big5_chinese_ci big5 -select * from routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -select count(*) from routines; -count(*) -1 -select * from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 3 type A 1 NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 0 NULL NULL BTREE -NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE -NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE -NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE -select * from views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER -NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER -select * from user_privileges order by grantee, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * from schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -select * from table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from column_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -NULL mysql PRIMARY mysql help_keyword PRIMARY KEY -NULL mysql name mysql help_keyword UNIQUE -NULL mysql PRIMARY mysql help_relation PRIMARY KEY -NULL mysql PRIMARY mysql help_topic PRIMARY KEY -NULL mysql name mysql help_topic UNIQUE -NULL mysql PRIMARY mysql host PRIMARY KEY -NULL mysql PRIMARY mysql proc PRIMARY KEY -NULL mysql PRIMARY mysql procs_priv PRIMARY KEY -NULL mysql PRIMARY mysql tables_priv PRIMARY KEY -NULL mysql PRIMARY mysql time_zone PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_leap_second PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_name PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_transition PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_transition_type PRIMARY KEY -NULL mysql PRIMARY mysql user PRIMARY KEY -select * from key_column_usage; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL -select count(*) as max_recs from key_column_usage; -max_recs -40 -select max(cardinality) from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); -max(cardinality) -393 -select concat("View '", -table_name, "' is associated with the database '", table_schema, "'.") -AS "Who is Who for the Views" - from views; -Who is Who for the Views -View 'v1' is associated with the database 'db_datadict'. -View 'vu' is associated with the database 'db_datadict'. -View 'vu1' is associated with the database 'db_datadict'. -select concat("Table or view '", table_name, -"' is associated with the database '", table_schema, "'.") as "Who is Who" - from tables; -Who is Who -Table or view 'CHARACTER_SETS' is associated with the database 'information_schema'. -Table or view 'COLLATIONS' is associated with the database 'information_schema'. -Table or view 'COLLATION_CHARACTER_SET_APPLICABILITY' is associated with the database 'information_schema'. -Table or view 'COLUMNS' is associated with the database 'information_schema'. -Table or view 'COLUMN_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'KEY_COLUMN_USAGE' is associated with the database 'information_schema'. -Table or view 'ROUTINES' is associated with the database 'information_schema'. -Table or view 'SCHEMATA' is associated with the database 'information_schema'. -Table or view 'SCHEMA_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'STATISTICS' is associated with the database 'information_schema'. -Table or view 'TABLES' is associated with the database 'information_schema'. -Table or view 'TABLE_CONSTRAINTS' is associated with the database 'information_schema'. -Table or view 'TABLE_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'TRIGGERS' is associated with the database 'information_schema'. -Table or view 'USER_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'VIEWS' is associated with the database 'information_schema'. -Table or view 'v1' is associated with the database 'db_datadict'. -Table or view 'vu' is associated with the database 'db_datadict'. -Table or view 'vu1' is associated with the database 'db_datadict'. -Table or view 'columns_priv' is associated with the database 'mysql'. -Table or view 'db' is associated with the database 'mysql'. -Table or view 'func' is associated with the database 'mysql'. -Table or view 'help_category' is associated with the database 'mysql'. -Table or view 'help_keyword' is associated with the database 'mysql'. -Table or view 'help_relation' is associated with the database 'mysql'. -Table or view 'help_topic' is associated with the database 'mysql'. -Table or view 'host' is associated with the database 'mysql'. -Table or view 'proc' is associated with the database 'mysql'. -Table or view 'procs_priv' is associated with the database 'mysql'. -Table or view 'tables_priv' is associated with the database 'mysql'. -Table or view 'time_zone' is associated with the database 'mysql'. -Table or view 'time_zone_leap_second' is associated with the database 'mysql'. -Table or view 'time_zone_name' is associated with the database 'mysql'. -Table or view 'time_zone_transition' is associated with the database 'mysql'. -Table or view 'time_zone_transition_type' is associated with the database 'mysql'. -Table or view 'user' is associated with the database 'mysql'. -Table or view 't1' is associated with the database 'test'. -Table or view 't10' is associated with the database 'test'. -Table or view 't11' is associated with the database 'test'. -Table or view 't2' is associated with the database 'test'. -Table or view 't3' is associated with the database 'test'. -Table or view 't4' is associated with the database 'test'. -Table or view 't7' is associated with the database 'test'. -Table or view 't8' is associated with the database 'test'. -Table or view 't9' is associated with the database 'test'. -Table or view 'tb1' is associated with the database 'test'. -Table or view 'tb2' is associated with the database 'test'. -Table or view 'tb3' is associated with the database 'test'. -Table or view 'tb4' is associated with the database 'test'. -Table or view 'tb2' is associated with the database 'test1'. -Table or view 't6' is associated with the database 'test4'. -select grantee as "user's having select privilege", -substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 ) -from user_privileges where privilege_type = 'select' - order by grantee; -user's having select privilege substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 ) -'root'@'127.0.0.1' '127.0.0.1' -'root'@'' '' -'root'@'localhost' 'localhost' -select all table_schema from schema_privileges limit 0,5; -table_schema -test -test -test -test -test -select distinct(privilege_type) from table_privileges; -privilege_type -select * from column_privileges -group by table_schema having table_schema = 'db_datadict'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from table_constraints limit 0,5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select count(*) as max_recs from key_column_usage limit 0,5; -max_recs -40 -select information_schema.tables.table_name as "table name", -count(distinct(column_name)) as "no of columns in the table" - from information_schema.tables left outer join information_schema.columns on -information_schema.tables.table_name = information_schema.columns.table_name -group by information_schema.tables.table_name; -table name no of columns in the table -CHARACTER_SETS 4 -COLLATIONS 6 -COLLATION_CHARACTER_SET_APPLICABILITY 2 -COLUMNS 19 -columns_priv 7 -COLUMN_PRIVILEGES 7 -db 20 -func 4 -help_category 4 -help_keyword 2 -help_relation 2 -help_topic 6 -host 19 -KEY_COLUMN_USAGE 12 -proc 16 -procs_priv 8 -ROUTINES 20 -SCHEMATA 5 -SCHEMA_PRIVILEGES 5 -STATISTICS 15 -t1 6 -t10 6 -t11 6 -t2 6 -t3 3 -t4 6 -t6 6 -t7 4 -t8 4 -t9 3 -TABLES 21 -tables_priv 8 -TABLE_CONSTRAINTS 6 -TABLE_PRIVILEGES 6 -tb1 58 -tb2 51 -tb3 58 -tb4 58 -time_zone 2 -time_zone_leap_second 2 -time_zone_name 2 -time_zone_transition 3 -time_zone_transition_type 5 -TRIGGERS 19 -user 37 -USER_PRIVILEGES 4 -v1 21 -VIEWS 8 -vu 3 -vu1 1 - -root: simple select to check all - and never forget some - tables ------------------------------------------------------------------ -SELECT * FROM schemata LIMIT 1; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -SELECT * FROM tables LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL utf8_general_ci NULL #CO# -SELECT * FROM columns LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -SELECT * FROM character_sets LIMIT 1; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -SELECT * FROM collations where collation_name <> 'utf8_general_cs' LIMIT 1; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -SELECT * FROM collation_character_set_applicability where collation_name <> 'utf8_general_cs' LIMIT 1; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -SELECT * FROM routines LIMIT 1; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost -SELECT * FROM statistics LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -SELECT * FROM views LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -SELECT * FROM user_privileges LIMIT 1; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'localhost' NULL SELECT YES -SELECT * FROM schema_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -SELECT * FROM table_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM column_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM table_constraints LIMIT 1; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -SELECT * FROM key_column_usage LIMIT 1; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -SELECT * FROM triggers LIMIT 1; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -SELECT * FROM parameters LIMIT 1; -ERROR 42S02: Unknown table 'parameters' in information_schema -SELECT * FROM referential_constraints LIMIT 1; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema -use db_datadict; -select * from schemata; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -select * from tables; -ERROR 42S02: Table 'db_datadict.tables' doesn't exist -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from schemata s inner join tables t -ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -select * from columns limit 0, 5; -ERROR 42S02: Table 'db_datadict.columns' doesn't exist -select * from character_sets limit 0, 5; -ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist -select * from collations limit 0, 5; -ERROR 42S02: Table 'db_datadict.collations' doesn't exist -select * from collation_character_set_applicability limit 0, 5; -ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist -select * from routines limit 0, 5; -ERROR 42S02: Table 'db_datadict.routines' doesn't exist -select * from statistics limit 0, 5; -ERROR 42S02: Table 'db_datadict.statistics' doesn't exist -select * from views limit 0, 5; -ERROR 42S02: Table 'db_datadict.views' doesn't exist -select * from user_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist -select * from schema_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist -select * from table_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist -select * from column_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist -select * from table_constraints limit 0, 5; -ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist -select * from key_column_usage limit 0, 5; -ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist - -will fail due to missing database name --------------------------------------- - -known error 1146: ------------------ -SELECT * FROM schemata ; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * FROM tables ; -ERROR 42S02: Table 'db_datadict.tables' doesn't exist -SELECT * FROM columns ; -ERROR 42S02: Table 'db_datadict.columns' doesn't exist -SELECT * FROM character_sets ; -ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist -SELECT * FROM collations ; -ERROR 42S02: Table 'db_datadict.collations' doesn't exist -SELECT * FROM collation_character_set_applicability ; -ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist -SELECT * FROM routines ; -ERROR 42S02: Table 'db_datadict.routines' doesn't exist -SELECT * FROM statistics ; -ERROR 42S02: Table 'db_datadict.statistics' doesn't exist -SELECT * FROM views ; -ERROR 42S02: Table 'db_datadict.views' doesn't exist -SELECT * FROM user_privileges ; -ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist -SELECT * FROM schema_privileges ; -ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist -SELECT * FROM table_privileges ; -ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist -SELECT * FROM column_privileges ; -ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist -SELECT * FROM table_constraints ; -ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist -SELECT * FROM key_column_usage ; -ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist -SELECT * FROM triggers ; -ERROR 42S02: Table 'db_datadict.triggers' doesn't exist -select * from information_schema.schemata ORDER BY 2 DESC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test4 latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME CHARACTER_SETS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATIONS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMNS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMN_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME KEY_COLUMN_USAGE -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME ROUTINES -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMATA -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMA_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME STATISTICS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_CONSTRAINTS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TRIGGERS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME USER_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME VIEWS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema') -AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME v1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME columns_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Column privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME db -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 2 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME func -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT User defined functions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME host -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Host privileges; Merged with database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME proc -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 1 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Stored Procedures -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME procs_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Procedure privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME tables_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Table privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 5 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT 6 -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_leap_second -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 22 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Leap seconds information for time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_name -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 6 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone names -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 393 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transitions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition_type -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 31 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transition types -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME user -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 3 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Users and global privileges -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t1 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t10 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t11 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t2 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t3 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t4 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t7 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t8 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t9 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb1 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb3 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb4 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test1 -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -TABLE_CATALOG NULL -TABLE_SCHEMA test4 -TABLE_NAME t6 -TABLE_TYPE BASE TABLE -ENGINE InnoDB -VERSION 10 -ROW_FORMAT Compact -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT InnoDB free: 3072 kB -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from information_schema.schemata s inner join information_schema.tables t -ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; -catalog_name schema_name default_character_set_name table_type engine -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE InnoDB -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE InnoDB -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE InnoDB -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE InnoDB -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE InnoDB -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE InnoDB -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -select * from information_schema.columns limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -select * from information_schema.character_sets limit 0, 5; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -select * from information_schema.collations limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -big5_bin big5 84 Yes 1 -dec8_swedish_ci dec8 3 Yes 0 -dec8_bin dec8 69 0 -cp850_general_ci cp850 4 Yes 0 -select * from information_schema.collation_character_set_applicability limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -select * from information_schema.routines limit 0, 5; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -select * from information_schema.statistics limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -select * from information_schema.views limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER -NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER -select * from information_schema.user_privileges limit 0, 5; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL UPDATE YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL CREATE YES -select * from information_schema.schema_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -select * from information_schema.table_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from information_schema.column_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from information_schema.table_constraints limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select * from information_schema.key_column_usage limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -select count(*) as max_recs from information_schema.key_column_usage limit 0, 5; -max_recs -40 - -root: check with db name ------------------------- -SELECT COUNT(*) FROM information_schema. schemata ; -COUNT(*) -6 -SELECT COUNT(*) FROM information_schema. tables ; -COUNT(*) -51 -SELECT COUNT(*) FROM information_schema. columns ; -COUNT(*) -657 -SELECT COUNT(*) FROM information_schema. character_sets ; -COUNT(*) -36 -SELECT COUNT(*) FROM information_schema. collations where collation_name <> 'utf8_general_cs' ; -COUNT(*) -126 -SELECT COUNT(*) FROM information_schema. collation_character_set_applicability where collation_name <> 'utf8_general_cs' ; -COUNT(*) -126 -SELECT COUNT(*) FROM information_schema. routines ; -COUNT(*) -1 -SELECT COUNT(*) FROM information_schema. statistics ; -COUNT(*) -43 -SELECT COUNT(*) FROM information_schema. views ; -COUNT(*) -3 -SELECT COUNT(*) FROM information_schema. user_privileges ; -COUNT(*) -75 -SELECT COUNT(*) FROM information_schema. schema_privileges ; -COUNT(*) -28 -SELECT COUNT(*) FROM information_schema. table_privileges ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. column_privileges ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. table_constraints ; -COUNT(*) -20 -SELECT COUNT(*) FROM information_schema. key_column_usage ; -COUNT(*) -40 -SELECT COUNT(*) FROM information_schema. triggers ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. parameters ; -ERROR 42S02: Unknown table 'parameters' in information_schema -SELECT COUNT(*) FROM information_schema. referential_constraints ; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema -USE db_datadict; -DROP VIEW v1, vu1, vu; -DROP PROCEDURE db_datadict.sp_1; -USE information_schema; - -Testcase 3.2.1.2: --------------------------------------------------------------------------------- -select catalog_name, schema_name, default_character_set_name -from schemata where schema_name like '%s%'; -catalog_name schema_name default_character_set_name -NULL information_schema utf8 -NULL mysql latin1 -NULL test latin1 -NULL test1 latin1 -NULL test4 latin1 -select count(*) as tot_tabs from tables; -tot_tabs -48 -select count(*) as the_cols from columns; -the_cols -632 -select max(maxlen) as the_max from character_sets; -the_max -3 -select * from collations order by id asc limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -latin2_czech_cs latin2 2 Yes 4 -dec8_swedish_ci dec8 3 Yes 0 -cp850_general_ci cp850 4 Yes 0 -latin1_german1_ci latin1 5 Yes 1 -select * from collation_character_set_applicability -order by character_set_name desc, collation_name limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME -utf8_bin utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_esperanto_ci utf8 -utf8_estonian_ci utf8 -select routine_definition from routines; -routine_definition -select * from statistics where table_name not like 'help_%' -group by index_name asc limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -select concat(table_schema, ', ', table_name, ', ', view_definition) view_info -from views; -view_info -select concat(table_schema, ', ', table_name) "Table_info" - from tables ORDER BY 1; -Table_info -information_schema, CHARACTER_SETS -information_schema, COLLATIONS -information_schema, COLLATION_CHARACTER_SET_APPLICABILITY -information_schema, COLUMNS -information_schema, COLUMN_PRIVILEGES -information_schema, KEY_COLUMN_USAGE -information_schema, ROUTINES -information_schema, SCHEMATA -information_schema, SCHEMA_PRIVILEGES -information_schema, STATISTICS -information_schema, TABLES -information_schema, TABLE_CONSTRAINTS -information_schema, TABLE_PRIVILEGES -information_schema, TRIGGERS -information_schema, USER_PRIVILEGES -information_schema, VIEWS -mysql, columns_priv -mysql, db -mysql, func -mysql, help_category -mysql, help_keyword -mysql, help_relation -mysql, help_topic -mysql, host -mysql, proc -mysql, procs_priv -mysql, tables_priv -mysql, time_zone -mysql, time_zone_leap_second -mysql, time_zone_name -mysql, time_zone_transition -mysql, time_zone_transition_type -mysql, user -test, t1 -test, t10 -test, t11 -test, t2 -test, t3 -test, t4 -test, t7 -test, t8 -test, t9 -test, tb1 -test, tb2 -test, tb3 -test, tb4 -test1, tb2 -test4, t6 -select distinct grantee from user_privileges order by grantee, privilege_type; -grantee -'root'@'127.0.0.1' -'root'@'' -'root'@'localhost' -select * from schema_privileges where table_catalog is null limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -select * from table_privileges where grantee like '%r%' limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from column_privileges where table_catalog is not null limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select HIGH_PRIORITY * from table_constraints -group by constraint_name desc limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select sum(ordinal_position) from key_column_usage; -sum(ordinal_position) -77 -select * from schemata limit 0,5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -select * from schemata limit 0,5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -select distinct grantee from user_privileges; -grantee -'root'@'127.0.0.1' -'root'@'' -'root'@'localhost' -select all grantee from user_privileges order by grantee, privilege_type; -grantee -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -select id , character_set_name from collations order by id asc limit 10; -id character_set_name -1 big5 -2 latin2 -3 dec8 -4 cp850 -5 latin1 -6 hp8 -7 koi8r -8 latin1 -9 latin2 -10 swe7 -select table_catalog from columns -union all -select table_catalog from tables limit 0,5; -table_catalog -NULL -NULL -NULL -NULL -NULL -select table_catalog from columns -union -select table_catalog from tables limit 0,5; -table_catalog -NULL -select all schema_name from information_schema.schemata; -schema_name -information_schema -db_datadict -mysql -test -test1 -test4 -SELECT * -INTO OUTFILE '../tmp/out.innodb.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -USE test; -SELECT * -INTO OUTFILE '../tmp/out.innodb.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CREATE USER user_3212@localhost; -GRANT ALL ON db_datadict.* TO user_3212@localhost; -GRANT FILE ON *.* TO user_3212@localhost; -connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -user_3212@localhost db_datadict -SELECT * -INTO OUTFILE '../tmp/out.innodb.user.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * -FROM schemata LIMIT 0, 5; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * -INTO OUTFILE '../tmp/out.innodb.user.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -SELECT * -FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -USE information_schema; -SELECT * -INTO OUTFILE '../tmp/out.innodb.user_2.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -SELECT * -FROM schemata LIMIT 0, 5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -SELECT * -INTO OUTFILE '../tmp/out.innodb.user_2.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -SELECT * -FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -USE information_schema; - -root@localhost information_schema -use db_datadict; -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from information_schema.columns -union -select table_catalog, table_schema, table_name, -concat( "*** type = ", table_type ) -from information_schema.tables -order by 3, 4 desc, 1, 2 limit 30; -1 2 3 4 -NULL information_schema CHARACTER_SETS MAXLEN -NULL information_schema CHARACTER_SETS DESCRIPTION -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME -NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW -NULL information_schema COLLATIONS SORTLEN -NULL information_schema COLLATIONS IS_DEFAULT -NULL information_schema COLLATIONS IS_COMPILED -NULL information_schema COLLATIONS ID -NULL information_schema COLLATIONS COLLATION_NAME -NULL information_schema COLLATIONS CHARACTER_SET_NAME -NULL information_schema COLLATIONS *** type = SYSTEM VIEW -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW -NULL information_schema COLUMNS TABLE_SCHEMA -NULL information_schema COLUMNS TABLE_NAME -NULL information_schema COLUMNS TABLE_CATALOG -NULL information_schema COLUMNS PRIVILEGES -NULL information_schema COLUMNS ORDINAL_POSITION -NULL information_schema COLUMNS NUMERIC_SCALE -NULL information_schema COLUMNS NUMERIC_PRECISION -NULL information_schema COLUMNS IS_NULLABLE -NULL information_schema COLUMNS EXTRA -NULL information_schema COLUMNS DATA_TYPE -NULL information_schema COLUMNS COLUMN_TYPE -NULL information_schema COLUMNS COLUMN_NAME -NULL information_schema COLUMNS COLUMN_KEY -NULL information_schema COLUMNS COLUMN_DEFAULT -NULL information_schema COLUMNS COLUMN_COMMENT -use information_schema; -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from columns -union -select table_catalog, table_schema, table_name, -concat( "*** type = ", table_type ) -from tables -order by 3, 4 desc, 1, 2 limit 30; -1 2 3 4 -NULL information_schema CHARACTER_SETS MAXLEN -NULL information_schema CHARACTER_SETS DESCRIPTION -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME -NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW -NULL information_schema COLLATIONS SORTLEN -NULL information_schema COLLATIONS IS_DEFAULT -NULL information_schema COLLATIONS IS_COMPILED -NULL information_schema COLLATIONS ID -NULL information_schema COLLATIONS COLLATION_NAME -NULL information_schema COLLATIONS CHARACTER_SET_NAME -NULL information_schema COLLATIONS *** type = SYSTEM VIEW -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW -NULL information_schema COLUMNS TABLE_SCHEMA -NULL information_schema COLUMNS TABLE_NAME -NULL information_schema COLUMNS TABLE_CATALOG -NULL information_schema COLUMNS PRIVILEGES -NULL information_schema COLUMNS ORDINAL_POSITION -NULL information_schema COLUMNS NUMERIC_SCALE -NULL information_schema COLUMNS NUMERIC_PRECISION -NULL information_schema COLUMNS IS_NULLABLE -NULL information_schema COLUMNS EXTRA -NULL information_schema COLUMNS DATA_TYPE -NULL information_schema COLUMNS COLUMN_TYPE -NULL information_schema COLUMNS COLUMN_NAME -NULL information_schema COLUMNS COLUMN_KEY -NULL information_schema COLUMNS COLUMN_DEFAULT -NULL information_schema COLUMNS COLUMN_COMMENT -DROP USER user_3212@localhost; - -Testcase 3.2.1.3: --------------------------------------------------------------------------------- -insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path) -values ('null', 'db1', 'latin1', 'null'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into tables (table_schema, table_name)values('db_datadict', 't1'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into columns (table_name, column_name)values('t3', 'f2'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into character_sets (character_set_name, default_collate_name, description, maxlen) -values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen) -values ('cp1251_bin', 'cp1251', 50, '', '', 0); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into collation_character_set_applicability (collation_name, character_set_name) -values (' big5_chinese_ci', 'big6'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into routines(routine_name, routine_type ) values ('p2', 'procedure'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into statistics(table_schema, table_name, index_name) -values ('mysql', 'db', 'primary'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into views(table_schema, table_name) values ('db2', 'v2'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into table_privileges (able_schema, table_name, privilege_type) -values('db2', 'v2', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into column_privileges (table_name, column_name, privilege_type) -values ('t3', 'f3', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into table_constraints ( constraint_schema, constraint_name, table_schema) -values ('primary', 'mysql', 'user'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into key_column_usage (constraint_schema, constraint_name, table_name) -values ('mysql', 'primary', 'db'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_3; -create procedure db_datadict.sp_4_1_3() -begin -insert into information_schema.schema_privileges (table_schema,privilege_type) -values('db2','insert'); -end// -SELECT table_schema, privilege_type FROM information_schema.schema_privileges -WHERE table_schema LIKE 'db%'; -table_schema privilege_type -call db_datadict.sp_4_1_3(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -SELECT table_schema, privilege_type FROM information_schema.schema_privileges -WHERE table_schema LIKE 'db%'; -table_schema privilege_type -drop procedure db_datadict.sp_4_1_3; -CREATE USER user_4_1_3@localhost; -connect(localhost,user_4_1_3,,test,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_3@localhost test -use information_schema; -insert into table_constraints ( constraint_schema, constraint_name, table_schema) -values ('primary', 'mysql', 'user'); -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema - -Testcase 3.2.1.4: --------------------------------------------------------------------------------- -use information_schema; - -root@localhost information_schema -update schemata set schema_name = 'db5' where default_character_set_name = 'latin1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update tables set table_schema = 'db_datadict1' where table_name = 't1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update character_sets set character_set_name = 'cp1252' where maxlen = 1; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update collations set collation_name = 'cp1253_bin' - where character_set_name = 'cp1251'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update collation_character_set_applicability set collation_name = 'big6_chinese_ci' - where character_set_name = 'big6'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update routines set routine_name = p2 where routine_body = 'sql'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update statistics set table_schema = 'mysql1' where table_name = 'db'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update views set table_schema = 'db3' where table_name = 'v1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update schema_privileges set table_schema = 'db2' where privilege_type = 'select'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update table_privileges set table_name = 'v3' where privilege_type = 'select'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update column_privileges set table_name = 't4' where column_name = 'f3'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update table_constraints set constraint_schema = 'primary' - where table_schema = 'proc'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update key_column_usage set table_name = 'db1' where constraint_name = 'primary'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_4; -create procedure db_datadict.sp_4_1_4() -begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end// -select * from information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -call db_datadict.sp_4_1_4(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -select * from information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -drop procedure db_datadict.sp_4_1_4; -use information_schema; - -user_4_1_3@localhost information_schema -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema - -Testcase 3.2.1.5: --------------------------------------------------------------------------------- -use information_schema; - -root: DELETE FROM any table in IS ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DELETE FROM schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from schemata where schema_name = 'mysql'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from tables where table_name = 'abc'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from columns; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from character_sets; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from collations; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from collation_character_set_applicability; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from routines; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from statistics; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from views; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from user_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from schema_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from table_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from column_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from table_constraints; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from key_column_usage; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_5; -create procedure db_datadict.sp_4_1_5() -begin -delete from information_schema.column_privileges; -end// -call db_datadict.sp_4_1_5(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure db_datadict.sp_4_1_5; -use information_schema; - -user_4_1_3@localhost information_schema -delete from tables where table_name = 'abc'; -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_3@localhost; - -Testcase 3.2.1.6: --------------------------------------------------------------------------------- -use information_schema; - -root: create a table with a name of an IS table directly in IS --------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE schemata ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE tables ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE columns ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE collations ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE routines ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE statistics ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE views ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE triggers ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create table t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -use db_datadict; - -root: create a table with a name of an IS table from other db -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE information_schema. schemata ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. tables ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. columns ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collations ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. routines ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. statistics ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. views ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. triggers ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create table information_schema.t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -CREATE USER user_4_1_6@localhost; -grant all on *.* to user_4_1_6@localhost; -FLUSH PRIVILEGES; -SHOW GRANTS FOR user_4_1_6@localhost; -Grants for user_4_1_6@localhost -GRANT ALL PRIVILEGES ON *.* TO 'user_4_1_6'@'localhost' -connect(localhost,user_4_1_6,,information_schema,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_6@localhost information_schema -use information_schema; - -user: create a table with a name of an IS table directly in IS --------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE schemata ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE tables ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE columns ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE collations ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE routines ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE statistics ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE views ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE triggers ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -create table t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -use test; - -user: create a table with a name of an IS table from other db -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE information_schema. schemata ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. tables ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. columns ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collations ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. routines ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. statistics ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. views ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. triggers ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -create table information_schema.t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema - -root@localhost db_datadict -DROP USER user_4_1_6@localhost; - -Testcase 3.2.1.7: --------------------------------------------------------------------------------- -use information_schema; - -root: create a view with a name of an IS table directly in IS -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW schemata AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW tables AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW columns AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW character_sets AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW collations AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW collation_character_set_applicability AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW routines AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW statistics AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW views AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW user_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW schema_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW table_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW column_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW table_constraints AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW key_column_usage AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW triggers AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW v1 AS SELECT * FROM information_schema.schemata; -ERROR 42S02: Unknown table 'v1' in information_schema -USE db_datadict; - -root: create a view with a name of an IS table from other db ------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW information_schema. schemata AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. tables AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. columns AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. character_sets AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collations AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. routines AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. statistics AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. views AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. user_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. schema_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. column_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_constraints AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. key_column_usage AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. triggers AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW v1 AS SELECT * FROM information_schema.columns; -SELECT * FROM v1 LIMIT 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -CREATE USER user_4_1_7@localhost; -GRANT ALL ON db_datadict.* TO user_4_1_7@localhost; -GRANT ALL ON information_schema.* TO user_4_1_7@localhost; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,user_4_1_7,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_7@localhost information_schema - -user: create a view with a name of an IS table directly in IS -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW schemata AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW tables AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW columns AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW character_sets AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW collations AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW collation_character_set_applicability AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW routines AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW statistics AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW views AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW user_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW schema_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW table_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW column_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW table_constraints AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW key_column_usage AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW triggers AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -create view v1 as select * from table_privileges; -ERROR 42S02: Unknown table 'v1' in information_schema -use db_datadict; - -user: create a view with a name of an IS table from other db ------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW information_schema. schemata AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. tables AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. columns AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. character_sets AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collations AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. routines AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. statistics AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. views AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. user_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. schema_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. column_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_constraints AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. key_column_usage AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. triggers AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' - -root@localhost db_datadict -DROP USER user_4_1_7@localhost; -DROP VIEW db_datadict.v1; - -Testcase 3.2.1.8: --------------------------------------------------------------------------------- -use information_schema; -create index i1 on schemata(schema_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i2 on tables(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i3 on columns(table_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i4 on character_sets(character_set_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i6 on collation_character_set_applicability(collation_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i7 on routines(routine_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i8 on statistics(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i9 on views(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i10 on user_privileges(privilege_type); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i11 on schema_privileges(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i12 on table_privileges(able_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i13 on column_privileges(table_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i14 on table_constraints(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i15 on key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i16 on triggers(trigger_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use db_datadict; -create index i15 on information_schema.key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; -CREATE USER user_4_1_8@localhost; -grant select, index on *.* to user_4_1_8@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_8,,test,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_8@localhost test -use information_schema; -create index i1 on schemata(schema_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i2 on tables(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i3 on columns(table_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i4 on character_sets(character_set_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i6 on collation_character_set_applicability(collation_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i7 on routines(routine_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i8 on statistics(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i9 on views(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i10 on user_privileges(privilege_type); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i11 on schema_privileges(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i12 on table_privileges(able_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i13 on column_privileges(table_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i14 on table_constraints(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i15 on key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i16 on triggers(trigger_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -use db_datadict; -create index i15 on information_schema.key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_8@localhost; - -Testcase 3.2.1.9: --------------------------------------------------------------------------------- - -root: alter a table from other db ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; - -root: alter a table from directly ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE schemata ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE tables ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE columns ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE collations ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE routines ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE statistics ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE views ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE triggers ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table schemata add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table tables drop primary key; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table columns add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table character_sets disable keys; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table collations enable keys; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table collation_character_set_applicability add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table routines discard tablespace; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table statistics import tablespace; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table views drop column table_name; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table user_privileges drop index privilege_type; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table schema_privileges drop column is_grantable; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table table_privileges order by constraint_type; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table column_privileges rename to aaxyz; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table table_constraints order by schema_name; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table key_column_usage rename to information_schema.aabxyz; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table triggers rename to information_schema.sql_mode; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE USER user_4_1_9@localhost; -grant select, alter, create, insert on *.* to user_4_1_9@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_9,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_9@localhost db_datadict -use db_datadict; - -user: alter a table from other db ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -use information_schema; - -user: alter a table from directly ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE schemata ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE tables ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE columns ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE collations ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE routines ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE statistics ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE views ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE triggers ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_9@localhost; - -Testcase 3.2.1.10: --------------------------------------------------------------------------------- -use information_schema; - -root: drop a table from IS --------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use db_datadict; - -root: drop a table from other db --------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE information_schema. schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; -CREATE USER user_4_1_10@localhost; -GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_10,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_10@localhost information_schema - -user: drop a table from IS --------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE schemata ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE tables ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE columns ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE character_sets ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE collations ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE collation_character_set_applicability ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE routines ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE statistics ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE views ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE user_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE schema_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE table_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE column_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE table_constraints ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE key_column_usage ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE triggers ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -use db_datadict; - -user: drop a table from other db --------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE information_schema. schemata ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. tables ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. columns ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. character_sets ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collations ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. routines ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. statistics ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. views ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. user_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. column_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_constraints ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. triggers ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_10@localhost; -CREATE USER user_4_1_11@localhost; -GRANT SUPER ON *.* TO user_4_1_11@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_11,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_11@localhost information_schema -drop table routines; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -alter table collations enable keys; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name ); -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -create view v1 as select * from schemata; -ERROR 42S02: Unknown table 'v1' in information_schema -delete from columns; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -insert into collations ( collation_name, character_set_name, id, is_default, -is_compiled, sortlen) -values ('cp1251_bin', 'cp1251', 50, '', '', 0); -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_11@localhost; - -Testcase 3.2.1.11: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'u_6_401011'@'localhost'; -GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost'; -FLUSH PRIVILEGES; -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' - -root: move table to other DB ----------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -connect(localhost,u_6_401011,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; - -u_6_401011@localhost information_schema -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' - -user: move table to other DB ----------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP TABLE IF EXISTS db_datadict.schemata; -DROP USER 'u_6_401011'@'localhost'; - -Testcase 3.2.1.12: --------------------------------------------------------------------------------- - -root: delete from IS tables ---------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DELETE FROM information_schema. schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.tables SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.columns SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.statistics SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.views SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.table_privileges SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.column_privileges SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.table_constraints SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.key_column_usage SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.schemata SET catalog_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.character_sets SET description = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.collations SET character_set_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.collation_character_set_applicability -SET character_set_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.routines SET routine_type = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.user_privileges SET grantee = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.schema_privileges SET grantee = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.triggers SET sql_mode = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE USER 'u_6_401012'@'localhost'; -connect(localhost,u_6_401012,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; -insert into information_schema.schemata (catalog_name, schema_name, -default_character_set_name, sql_path) -values (null, information_schema1, utf16, null); -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.schemata rename db_datadict1.schemata; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.tables drop column checksum; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.statistics modify packed int; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.routines modify created int not null; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.key_column_usage drop column ordinal_position; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.table_privileges -change privilege_type rights_approved varchar(32); -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -delete from information_schema.collations; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' - -root@localhost information_schema -drop table if exists db_datadict1.schemata; -DROP USER 'u_6_401012'@'localhost'; - -Testcase 3.2.1.13: --------------------------------------------------------------------------------- -use information_schema; - -first check status >before< creating the objects ... ----------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401013(f1 char(10), f2 char(25), f3 int) -engine = innodb; -create view res_v_401013 as select * from res_t_401013; -CREATE USER u_6_401013@localhost; -create procedure sp_6_401013() select 'db_datadict'; -create function fn_6_401013() returns int return 0; -create index i_6_401013 on res_t_401013(f3); -use information_schema; - -now check whether all new objects exists in IS ... --------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict InnoDB -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL db_datadict res_t_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references -NULL db_datadict res_v_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL db_datadict res_v_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401013 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401013 FUNCTION DEFINER -sp_6_401013 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -res_t_401013 db_datadict i_6_401013 BTREE -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -'u_6_401013'@'localhost' NULL USAGE NO -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop index i_6_401013 on res_t_401013; -drop table db_datadict.res_t_401013; -drop view db_datadict.res_v_401013; -DROP USER u_6_401013@localhost; -drop procedure sp_6_401013; -drop function fn_6_401013; -drop database db_datadict; -use information_schema; - -and now check whether all objects are removed from IS ... ---------------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER - -Testcase 3.2.1.14: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401014(f1 char(10), f2 varchar(25), f3 int); -create view res_v_401014 as select * from res_t_401014; -create procedure sp_6_401014() select 'db_datadict'; -create function fn_6_401014() returns int return 0; - -show existing objects >before< changing them ... ------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_t_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict res_v_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_v_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401014 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401014 FUNCTION DEFINER -sp_6_401014 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -alter table res_t_401014 change f1 ff1 int; -alter table res_t_401014 engine = MEMORY; -alter table res_t_401014 change f3 f3_new bigint; -alter view res_v_401014 as select ff1 from res_t_401014; -alter procedure sp_6_401014 sql security invoker; -alter function fn_6_401014 comment 'updated comments'; -alter database db_datadict character set utf8; - -now check whether the changes are visible in IS ... ---------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict utf8 utf8_general_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MEMORY -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_t_401014 f3_new 3 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL db_datadict res_v_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401014 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401014 FUNCTION DEFINER -sp_6_401014 PROCEDURE INVOKER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop table db_datadict.res_t_401014; -drop view db_datadict.res_v_401014; -drop procedure sp_6_401014; -drop function fn_6_401014; -drop database db_datadict; - -Testcase 3.2.1.15: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401015(f1 char(10), f2 text(25), f3 int); -create view res_v_401015 as select * from res_t_401015; -CREATE USER u_6_401015@localhost; -create procedure sp_6_401015() select 'test'; -create function fn_6_401015() returns int return 0; -create index i_6_401015 on res_t_401015(f3); - -show existing objects >before< dropping them ... ------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL db_datadict res_t_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references -NULL db_datadict res_v_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL db_datadict res_v_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401015 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401015 FUNCTION DEFINER -sp_6_401015 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -res_t_401015 db_datadict i_6_401015 BTREE -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -'u_6_401015'@'localhost' NULL USAGE NO -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop index i_6_401015 on res_t_401015; -drop table db_datadict.res_t_401015; -drop view db_datadict.res_v_401015; -DROP USER u_6_401015@localhost; -drop procedure sp_6_401015; -drop function fn_6_401015; - -now check they are really gone ... ----------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER - -Testcase 3.2.1.16: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE DATABASE db_hidden; -USE db_hidden; -CREATE TABLE tb_hidden ( c1 TEXT ); -USE db_datadict; -CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int); -CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int); -CREATE USER 'u_6_401016'@'localhost'; -GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,u_6_401016,,test,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SELECT table_schema, table_name, engine -FROM TABLES; -table_schema table_name engine -information_schema CHARACTER_SETS MEMORY -information_schema COLLATIONS MEMORY -information_schema COLLATION_CHARACTER_SET_APPLICABILITY MEMORY -information_schema COLUMNS MyISAM -information_schema COLUMN_PRIVILEGES MEMORY -information_schema KEY_COLUMN_USAGE MEMORY -information_schema ROUTINES MyISAM -information_schema SCHEMATA MEMORY -information_schema SCHEMA_PRIVILEGES MEMORY -information_schema STATISTICS MEMORY -information_schema TABLES MEMORY -information_schema TABLE_CONSTRAINTS MEMORY -information_schema TABLE_PRIVILEGES MEMORY -information_schema TRIGGERS MyISAM -information_schema USER_PRIVILEGES MEMORY -information_schema VIEWS MyISAM -db_datadict res_t_401016 MyISAM -test t1 InnoDB -test t10 InnoDB -test t11 InnoDB -test t2 InnoDB -test t3 InnoDB -test t4 InnoDB -test t7 InnoDB -test t8 InnoDB -test t9 InnoDB -test tb1 InnoDB -test tb2 InnoDB -test tb3 InnoDB -test tb4 InnoDB -SHOW TABLES; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL - -root@localhost db_datadict -grant usage on information_schema.* to 'u_6_401016'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,u_6_401016,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SHOW TABLES; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -use db_datadict; - -root@localhost db_datadict -DROP USER 'u_6_401016'@'localhost'; -drop table res_t_401016; -drop table res_t_401016_1; -DROP DATABASE db_hidden; - -Testcase 3.2.1.17: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401017'@'localhost'; -grant select on information_schema.* to u_6_401017@localhost; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; -select * from collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -cp850_bin cp850 -hp8_english_ci hp8 -hp8_bin hp8 -koi8r_general_ci koi8r -koi8r_bin koi8r -latin1_german1_ci latin1 -latin1_swedish_ci latin1 -latin1_danish_ci latin1 -latin1_german2_ci latin1 -latin1_bin latin1 -latin1_general_ci latin1 -latin1_general_cs latin1 -latin1_spanish_ci latin1 -latin2_czech_cs latin2 -latin2_general_ci latin2 -latin2_hungarian_ci latin2 -latin2_croatian_ci latin2 -latin2_bin latin2 -swe7_swedish_ci swe7 -swe7_bin swe7 -ascii_general_ci ascii -ascii_bin ascii -ujis_japanese_ci ujis -ujis_bin ujis -sjis_japanese_ci sjis -sjis_bin sjis -hebrew_general_ci hebrew -hebrew_bin hebrew -tis620_thai_ci tis620 -tis620_bin tis620 -euckr_korean_ci euckr -euckr_bin euckr -koi8u_general_ci koi8u -koi8u_bin koi8u -gb2312_chinese_ci gb2312 -gb2312_bin gb2312 -greek_general_ci greek -greek_bin greek -cp1250_general_ci cp1250 -cp1250_czech_cs cp1250 -cp1250_croatian_ci cp1250 -cp1250_bin cp1250 -gbk_chinese_ci gbk -gbk_bin gbk -latin5_turkish_ci latin5 -latin5_bin latin5 -armscii8_general_ci armscii8 -armscii8_bin armscii8 -utf8_general_ci utf8 -utf8_bin utf8 -utf8_unicode_ci utf8 -utf8_icelandic_ci utf8 -utf8_latvian_ci utf8 -utf8_romanian_ci utf8 -utf8_slovenian_ci utf8 -utf8_polish_ci utf8 -utf8_estonian_ci utf8 -utf8_spanish_ci utf8 -utf8_swedish_ci utf8 -utf8_turkish_ci utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_lithuanian_ci utf8 -utf8_slovak_ci utf8 -utf8_spanish2_ci utf8 -utf8_roman_ci utf8 -utf8_persian_ci utf8 -utf8_esperanto_ci utf8 -utf8_hungarian_ci utf8 -ucs2_general_ci ucs2 -ucs2_bin ucs2 -ucs2_unicode_ci ucs2 -ucs2_icelandic_ci ucs2 -ucs2_latvian_ci ucs2 -ucs2_romanian_ci ucs2 -ucs2_slovenian_ci ucs2 -ucs2_polish_ci ucs2 -ucs2_estonian_ci ucs2 -ucs2_spanish_ci ucs2 -ucs2_swedish_ci ucs2 -ucs2_turkish_ci ucs2 -ucs2_czech_ci ucs2 -ucs2_danish_ci ucs2 -ucs2_lithuanian_ci ucs2 -ucs2_slovak_ci ucs2 -ucs2_spanish2_ci ucs2 -ucs2_roman_ci ucs2 -ucs2_persian_ci ucs2 -ucs2_esperanto_ci ucs2 -ucs2_hungarian_ci ucs2 -cp866_general_ci cp866 -cp866_bin cp866 -keybcs2_general_ci keybcs2 -keybcs2_bin keybcs2 -macce_general_ci macce -macce_bin macce -macroman_general_ci macroman -macroman_bin macroman -cp852_general_ci cp852 -cp852_bin cp852 -latin7_estonian_cs latin7 -latin7_general_ci latin7 -latin7_general_cs latin7 -latin7_bin latin7 -cp1251_bulgarian_ci cp1251 -cp1251_ukrainian_ci cp1251 -cp1251_bin cp1251 -cp1251_general_ci cp1251 -cp1251_general_cs cp1251 -cp1256_general_ci cp1256 -cp1256_bin cp1256 -cp1257_lithuanian_ci cp1257 -cp1257_bin cp1257 -cp1257_general_ci cp1257 -binary binary -geostd8_general_ci geostd8 -geostd8_bin geostd8 -cp932_japanese_ci cp932 -cp932_bin cp932 -eucjpms_japanese_ci eucjpms -eucjpms_bin eucjpms -select * from schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL -select table_name from tables; -table_name -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -t1 -t10 -t11 -t2 -t3 -t4 -t7 -t8 -t9 -tb1 -tb2 -tb3 -tb4 -select table_name, column_name, column_type from columns; -table_name column_name column_type -CHARACTER_SETS CHARACTER_SET_NAME varchar(64) -CHARACTER_SETS DEFAULT_COLLATE_NAME varchar(64) -CHARACTER_SETS DESCRIPTION varchar(60) -CHARACTER_SETS MAXLEN bigint(3) -COLLATIONS COLLATION_NAME varchar(64) -COLLATIONS CHARACTER_SET_NAME varchar(64) -COLLATIONS ID bigint(11) -COLLATIONS IS_DEFAULT varchar(3) -COLLATIONS IS_COMPILED varchar(3) -COLLATIONS SORTLEN bigint(3) -COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar(64) -COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar(64) -COLUMNS TABLE_CATALOG varchar(4096) -COLUMNS TABLE_SCHEMA varchar(64) -COLUMNS TABLE_NAME varchar(64) -COLUMNS COLUMN_NAME varchar(64) -COLUMNS ORDINAL_POSITION bigint(21) -COLUMNS COLUMN_DEFAULT longtext -COLUMNS IS_NULLABLE varchar(3) -COLUMNS DATA_TYPE varchar(64) -COLUMNS CHARACTER_MAXIMUM_LENGTH bigint(21) -COLUMNS CHARACTER_OCTET_LENGTH bigint(21) -COLUMNS NUMERIC_PRECISION bigint(21) -COLUMNS NUMERIC_SCALE bigint(21) -COLUMNS CHARACTER_SET_NAME varchar(64) -COLUMNS COLLATION_NAME varchar(64) -COLUMNS COLUMN_TYPE longtext -COLUMNS COLUMN_KEY varchar(3) -COLUMNS EXTRA varchar(20) -COLUMNS PRIVILEGES varchar(80) -COLUMNS COLUMN_COMMENT varchar(255) -COLUMN_PRIVILEGES GRANTEE varchar(81) -COLUMN_PRIVILEGES TABLE_CATALOG varchar(4096) -COLUMN_PRIVILEGES TABLE_SCHEMA varchar(64) -COLUMN_PRIVILEGES TABLE_NAME varchar(64) -COLUMN_PRIVILEGES COLUMN_NAME varchar(64) -COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar(64) -COLUMN_PRIVILEGES IS_GRANTABLE varchar(3) -KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar(4096) -KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar(64) -KEY_COLUMN_USAGE CONSTRAINT_NAME varchar(64) -KEY_COLUMN_USAGE TABLE_CATALOG varchar(4096) -KEY_COLUMN_USAGE TABLE_SCHEMA varchar(64) -KEY_COLUMN_USAGE TABLE_NAME varchar(64) -KEY_COLUMN_USAGE COLUMN_NAME varchar(64) -KEY_COLUMN_USAGE ORDINAL_POSITION bigint(10) -KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint(10) -KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar(64) -KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar(64) -KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar(64) -ROUTINES SPECIFIC_NAME varchar(64) -ROUTINES ROUTINE_CATALOG varchar(4096) -ROUTINES ROUTINE_SCHEMA varchar(64) -ROUTINES ROUTINE_NAME varchar(64) -ROUTINES ROUTINE_TYPE varchar(9) -ROUTINES DTD_IDENTIFIER varchar(64) -ROUTINES ROUTINE_BODY varchar(8) -ROUTINES ROUTINE_DEFINITION longtext -ROUTINES EXTERNAL_NAME varchar(64) -ROUTINES EXTERNAL_LANGUAGE varchar(64) -ROUTINES PARAMETER_STYLE varchar(8) -ROUTINES IS_DETERMINISTIC varchar(3) -ROUTINES SQL_DATA_ACCESS varchar(64) -ROUTINES SQL_PATH varchar(64) -ROUTINES SECURITY_TYPE varchar(7) -ROUTINES CREATED datetime -ROUTINES LAST_ALTERED datetime -ROUTINES SQL_MODE longtext -ROUTINES ROUTINE_COMMENT varchar(64) -ROUTINES DEFINER varchar(77) -SCHEMATA CATALOG_NAME varchar(4096) -SCHEMATA SCHEMA_NAME varchar(64) -SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar(64) -SCHEMATA DEFAULT_COLLATION_NAME varchar(64) -SCHEMATA SQL_PATH varchar(4096) -SCHEMA_PRIVILEGES GRANTEE varchar(81) -SCHEMA_PRIVILEGES TABLE_CATALOG varchar(4096) -SCHEMA_PRIVILEGES TABLE_SCHEMA varchar(64) -SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar(64) -SCHEMA_PRIVILEGES IS_GRANTABLE varchar(3) -STATISTICS TABLE_CATALOG varchar(4096) -STATISTICS TABLE_SCHEMA varchar(64) -STATISTICS TABLE_NAME varchar(64) -STATISTICS NON_UNIQUE bigint(1) -STATISTICS INDEX_SCHEMA varchar(64) -STATISTICS INDEX_NAME varchar(64) -STATISTICS SEQ_IN_INDEX bigint(2) -STATISTICS COLUMN_NAME varchar(64) -STATISTICS COLLATION varchar(1) -STATISTICS CARDINALITY bigint(21) -STATISTICS SUB_PART bigint(3) -STATISTICS PACKED varchar(10) -STATISTICS NULLABLE varchar(3) -STATISTICS INDEX_TYPE varchar(16) -STATISTICS COMMENT varchar(16) -TABLES TABLE_CATALOG varchar(4096) -TABLES TABLE_SCHEMA varchar(64) -TABLES TABLE_NAME varchar(64) -TABLES TABLE_TYPE varchar(64) -TABLES ENGINE varchar(64) -TABLES VERSION bigint(21) -TABLES ROW_FORMAT varchar(10) -TABLES TABLE_ROWS bigint(21) -TABLES AVG_ROW_LENGTH bigint(21) -TABLES DATA_LENGTH bigint(21) -TABLES MAX_DATA_LENGTH bigint(21) -TABLES INDEX_LENGTH bigint(21) -TABLES DATA_FREE bigint(21) -TABLES AUTO_INCREMENT bigint(21) -TABLES CREATE_TIME datetime -TABLES UPDATE_TIME datetime -TABLES CHECK_TIME datetime -TABLES TABLE_COLLATION varchar(64) -TABLES CHECKSUM bigint(21) -TABLES CREATE_OPTIONS varchar(255) -TABLES TABLE_COMMENT varchar(80) -TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar(4096) -TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar(64) -TABLE_CONSTRAINTS CONSTRAINT_NAME varchar(64) -TABLE_CONSTRAINTS TABLE_SCHEMA varchar(64) -TABLE_CONSTRAINTS TABLE_NAME varchar(64) -TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar(64) -TABLE_PRIVILEGES GRANTEE varchar(81) -TABLE_PRIVILEGES TABLE_CATALOG varchar(4096) -TABLE_PRIVILEGES TABLE_SCHEMA varchar(64) -TABLE_PRIVILEGES TABLE_NAME varchar(64) -TABLE_PRIVILEGES PRIVILEGE_TYPE varchar(64) -TABLE_PRIVILEGES IS_GRANTABLE varchar(3) -TRIGGERS TRIGGER_CATALOG varchar(4096) -TRIGGERS TRIGGER_SCHEMA varchar(64) -TRIGGERS TRIGGER_NAME varchar(64) -TRIGGERS EVENT_MANIPULATION varchar(6) -TRIGGERS EVENT_OBJECT_CATALOG varchar(4096) -TRIGGERS EVENT_OBJECT_SCHEMA varchar(64) -TRIGGERS EVENT_OBJECT_TABLE varchar(64) -TRIGGERS ACTION_ORDER bigint(4) -TRIGGERS ACTION_CONDITION longtext -TRIGGERS ACTION_STATEMENT longtext -TRIGGERS ACTION_ORIENTATION varchar(9) -TRIGGERS ACTION_TIMING varchar(6) -TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar(64) -TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar(64) -TRIGGERS ACTION_REFERENCE_OLD_ROW varchar(3) -TRIGGERS ACTION_REFERENCE_NEW_ROW varchar(3) -TRIGGERS CREATED datetime -TRIGGERS SQL_MODE longtext -TRIGGERS DEFINER longtext -USER_PRIVILEGES GRANTEE varchar(81) -USER_PRIVILEGES TABLE_CATALOG varchar(4096) -USER_PRIVILEGES PRIVILEGE_TYPE varchar(64) -USER_PRIVILEGES IS_GRANTABLE varchar(3) -VIEWS TABLE_CATALOG varchar(4096) -VIEWS TABLE_SCHEMA varchar(64) -VIEWS TABLE_NAME varchar(64) -VIEWS VIEW_DEFINITION longtext -VIEWS CHECK_OPTION varchar(8) -VIEWS IS_UPDATABLE varchar(3) -VIEWS DEFINER varchar(77) -VIEWS SECURITY_TYPE varchar(7) -t1 f1 char(20) -t1 f2 char(25) -t1 f3 date -t1 f4 int(11) -t1 f5 char(25) -t1 f6 int(11) -t10 f1 char(20) -t10 f2 char(25) -t10 f3 date -t10 f4 int(11) -t10 f5 char(25) -t10 f6 int(11) -t11 f1 char(20) -t11 f2 char(25) -t11 f3 date -t11 f4 int(11) -t11 f5 char(25) -t11 f6 int(11) -t2 f1 char(20) -t2 f2 char(25) -t2 f3 date -t2 f4 int(11) -t2 f5 char(25) -t2 f6 int(11) -t3 f1 char(20) -t3 f2 char(20) -t3 f3 int(11) -t4 f1 char(20) -t4 f2 char(25) -t4 f3 date -t4 f4 int(11) -t4 f5 char(25) -t4 f6 int(11) -t7 f1 char(20) -t7 f2 char(25) -t7 f3 date -t7 f4 int(11) -t8 f1 char(20) -t8 f2 char(25) -t8 f3 date -t8 f4 int(11) -t9 f1 int(11) -t9 f2 char(25) -t9 f3 int(11) -tb1 f1 char(0) -tb1 f2 char(0) -tb1 f3 char(0) -tb1 f4 tinytext -tb1 f5 text -tb1 f6 mediumtext -tb1 f7 longtext -tb1 f8 tinyblob -tb1 f9 blob -tb1 f10 mediumblob -tb1 f11 longblob -tb1 f12 binary(1) -tb1 f13 tinyint(4) -tb1 f14 tinyint(3) unsigned -tb1 f15 tinyint(3) unsigned zerofill -tb1 f16 tinyint(3) unsigned zerofill -tb1 f17 smallint(6) -tb1 f18 smallint(5) unsigned -tb1 f19 smallint(5) unsigned zerofill -tb1 f20 smallint(5) unsigned zerofill -tb1 f21 mediumint(9) -tb1 f22 mediumint(8) unsigned -tb1 f23 mediumint(8) unsigned zerofill -tb1 f24 mediumint(8) unsigned zerofill -tb1 f25 int(11) -tb1 f26 int(10) unsigned -tb1 f27 int(10) unsigned zerofill -tb1 f28 int(10) unsigned zerofill -tb1 f29 bigint(20) -tb1 f30 bigint(20) unsigned -tb1 f31 bigint(20) unsigned zerofill -tb1 f32 bigint(20) unsigned zerofill -tb1 f33 decimal(10,0) -tb1 f34 decimal(10,0) unsigned -tb1 f35 decimal(10,0) unsigned zerofill -tb1 f36 decimal(10,0) unsigned zerofill -tb1 f37 decimal(10,0) -tb1 f38 decimal(64,0) -tb1 f39 decimal(10,0) unsigned -tb1 f40 decimal(64,0) unsigned -tb1 f41 decimal(10,0) unsigned zerofill -tb1 f42 decimal(64,0) unsigned zerofill -tb1 f43 decimal(10,0) unsigned zerofill -tb1 f44 decimal(64,0) unsigned zerofill -tb1 f45 decimal(10,0) -tb1 f46 decimal(63,30) -tb1 f47 decimal(10,0) unsigned -tb1 f48 decimal(63,30) unsigned -tb1 f49 decimal(10,0) unsigned zerofill -tb1 f50 decimal(63,30) unsigned zerofill -tb1 f51 decimal(10,0) unsigned zerofill -tb1 f52 decimal(63,30) unsigned zerofill -tb1 f53 decimal(10,0) -tb1 f54 decimal(10,0) unsigned -tb1 f55 decimal(10,0) unsigned zerofill -tb1 f56 decimal(10,0) unsigned zerofill -tb1 f57 decimal(10,0) -tb1 f58 decimal(64,0) -tb2 f59 decimal(10,0) unsigned -tb2 f60 decimal(64,0) unsigned -tb2 f61 decimal(10,0) unsigned zerofill -tb2 f62 decimal(64,0) unsigned zerofill -tb2 f63 decimal(10,0) unsigned zerofill -tb2 f64 decimal(64,0) unsigned zerofill -tb2 f65 decimal(10,0) -tb2 f66 decimal(63,30) -tb2 f67 decimal(10,0) unsigned -tb2 f68 decimal(63,30) unsigned -tb2 f69 decimal(10,0) unsigned zerofill -tb2 f70 decimal(63,30) unsigned zerofill -tb2 f71 decimal(10,0) unsigned zerofill -tb2 f72 decimal(63,30) unsigned zerofill -tb2 f73 double -tb2 f74 double unsigned -tb2 f75 double unsigned zerofill -tb2 f76 double unsigned zerofill -tb2 f77 double -tb2 f78 double unsigned -tb2 f79 double unsigned zerofill -tb2 f80 double unsigned zerofill -tb2 f81 float -tb2 f82 float unsigned -tb2 f83 float unsigned zerofill -tb2 f84 float unsigned zerofill -tb2 f85 float -tb2 f86 float -tb2 f87 float unsigned -tb2 f88 float unsigned -tb2 f89 float unsigned zerofill -tb2 f90 float unsigned zerofill -tb2 f91 float unsigned zerofill -tb2 f92 float unsigned zerofill -tb2 f93 float -tb2 f94 double -tb2 f95 float unsigned -tb2 f96 double unsigned -tb2 f97 float unsigned zerofill -tb2 f98 double unsigned zerofill -tb2 f99 float unsigned zerofill -tb2 f100 double unsigned zerofill -tb2 f101 date -tb2 f102 time -tb2 f103 datetime -tb2 f104 timestamp -tb2 f105 year(4) -tb2 f106 year(4) -tb2 f107 year(4) -tb2 f108 enum('1enum','2enum') -tb2 f109 set('1set','2set') -tb3 f118 char(1) -tb3 f119 char(1) -tb3 f120 char(1) -tb3 f121 tinytext -tb3 f122 text -tb3 f123 mediumtext -tb3 f124 longtext -tb3 f125 tinyblob -tb3 f126 blob -tb3 f127 mediumblob -tb3 f128 longblob -tb3 f129 binary(1) -tb3 f130 tinyint(4) -tb3 f131 tinyint(3) unsigned -tb3 f132 tinyint(3) unsigned zerofill -tb3 f133 tinyint(3) unsigned zerofill -tb3 f134 smallint(6) -tb3 f135 smallint(5) unsigned -tb3 f136 smallint(5) unsigned zerofill -tb3 f137 smallint(5) unsigned zerofill -tb3 f138 mediumint(9) -tb3 f139 mediumint(8) unsigned -tb3 f140 mediumint(8) unsigned zerofill -tb3 f141 mediumint(8) unsigned zerofill -tb3 f142 int(11) -tb3 f143 int(10) unsigned -tb3 f144 int(10) unsigned zerofill -tb3 f145 int(10) unsigned zerofill -tb3 f146 bigint(20) -tb3 f147 bigint(20) unsigned -tb3 f148 bigint(20) unsigned zerofill -tb3 f149 bigint(20) unsigned zerofill -tb3 f150 decimal(10,0) -tb3 f151 decimal(10,0) unsigned -tb3 f152 decimal(10,0) unsigned zerofill -tb3 f153 decimal(10,0) unsigned zerofill -tb3 f154 decimal(10,0) -tb3 f155 decimal(64,0) -tb3 f156 decimal(10,0) unsigned -tb3 f157 decimal(64,0) unsigned -tb3 f158 decimal(10,0) unsigned zerofill -tb3 f159 decimal(64,0) unsigned zerofill -tb3 f160 decimal(10,0) unsigned zerofill -tb3 f161 decimal(64,0) unsigned zerofill -tb3 f162 decimal(10,0) -tb3 f163 decimal(63,30) -tb3 f164 decimal(10,0) unsigned -tb3 f165 decimal(63,30) unsigned -tb3 f166 decimal(10,0) unsigned zerofill -tb3 f167 decimal(63,30) unsigned zerofill -tb3 f168 decimal(10,0) unsigned zerofill -tb3 f169 decimal(63,30) unsigned zerofill -tb3 f170 decimal(10,0) -tb3 f171 decimal(10,0) unsigned -tb3 f172 decimal(10,0) unsigned zerofill -tb3 f173 decimal(10,0) unsigned zerofill -tb3 f174 decimal(10,0) -tb3 f175 decimal(64,0) -tb4 f176 decimal(10,0) unsigned -tb4 f177 decimal(64,0) unsigned -tb4 f178 decimal(10,0) unsigned zerofill -tb4 f179 decimal(64,0) unsigned zerofill -tb4 f180 decimal(10,0) unsigned zerofill -tb4 f181 decimal(64,0) unsigned zerofill -tb4 f182 decimal(10,0) -tb4 f183 decimal(63,30) -tb4 f184 decimal(10,0) unsigned -tb4 f185 decimal(63,30) unsigned -tb4 f186 decimal(10,0) unsigned zerofill -tb4 f187 decimal(63,30) unsigned zerofill -tb4 f188 decimal(10,0) unsigned zerofill -tb4 f189 decimal(63,30) unsigned zerofill -tb4 f190 double -tb4 f191 double unsigned -tb4 f192 double unsigned zerofill -tb4 f193 double unsigned zerofill -tb4 f194 double -tb4 f195 double unsigned -tb4 f196 double unsigned zerofill -tb4 f197 double unsigned zerofill -tb4 f198 float -tb4 f199 float unsigned -tb4 f200 float unsigned zerofill -tb4 f201 float unsigned zerofill -tb4 f202 float -tb4 f203 float -tb4 f204 float unsigned -tb4 f205 float unsigned -tb4 f206 float unsigned zerofill -tb4 f207 float unsigned zerofill -tb4 f208 float unsigned zerofill -tb4 f209 float unsigned zerofill -tb4 f210 float -tb4 f211 double -tb4 f212 float unsigned -tb4 f213 double unsigned -tb4 f214 float unsigned zerofill -tb4 f215 double unsigned zerofill -tb4 f216 float unsigned zerofill -tb4 f217 double unsigned zerofill -tb4 f218 date -tb4 f219 time -tb4 f220 datetime -tb4 f221 timestamp -tb4 f222 year(4) -tb4 f223 year(4) -tb4 f224 year(4) -tb4 f225 enum('1enum','2enum') -tb4 f226 set('1set','2set') -tb4 f235 char(0) -tb4 f236 char(90) -tb4 f237 char(255) -tb4 f238 varchar(0) -tb4 f239 varchar(20000) -tb4 f240 varchar(2000) -tb4 f241 char(100) -select character_set_name from character_sets; -character_set_name -big5 -dec8 -cp850 -hp8 -koi8r -latin1 -latin2 -swe7 -ascii -ujis -sjis -hebrew -tis620 -euckr -koi8u -gb2312 -greek -cp1250 -gbk -latin5 -armscii8 -utf8 -ucs2 -cp866 -keybcs2 -macce -macroman -cp852 -latin7 -cp1251 -cp1256 -cp1257 -binary -geostd8 -cp932 -eucjpms -select collation_name from collations where collation_name <> 'utf8_general_cs'; -collation_name -big5_chinese_ci -big5_bin -dec8_swedish_ci -dec8_bin -cp850_general_ci -cp850_bin -hp8_english_ci -hp8_bin -koi8r_general_ci -koi8r_bin -latin1_german1_ci -latin1_swedish_ci -latin1_danish_ci -latin1_german2_ci -latin1_bin -latin1_general_ci -latin1_general_cs -latin1_spanish_ci -latin2_czech_cs -latin2_general_ci -latin2_hungarian_ci -latin2_croatian_ci -latin2_bin -swe7_swedish_ci -swe7_bin -ascii_general_ci -ascii_bin -ujis_japanese_ci -ujis_bin -sjis_japanese_ci -sjis_bin -hebrew_general_ci -hebrew_bin -tis620_thai_ci -tis620_bin -euckr_korean_ci -euckr_bin -koi8u_general_ci -koi8u_bin -gb2312_chinese_ci -gb2312_bin -greek_general_ci -greek_bin -cp1250_general_ci -cp1250_czech_cs -cp1250_croatian_ci -cp1250_bin -gbk_chinese_ci -gbk_bin -latin5_turkish_ci -latin5_bin -armscii8_general_ci -armscii8_bin -utf8_general_ci -utf8_bin -utf8_unicode_ci -utf8_icelandic_ci -utf8_latvian_ci -utf8_romanian_ci -utf8_slovenian_ci -utf8_polish_ci -utf8_estonian_ci -utf8_spanish_ci -utf8_swedish_ci -utf8_turkish_ci -utf8_czech_ci -utf8_danish_ci -utf8_lithuanian_ci -utf8_slovak_ci -utf8_spanish2_ci -utf8_roman_ci -utf8_persian_ci -utf8_esperanto_ci -utf8_hungarian_ci -ucs2_general_ci -ucs2_bin -ucs2_unicode_ci -ucs2_icelandic_ci -ucs2_latvian_ci -ucs2_romanian_ci -ucs2_slovenian_ci -ucs2_polish_ci -ucs2_estonian_ci -ucs2_spanish_ci -ucs2_swedish_ci -ucs2_turkish_ci -ucs2_czech_ci -ucs2_danish_ci -ucs2_lithuanian_ci -ucs2_slovak_ci -ucs2_spanish2_ci -ucs2_roman_ci -ucs2_persian_ci -ucs2_esperanto_ci -ucs2_hungarian_ci -cp866_general_ci -cp866_bin -keybcs2_general_ci -keybcs2_bin -macce_general_ci -macce_bin -macroman_general_ci -macroman_bin -cp852_general_ci -cp852_bin -latin7_estonian_cs -latin7_general_ci -latin7_general_cs -latin7_bin -cp1251_bulgarian_ci -cp1251_ukrainian_ci -cp1251_bin -cp1251_general_ci -cp1251_general_cs -cp1256_general_ci -cp1256_bin -cp1257_lithuanian_ci -cp1257_bin -cp1257_general_ci -binary -geostd8_general_ci -geostd8_bin -cp932_japanese_ci -cp932_bin -eucjpms_japanese_ci -eucjpms_bin -select routine_name, routine_type from routines; -routine_name routine_type -select table_name, index_name from statistics; -table_name index_name -select table_name from views; -table_name -select privilege_type from user_privileges; -privilege_type -USAGE -select grantee, privilege_type from schema_privileges; -grantee privilege_type -select * from table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select column_name, privilege_type from column_privileges; -column_name privilege_type -select table_name,constraint_type from table_constraints; -table_name constraint_type -select table_schema, table_name, column_name from key_column_usage; -table_schema table_name column_name - -root@localhost db_datadict -DROP USER 'u_6_401017'@'localhost'; - -Testcase 3.2.1.18: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401018'@'localhost'; -GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost'; -SHOW GRANTS FOR 'u_6_401018'@'localhost'; -Grants for u_6_401018@localhost -GRANT USAGE ON *.* TO 'u_6_401018'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'u_6_401018'@'localhost' -FLUSH PRIVILEGES; -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -connect(localhost,u_6_401018,,test,MYSQL_PORT,MYSQL_SOCK); -USE db_datadict; -create view db_datadict.v_401018 as -select * from information_schema.schemata; -SELECT * FROM v_401018 ORDER BY 2 DESC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL - -root@localhost NULL -DROP USER 'u_6_401018'@'localhost'; -DROP DATABASE db_datadict; - -Testcase 3.2.1.19: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401019'@'localhost'; -grant alter on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant alter routine on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create routine on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create temporary tables -on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant delete on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant drop on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant execute on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant index on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant insert on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant lock tables on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant update on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -SELECT * FROM information_schema.table_privileges -WHERE table_schema = "information_schema"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM information_schema.column_privileges -WHERE table_schema = "information_schema"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -DROP USER 'u_6_401019'@'localhost'; - -Testcase 3.2.1.20: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401020'@'localhost'; -connect(localhost,u_6_401020,,test,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL -CREATE TABLE tb_not_allowed ( col TEXT ); -ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema -create view res_v1 as select * from information_schema.schemata; -ERROR 42S02: Unknown table 'res_v1' in information_schema -alter table schemata modify catalog_name varchar(255); -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' -update schemata set catalog_name = 'abc' - where schema_name = 'information_schema'; -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' -CREATE PROCEDURE sp_3_2_1_20() -BEGIN -INSERT INTO information_schema.schema_privileges (table_schema,privilege_type) -VALUES('db2','insert'); -END// -ERROR 42000: Unknown database 'information_schema' -DELETE FROM schemata WHERE schema_name = 'information_schema'; -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' - -root@localhost NULL -DROP USER 'u_6_401020'@'localhost'; - -Testcase 3.2.2.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC character_sets; -Field Type Null Key Default Extra -CHARACTER_SET_NAME varchar(64) NO -DEFAULT_COLLATE_NAME varchar(64) NO -DESCRIPTION varchar(60) NO -MAXLEN bigint(3) NO 0 -SHOW CREATE TABLE character_sets; -Table Create Table -CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` ( - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '', - `DESCRIPTION` varchar(60) NOT NULL default '', - `MAXLEN` bigint(3) NOT NULL default '0' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'character_sets' -ORDER BY ordinal_position; -COUNT(*) -4 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'character_sets' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select - -Testcase 3.2.2.2: --------------------------------------------------------------------------------- - -root@localhost information_schema -SELECT * FROM information_schema.character_sets; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -latin1 latin1_swedish_ci cp1252 West European 1 -latin2 latin2_general_ci ISO 8859-2 Central European 1 -swe7 swe7_swedish_ci 7bit Swedish 1 -ascii ascii_general_ci US ASCII 1 -ujis ujis_japanese_ci EUC-JP Japanese 3 -sjis sjis_japanese_ci Shift-JIS Japanese 2 -hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 -tis620 tis620_thai_ci TIS620 Thai 1 -euckr euckr_korean_ci EUC-KR Korean 2 -koi8u koi8u_general_ci KOI8-U Ukrainian 1 -gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 -greek greek_general_ci ISO 8859-7 Greek 1 -cp1250 cp1250_general_ci Windows Central European 1 -gbk gbk_chinese_ci GBK Simplified Chinese 2 -latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 -armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 -utf8 utf8_general_ci UTF-8 Unicode 3 -ucs2 ucs2_general_ci UCS-2 Unicode 2 -cp866 cp866_general_ci DOS Russian 1 -keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 -macce macce_general_ci Mac Central European 1 -macroman macroman_general_ci Mac West European 1 -cp852 cp852_general_ci DOS Central European 1 -latin7 latin7_general_ci ISO 8859-13 Baltic 1 -cp1251 cp1251_general_ci Windows Cyrillic 1 -cp1256 cp1256_general_ci Windows Arabic 1 -cp1257 cp1257_general_ci Windows Baltic 1 -binary binary Binary pseudo charset 1 -geostd8 geostd8_general_ci GEOSTD8 Georgian 1 -cp932 cp932_japanese_ci SJIS for Windows Japanese 2 -eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 - -Testcase 3.2.2.3: --------------------------------------------------------------------------------- - -Testcase 3.2.3.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC collations; -Field Type Null Key Default Extra -COLLATION_NAME varchar(64) NO -CHARACTER_SET_NAME varchar(64) NO -ID bigint(11) NO 0 -IS_DEFAULT varchar(3) NO -IS_COMPILED varchar(3) NO -SORTLEN bigint(3) NO 0 -SHOW CREATE TABLE collations; -Table Create Table -COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` ( - `COLLATION_NAME` varchar(64) NOT NULL default '', - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `ID` bigint(11) NOT NULL default '0', - `IS_DEFAULT` varchar(3) NOT NULL default '', - `IS_COMPILED` varchar(3) NOT NULL default '', - `SORTLEN` bigint(3) NOT NULL default '0' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collations' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collations' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select - -Testcase 3.2.3.2: --------------------------------------------------------------------------------- -SELECT * FROM collations where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -big5_bin big5 84 Yes 1 -dec8_swedish_ci dec8 3 Yes 0 -dec8_bin dec8 69 0 -cp850_general_ci cp850 4 Yes 0 -cp850_bin cp850 80 0 -hp8_english_ci hp8 6 Yes 0 -hp8_bin hp8 72 0 -koi8r_general_ci koi8r 7 Yes 0 -koi8r_bin koi8r 74 0 -latin1_german1_ci latin1 5 Yes 1 -latin1_swedish_ci latin1 8 Yes Yes 1 -latin1_danish_ci latin1 15 Yes 1 -latin1_german2_ci latin1 31 Yes 2 -latin1_bin latin1 47 Yes 1 -latin1_general_ci latin1 48 Yes 1 -latin1_general_cs latin1 49 Yes 1 -latin1_spanish_ci latin1 94 Yes 1 -latin2_czech_cs latin2 2 Yes 4 -latin2_general_ci latin2 9 Yes Yes 1 -latin2_hungarian_ci latin2 21 Yes 1 -latin2_croatian_ci latin2 27 Yes 1 -latin2_bin latin2 77 Yes 1 -swe7_swedish_ci swe7 10 Yes 0 -swe7_bin swe7 82 0 -ascii_general_ci ascii 11 Yes 0 -ascii_bin ascii 65 0 -ujis_japanese_ci ujis 12 Yes Yes 1 -ujis_bin ujis 91 Yes 1 -sjis_japanese_ci sjis 13 Yes Yes 1 -sjis_bin sjis 88 Yes 1 -hebrew_general_ci hebrew 16 Yes 0 -hebrew_bin hebrew 71 0 -tis620_thai_ci tis620 18 Yes Yes 4 -tis620_bin tis620 89 Yes 1 -euckr_korean_ci euckr 19 Yes Yes 1 -euckr_bin euckr 85 Yes 1 -koi8u_general_ci koi8u 22 Yes 0 -koi8u_bin koi8u 75 0 -gb2312_chinese_ci gb2312 24 Yes Yes 1 -gb2312_bin gb2312 86 Yes 1 -greek_general_ci greek 25 Yes 0 -greek_bin greek 70 0 -cp1250_general_ci cp1250 26 Yes Yes 1 -cp1250_czech_cs cp1250 34 Yes 2 -cp1250_croatian_ci cp1250 44 Yes 1 -cp1250_bin cp1250 66 Yes 1 -gbk_chinese_ci gbk 28 Yes Yes 1 -gbk_bin gbk 87 Yes 1 -latin5_turkish_ci latin5 30 Yes 0 -latin5_bin latin5 78 0 -armscii8_general_ci armscii8 32 Yes 0 -armscii8_bin armscii8 64 0 -utf8_general_ci utf8 33 Yes Yes 1 -utf8_bin utf8 83 Yes 1 -utf8_unicode_ci utf8 192 Yes 8 -utf8_icelandic_ci utf8 193 Yes 8 -utf8_latvian_ci utf8 194 Yes 8 -utf8_romanian_ci utf8 195 Yes 8 -utf8_slovenian_ci utf8 196 Yes 8 -utf8_polish_ci utf8 197 Yes 8 -utf8_estonian_ci utf8 198 Yes 8 -utf8_spanish_ci utf8 199 Yes 8 -utf8_swedish_ci utf8 200 Yes 8 -utf8_turkish_ci utf8 201 Yes 8 -utf8_czech_ci utf8 202 Yes 8 -utf8_danish_ci utf8 203 Yes 8 -utf8_lithuanian_ci utf8 204 Yes 8 -utf8_slovak_ci utf8 205 Yes 8 -utf8_spanish2_ci utf8 206 Yes 8 -utf8_roman_ci utf8 207 Yes 8 -utf8_persian_ci utf8 208 Yes 8 -utf8_esperanto_ci utf8 209 Yes 8 -utf8_hungarian_ci utf8 210 Yes 8 -ucs2_general_ci ucs2 35 Yes Yes 1 -ucs2_bin ucs2 90 Yes 1 -ucs2_unicode_ci ucs2 128 Yes 8 -ucs2_icelandic_ci ucs2 129 Yes 8 -ucs2_latvian_ci ucs2 130 Yes 8 -ucs2_romanian_ci ucs2 131 Yes 8 -ucs2_slovenian_ci ucs2 132 Yes 8 -ucs2_polish_ci ucs2 133 Yes 8 -ucs2_estonian_ci ucs2 134 Yes 8 -ucs2_spanish_ci ucs2 135 Yes 8 -ucs2_swedish_ci ucs2 136 Yes 8 -ucs2_turkish_ci ucs2 137 Yes 8 -ucs2_czech_ci ucs2 138 Yes 8 -ucs2_danish_ci ucs2 139 Yes 8 -ucs2_lithuanian_ci ucs2 140 Yes 8 -ucs2_slovak_ci ucs2 141 Yes 8 -ucs2_spanish2_ci ucs2 142 Yes 8 -ucs2_roman_ci ucs2 143 Yes 8 -ucs2_persian_ci ucs2 144 Yes 8 -ucs2_esperanto_ci ucs2 145 Yes 8 -ucs2_hungarian_ci ucs2 146 Yes 8 -cp866_general_ci cp866 36 Yes 0 -cp866_bin cp866 68 0 -keybcs2_general_ci keybcs2 37 Yes 0 -keybcs2_bin keybcs2 73 0 -macce_general_ci macce 38 Yes 0 -macce_bin macce 43 0 -macroman_general_ci macroman 39 Yes 0 -macroman_bin macroman 53 0 -cp852_general_ci cp852 40 Yes 0 -cp852_bin cp852 81 0 -latin7_estonian_cs latin7 20 0 -latin7_general_ci latin7 41 Yes 0 -latin7_general_cs latin7 42 0 -latin7_bin latin7 79 0 -cp1251_bulgarian_ci cp1251 14 0 -cp1251_ukrainian_ci cp1251 23 0 -cp1251_bin cp1251 50 0 -cp1251_general_ci cp1251 51 Yes 0 -cp1251_general_cs cp1251 52 0 -cp1256_general_ci cp1256 57 Yes 0 -cp1256_bin cp1256 67 0 -cp1257_lithuanian_ci cp1257 29 0 -cp1257_bin cp1257 58 0 -cp1257_general_ci cp1257 59 Yes 0 -binary binary 63 Yes Yes 1 -geostd8_general_ci geostd8 92 Yes 0 -geostd8_bin geostd8 93 0 -cp932_japanese_ci cp932 95 Yes Yes 1 -cp932_bin cp932 96 Yes 1 -eucjpms_japanese_ci eucjpms 97 Yes Yes 1 -eucjpms_bin eucjpms 98 Yes 1 - -Testcase 3.2.3.3: --------------------------------------------------------------------------------- - -Testcase 3.2.4.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC collation_character_set_applicability; -Field Type Null Key Default Extra -COLLATION_NAME varchar(64) NO -CHARACTER_SET_NAME varchar(64) NO -SHOW CREATE TABLE collation_character_set_applicability; -Table Create Table -COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` ( - `COLLATION_NAME` varchar(64) NOT NULL default '', - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collation_character_set_applicability' -ORDER BY ordinal_position; -COUNT(*) -2 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collation_character_set_applicability' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.4.2: --------------------------------------------------------------------------------- -SELECT * FROM collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -cp850_bin cp850 -hp8_english_ci hp8 -hp8_bin hp8 -koi8r_general_ci koi8r -koi8r_bin koi8r -latin1_german1_ci latin1 -latin1_swedish_ci latin1 -latin1_danish_ci latin1 -latin1_german2_ci latin1 -latin1_bin latin1 -latin1_general_ci latin1 -latin1_general_cs latin1 -latin1_spanish_ci latin1 -latin2_czech_cs latin2 -latin2_general_ci latin2 -latin2_hungarian_ci latin2 -latin2_croatian_ci latin2 -latin2_bin latin2 -swe7_swedish_ci swe7 -swe7_bin swe7 -ascii_general_ci ascii -ascii_bin ascii -ujis_japanese_ci ujis -ujis_bin ujis -sjis_japanese_ci sjis -sjis_bin sjis -hebrew_general_ci hebrew -hebrew_bin hebrew -tis620_thai_ci tis620 -tis620_bin tis620 -euckr_korean_ci euckr -euckr_bin euckr -koi8u_general_ci koi8u -koi8u_bin koi8u -gb2312_chinese_ci gb2312 -gb2312_bin gb2312 -greek_general_ci greek -greek_bin greek -cp1250_general_ci cp1250 -cp1250_czech_cs cp1250 -cp1250_croatian_ci cp1250 -cp1250_bin cp1250 -gbk_chinese_ci gbk -gbk_bin gbk -latin5_turkish_ci latin5 -latin5_bin latin5 -armscii8_general_ci armscii8 -armscii8_bin armscii8 -utf8_general_ci utf8 -utf8_bin utf8 -utf8_unicode_ci utf8 -utf8_icelandic_ci utf8 -utf8_latvian_ci utf8 -utf8_romanian_ci utf8 -utf8_slovenian_ci utf8 -utf8_polish_ci utf8 -utf8_estonian_ci utf8 -utf8_spanish_ci utf8 -utf8_swedish_ci utf8 -utf8_turkish_ci utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_lithuanian_ci utf8 -utf8_slovak_ci utf8 -utf8_spanish2_ci utf8 -utf8_roman_ci utf8 -utf8_persian_ci utf8 -utf8_esperanto_ci utf8 -utf8_hungarian_ci utf8 -ucs2_general_ci ucs2 -ucs2_bin ucs2 -ucs2_unicode_ci ucs2 -ucs2_icelandic_ci ucs2 -ucs2_latvian_ci ucs2 -ucs2_romanian_ci ucs2 -ucs2_slovenian_ci ucs2 -ucs2_polish_ci ucs2 -ucs2_estonian_ci ucs2 -ucs2_spanish_ci ucs2 -ucs2_swedish_ci ucs2 -ucs2_turkish_ci ucs2 -ucs2_czech_ci ucs2 -ucs2_danish_ci ucs2 -ucs2_lithuanian_ci ucs2 -ucs2_slovak_ci ucs2 -ucs2_spanish2_ci ucs2 -ucs2_roman_ci ucs2 -ucs2_persian_ci ucs2 -ucs2_esperanto_ci ucs2 -ucs2_hungarian_ci ucs2 -cp866_general_ci cp866 -cp866_bin cp866 -keybcs2_general_ci keybcs2 -keybcs2_bin keybcs2 -macce_general_ci macce -macce_bin macce -macroman_general_ci macroman -macroman_bin macroman -cp852_general_ci cp852 -cp852_bin cp852 -latin7_estonian_cs latin7 -latin7_general_ci latin7 -latin7_general_cs latin7 -latin7_bin latin7 -cp1251_bulgarian_ci cp1251 -cp1251_ukrainian_ci cp1251 -cp1251_bin cp1251 -cp1251_general_ci cp1251 -cp1251_general_cs cp1251 -cp1256_general_ci cp1256 -cp1256_bin cp1256 -cp1257_lithuanian_ci cp1257 -cp1257_bin cp1257 -cp1257_general_ci cp1257 -binary binary -geostd8_general_ci geostd8 -geostd8_bin geostd8 -cp932_japanese_ci cp932 -cp932_bin cp932 -eucjpms_japanese_ci eucjpms -eucjpms_bin eucjpms - -Testcase 3.2.4.3: --------------------------------------------------------------------------------- - -Testcase 3.2.5.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC column_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE column_privileges; -Table Create Table -COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'column_privileges' -ORDER BY ordinal_position; -COUNT(*) -7 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'column_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT); -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost'; -GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost'; -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION; -GRANT ALL ON db_datadict.* TO 'user_3'@'localhost'; -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT NO -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE NO -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES - -FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has -------------------------------------------------------------------------------------- -GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION; -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES ---------------------------------------------------------------------------------- -SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 SELECT YES -'user_3'@'localhost' NULL db_datadict res_t40502 INSERT YES -SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict SELECT NO -'user_3'@'localhost' NULL db_datadict INSERT NO -'user_3'@'localhost' NULL db_datadict UPDATE NO -'user_3'@'localhost' NULL db_datadict DELETE NO -'user_3'@'localhost' NULL db_datadict CREATE NO -'user_3'@'localhost' NULL db_datadict DROP NO -'user_3'@'localhost' NULL db_datadict REFERENCES NO -'user_3'@'localhost' NULL db_datadict INDEX NO -'user_3'@'localhost' NULL db_datadict ALTER NO -'user_3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO -'user_3'@'localhost' NULL db_datadict LOCK TABLES NO -'user_3'@'localhost' NULL db_datadict EXECUTE NO -'user_3'@'localhost' NULL db_datadict CREATE VIEW NO -'user_3'@'localhost' NULL db_datadict SHOW VIEW NO -'user_3'@'localhost' NULL db_datadict CREATE ROUTINE NO -'user_3'@'localhost' NULL db_datadict ALTER ROUTINE NO -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; - -FIXME: check whether it is intended that *my* grants to others are *NOT* shown here ------------------------------------------------------------------------------------ -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES - -user_2@localhost db_datadict -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO - -root@localhost db_datadict -DROP TABLE IF EXISTS db_datadict.res_t40502; -DROP DATABASE IF EXISTS db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; - -Testcase 3.2.6.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC columns; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -ORDINAL_POSITION bigint(21) NO 0 -COLUMN_DEFAULT longtext YES NULL -IS_NULLABLE varchar(3) NO -DATA_TYPE varchar(64) NO -CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL -CHARACTER_OCTET_LENGTH bigint(21) YES NULL -NUMERIC_PRECISION bigint(21) YES NULL -NUMERIC_SCALE bigint(21) YES NULL -CHARACTER_SET_NAME varchar(64) YES NULL -COLLATION_NAME varchar(64) YES NULL -COLUMN_TYPE longtext NO NULL -COLUMN_KEY varchar(3) NO -EXTRA varchar(20) NO -PRIVILEGES varchar(80) NO -COLUMN_COMMENT varchar(255) NO -SHOW CREATE TABLE columns; -Table Create Table -COLUMNS CREATE TEMPORARY TABLE `COLUMNS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `ORDINAL_POSITION` bigint(21) NOT NULL default '0', - `COLUMN_DEFAULT` longtext, - `IS_NULLABLE` varchar(3) NOT NULL default '', - `DATA_TYPE` varchar(64) NOT NULL default '', - `CHARACTER_MAXIMUM_LENGTH` bigint(21) default NULL, - `CHARACTER_OCTET_LENGTH` bigint(21) default NULL, - `NUMERIC_PRECISION` bigint(21) default NULL, - `NUMERIC_SCALE` bigint(21) default NULL, - `CHARACTER_SET_NAME` varchar(64) default NULL, - `COLLATION_NAME` varchar(64) default NULL, - `COLUMN_TYPE` longtext NOT NULL, - `COLUMN_KEY` varchar(3) NOT NULL default '', - `EXTRA` varchar(20) NOT NULL default '', - `PRIVILEGES` varchar(80) NOT NULL default '', - `COLUMN_COMMENT` varchar(255) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'columns' -ORDER BY ordinal_position; -COUNT(*) -19 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'columns' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select - -Testcase 3.2.6.2 + 3.2.6.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int); -grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost'; -create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int); -GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL db_datadict t_6_406001 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL db_datadict t_6_406001 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL db_datadict t_6_406002 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL db_datadict t_6_406002 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references -NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references -NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references -NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references -NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references -NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references -NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references -NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references -NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references -NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references -NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references -NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references -NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references -NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references -NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references -NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references -NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references -NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references -NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references -NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select -NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references -NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references -NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references -NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) insert -NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references -NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references -NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references -NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references - -root@localhost db_datadict - -Show the quotient of COL and CML for all COLUMNS ------------------------------------------------- -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -1.0000 binary NULL NULL -1.0000 blob NULL NULL -1.0000 longblob NULL NULL -1.0000 mediumblob NULL NULL -1.0000 tinyblob NULL NULL -1.0000 char latin1 latin1_bin -1.0000 varchar latin1 latin1_bin -1.0000 char latin1 latin1_swedish_ci -1.0000 enum latin1 latin1_swedish_ci -1.0000 longtext latin1 latin1_swedish_ci -1.0000 mediumtext latin1 latin1_swedish_ci -1.0000 set latin1 latin1_swedish_ci -1.0000 text latin1 latin1_swedish_ci -1.0000 tinytext latin1 latin1_swedish_ci -1.0000 longtext utf8 utf8_general_ci -1.0000 text utf8 utf8_general_ci -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -2.0000 char ucs2 ucs2_general_ci -2.0000 longtext ucs2 ucs2_general_ci -2.0000 varchar ucs2 ucs2_general_ci -2.0079 tinytext ucs2 ucs2_general_ci -3.0000 char utf8 utf8_bin -3.0000 enum utf8 utf8_bin -3.0000 char utf8 utf8_general_ci -3.0000 enum utf8 utf8_general_ci -3.0000 set utf8 utf8_general_ci -3.0000 varchar utf8 utf8_general_ci -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -NULL bigint NULL NULL -NULL date NULL NULL -NULL datetime NULL NULL -NULL decimal NULL NULL -NULL double NULL NULL -NULL double unsigned NULL NULL -NULL double unsigned zerofill NULL NULL -NULL float NULL NULL -NULL float unsigned NULL NULL -NULL float unsigned zerofill NULL NULL -NULL int NULL NULL -NULL mediumint NULL NULL -NULL smallint NULL NULL -NULL time NULL NULL -NULL timestamp NULL NULL -NULL tinyint NULL NULL -NULL year NULL NULL -NULL char latin1 latin1_bin -NULL char latin1 latin1_swedish_ci -NULL varchar latin1 latin1_swedish_ci -NULL char ucs2 ucs2_general_ci ---> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values ---> are 0, which is intended behavior, and the result of 0 / 0 IS NULL -SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -TABLE_SCHEMA, -TABLE_NAME, -COLUMN_NAME, -DATA_TYPE, -CHARACTER_MAXIMUM_LENGTH, -CHARACTER_OCTET_LENGTH, -CHARACTER_SET_NAME, -COLLATION_NAME, -COLUMN_TYPE -FROM information_schema.columns -ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; -COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE -1.0000 db_datadict t_6_406001 f1 char 10 10 latin1 latin1_swedish_ci char(10) -1.0000 db_datadict t_6_406001 f2 text 65535 65535 latin1 latin1_swedish_ci text -NULL db_datadict t_6_406001 f3 date NULL NULL NULL NULL date -NULL db_datadict t_6_406001 f4 int NULL NULL NULL NULL int(11) -1.0000 db_datadict t_6_406002 f1 char 10 10 latin1 latin1_swedish_ci char(10) -1.0000 db_datadict t_6_406002 f2 text 65535 65535 latin1 latin1_swedish_ci text -NULL db_datadict t_6_406002 f3 date NULL NULL NULL NULL date -NULL db_datadict t_6_406002 f4 int NULL NULL NULL NULL int(11) -3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60) -NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11) -3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3) -NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) -1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20) -3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80) -3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255) -3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10) -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9) -3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8) -1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8) -3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) -NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime -NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime -1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) -3.0000 information_schema SCHEMATA CATALOG_NAME varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA SQL_PATH varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema STATISTICS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1) -3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2) -3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1) -NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21) -NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10) -3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16) -3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16) -3.0000 information_schema TABLES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10) -NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime -NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime -NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime -3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255) -3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6) -3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4) -1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9) -3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) -NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime -1.0000 information_schema TRIGGERS SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -1.0000 information_schema TRIGGERS DEFINER longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema VIEWS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8) -3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) -3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) -3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64) -NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') -3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql db User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql func name char 64 192 utf8 utf8_bin char(64) -NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1) -3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128) -3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate') -NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -3.0000 mysql help_category url char 128 384 utf8 utf8_general_ci char(128) -NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text -1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text -3.0000 mysql help_topic url char 128 384 utf8 utf8_general_ci char(128) -3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') -3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL') -3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') -3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO') -3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER') -1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob -3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64) -1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob -3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77) -NULL mysql proc created timestamp NULL NULL NULL NULL timestamp -NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp -3.0000 mysql proc sql_mode set 431 1293 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') -3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE') -3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77) -3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant') -NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77) -NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql tables_priv Table_priv set 90 270 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') -3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') -NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N') -NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20) -NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11) -3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20) -NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11) -NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned -3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8) -3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql user User char 16 48 utf8 utf8_bin char(16) -1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41) -3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') -1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob -1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob -1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob -NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned -1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t1 f3 date NULL NULL NULL NULL date -NULL test t1 f4 int NULL NULL NULL NULL int(11) -1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t1 f6 int NULL NULL NULL NULL int(11) -1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t10 f3 date NULL NULL NULL NULL date -NULL test t10 f4 int NULL NULL NULL NULL int(11) -1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t10 f6 int NULL NULL NULL NULL int(11) -1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t11 f3 date NULL NULL NULL NULL date -NULL test t11 f4 int NULL NULL NULL NULL int(11) -1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t11 f6 int NULL NULL NULL NULL int(11) -1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t2 f3 date NULL NULL NULL NULL date -NULL test t2 f4 int NULL NULL NULL NULL int(11) -1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t2 f6 int NULL NULL NULL NULL int(11) -1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20) -NULL test t3 f3 int NULL NULL NULL NULL int(11) -1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t4 f3 date NULL NULL NULL NULL date -NULL test t4 f4 int NULL NULL NULL NULL int(11) -1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t4 f6 int NULL NULL NULL NULL int(11) -1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t7 f3 date NULL NULL NULL NULL date -NULL test t7 f4 int NULL NULL NULL NULL int(11) -1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t8 f3 date NULL NULL NULL NULL date -NULL test t8 f4 int NULL NULL NULL NULL int(11) -NULL test t9 f1 int NULL NULL NULL NULL int(11) -1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t9 f3 int NULL NULL NULL NULL int(11) -NULL test tb1 f1 char 0 0 latin1 latin1_swedish_ci char(0) -NULL test tb1 f2 char 0 0 latin1 latin1_bin char(0) -NULL test tb1 f3 char 0 0 latin1 latin1_swedish_ci char(0) -2.0079 test tb1 f4 tinytext 127 255 ucs2 ucs2_general_ci tinytext -1.0000 test tb1 f5 text 65535 65535 latin1 latin1_swedish_ci text -1.0000 test tb1 f6 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext -1.0000 test tb1 f7 longtext 4294967295 4294967295 latin1 latin1_swedish_ci longtext -1.0000 test tb1 f8 tinyblob 255 255 NULL NULL tinyblob -1.0000 test tb1 f9 blob 65535 65535 NULL NULL blob -1.0000 test tb1 f10 mediumblob 16777215 16777215 NULL NULL mediumblob -1.0000 test tb1 f11 longblob 4294967295 4294967295 NULL NULL longblob -1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1) -NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4) -NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned -NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6) -NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned -NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9) -NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned -NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb1 f25 int NULL NULL NULL NULL int(11) -NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned -NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20) -NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned -NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb2 f73 double NULL NULL NULL NULL double -NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f77 double NULL NULL NULL NULL double -NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f81 float NULL NULL NULL NULL float -NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f85 float NULL NULL NULL NULL float -NULL test tb2 f86 float NULL NULL NULL NULL float -NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f93 float NULL NULL NULL NULL float -NULL test tb2 f94 double NULL NULL NULL NULL double -NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f101 date NULL NULL NULL NULL date -NULL test tb2 f102 time NULL NULL NULL NULL time -NULL test tb2 f103 datetime NULL NULL NULL NULL datetime -NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp -NULL test tb2 f105 year NULL NULL NULL NULL year(4) -NULL test tb2 f106 year NULL NULL NULL NULL year(4) -NULL test tb2 f107 year NULL NULL NULL NULL year(4) -1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1) -1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb3 f121 tinytext 255 255 latin1 latin1_swedish_ci tinytext -1.0000 test tb3 f122 text 65535 65535 latin1 latin1_swedish_ci text -1.0000 test tb3 f123 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext -2.0000 test tb3 f124 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext -1.0000 test tb3 f125 tinyblob 255 255 NULL NULL tinyblob -1.0000 test tb3 f126 blob 65535 65535 NULL NULL blob -1.0000 test tb3 f127 mediumblob 16777215 16777215 NULL NULL mediumblob -1.0000 test tb3 f128 longblob 4294967295 4294967295 NULL NULL longblob -1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1) -NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4) -NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned -NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6) -NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned -NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9) -NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned -NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb3 f142 int NULL NULL NULL NULL int(11) -NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned -NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20) -NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned -NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb4 f190 double NULL NULL NULL NULL double -NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f194 double NULL NULL NULL NULL double -NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f198 float NULL NULL NULL NULL float -NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f202 float NULL NULL NULL NULL float -NULL test tb4 f203 float NULL NULL NULL NULL float -NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f210 float NULL NULL NULL NULL float -NULL test tb4 f211 double NULL NULL NULL NULL double -NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f218 date NULL NULL NULL NULL date -NULL test tb4 f219 time NULL NULL NULL NULL time -NULL test tb4 f220 datetime NULL NULL NULL NULL datetime -NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp -NULL test tb4 f222 year NULL NULL NULL NULL year(4) -NULL test tb4 f223 year NULL NULL NULL NULL year(4) -NULL test tb4 f224 year NULL NULL NULL NULL year(4) -1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -NULL test tb4 f235 char 0 0 ucs2 ucs2_general_ci char(0) -1.0000 test tb4 f236 char 90 90 latin1 latin1_swedish_ci char(90) -1.0000 test tb4 f237 char 255 255 latin1 latin1_swedish_ci char(255) -NULL test tb4 f238 varchar 0 0 latin1 latin1_swedish_ci varchar(0) -1.0000 test tb4 f239 varchar 20000 20000 latin1 latin1_bin varchar(20000) -2.0000 test tb4 f240 varchar 2000 4000 ucs2 ucs2_general_ci varchar(2000) -2.0000 test tb4 f241 char 100 200 ucs2 ucs2_general_ci char(100) -NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) -NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) -NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test1 tb2 f73 double NULL NULL NULL NULL double -NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f77 double NULL NULL NULL NULL double -NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f81 float NULL NULL NULL NULL float -NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f85 float NULL NULL NULL NULL float -NULL test1 tb2 f86 float NULL NULL NULL NULL float -NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f93 float NULL NULL NULL NULL float -NULL test1 tb2 f94 double NULL NULL NULL NULL double -NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f101 date NULL NULL NULL NULL date -NULL test1 tb2 f102 time NULL NULL NULL NULL time -NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime -NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp -NULL test1 tb2 f105 year NULL NULL NULL NULL year(4) -NULL test1 tb2 f106 year NULL NULL NULL NULL year(4) -NULL test1 tb2 f107 year NULL NULL NULL NULL year(4) -1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test4 t6 f3 date NULL NULL NULL NULL date -NULL test4 t6 f4 int NULL NULL NULL NULL int(11) -1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test4 t6 f6 int NULL NULL NULL NULL int(11) -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE IF EXISTS t_6_406001; -DROP TABLE IF EXISTS t_6_406002; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.7.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC key_column_usage; -Field Type Null Key Default Extra -CONSTRAINT_CATALOG varchar(4096) YES NULL -CONSTRAINT_SCHEMA varchar(64) NO -CONSTRAINT_NAME varchar(64) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -ORDINAL_POSITION bigint(10) NO 0 -POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL -REFERENCED_TABLE_SCHEMA varchar(64) YES NULL -REFERENCED_TABLE_NAME varchar(64) YES NULL -REFERENCED_COLUMN_NAME varchar(64) YES NULL -SHOW CREATE TABLE key_column_usage; -Table Create Table -KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` ( - `CONSTRAINT_CATALOG` varchar(4096) default NULL, - `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', - `CONSTRAINT_NAME` varchar(64) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `ORDINAL_POSITION` bigint(10) NOT NULL default '0', - `POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) default NULL, - `REFERENCED_TABLE_SCHEMA` varchar(64) default NULL, - `REFERENCED_TABLE_NAME` varchar(64) default NULL, - `REFERENCED_COLUMN_NAME` varchar(64) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'key_column_usage' -ORDER BY ordinal_position; -COUNT(*) -12 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'key_column_usage' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.7.2 + 3.2.7.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -CREATE TABLE t_40701 ( -f1 INT NOT NULL, PRIMARY KEY(f1), -f2 INT, INDEX f2_ind(f2) -); -GRANT SELECT ON t_40701 to 'user_1'@'localhost'; -CREATE TABLE t_40702 ( -f1 INT NOT NULL, PRIMARY KEY(f1), -f2 INT, INDEX f2_ind(f2) -); -GRANT SELECT ON t_40702 to 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL -NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE t_40701; -DROP TABLE t_40702; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.8.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC routines; -Field Type Null Key Default Extra -SPECIFIC_NAME varchar(64) NO -ROUTINE_CATALOG varchar(4096) YES NULL -ROUTINE_SCHEMA varchar(64) NO -ROUTINE_NAME varchar(64) NO -ROUTINE_TYPE varchar(9) NO -DTD_IDENTIFIER varchar(64) YES NULL -ROUTINE_BODY varchar(8) NO -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 -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 longtext NO NULL -ROUTINE_COMMENT varchar(64) NO -DEFINER varchar(77) NO -SHOW CREATE TABLE routines; -Table Create Table -ROUTINES CREATE TEMPORARY TABLE `ROUTINES` ( - `SPECIFIC_NAME` varchar(64) NOT NULL default '', - `ROUTINE_CATALOG` varchar(4096) default NULL, - `ROUTINE_SCHEMA` varchar(64) NOT NULL default '', - `ROUTINE_NAME` varchar(64) NOT NULL default '', - `ROUTINE_TYPE` varchar(9) NOT NULL default '', - `DTD_IDENTIFIER` varchar(64) default NULL, - `ROUTINE_BODY` varchar(8) NOT NULL default '', - `ROUTINE_DEFINITION` longtext, - `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` longtext NOT NULL, - `ROUTINE_COMMENT` varchar(64) NOT NULL default '', - `DEFINER` varchar(77) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'routines' -ORDER BY ordinal_position; -COUNT(*) -20 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'routines' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select - -Testcase 3.2.8.2 + 3.2.8.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); -INSERT INTO res_6_408002_1(f1, f2, f3, f4) -VALUES('abc', 'xyz', '1989-11-09', 0815); -DROP PROCEDURE IF EXISTS sp_6_408002_1; -CREATE PROCEDURE sp_6_408002_1() -BEGIN -SELECT * FROM db_datadict.res_6_408002_1; -END// -CREATE DATABASE db_datadict_2; -USE db_datadict_2; -CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); -INSERT INTO res_6_408002_2(f1, f2, f3, f4) -VALUES('abc', 'xyz', '1990-10-03', 4711); -DROP PROCEDURE IF EXISTS sp_6_408002_2; -CREATE PROCEDURE sp_6_408002_2() -BEGIN -SELECT * FROM db_datadict_2.res_6_408002_2; -END// -GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost'; -GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost'; -GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_6_408002_1 NULL db_datadict sp_6_408002_1 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER - -root@localhost db_datadict_2 -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -use db_datadict; -DROP TABLE res_6_408002_1; -DROP PROCEDURE sp_6_408002_1; -USE db_datadict_2; -DROP TABLE res_6_408002_2; -DROP PROCEDURE sp_6_408002_2; -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; - -Testcase 3.2.8.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); -insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10); -drop procedure if exists sp_6_408004; -create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); -insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10); - -Checking the max. possible length of (currently) 4 GByte is not possible in this environment here. --------------------------------------------------------------------------------------------------- -create procedure sp_6_408004 () -begin -declare done integer default 0; -declare variable_number_1 longtext; -declare variable_number_2 mediumint; -declare variable_number_3 longblob; -declare variable_number_4 real; -declare variable_number_5 year; -declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10; -declare continue handler for sqlstate '02000' set done = 1; -begin -open cursor_number_1; -while done <> 1 do -fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, -variable_number_4, variable_number_5); -end if; -end while; -begin -begin -set done = 0; -open cursor_number_2; -while done <> 1 do -fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -set done = 0; -open cursor_number_3; -while done <> 1 do -fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -end; -begin -set done = 0; -open cursor_number_4; -while done <> 1 do -fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -begin -set done = 0; -open cursor_number_5; -while done <> 1 do -fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -end// -call sp_6_408004 (); -@a -test row -@a -test row -@a -test row -@a -test row -@a -test row -@a -test row -select * from res_6_408004_2; -f1 f2 f3 f4 f5 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -SELECT *, LENGTH(routine_definition) -FROM information_schema.routines -WHERE routine_schema = 'db_datadict'; -SPECIFIC_NAME sp_6_408004 -ROUTINE_CATALOG NULL -ROUTINE_SCHEMA db_datadict -ROUTINE_NAME sp_6_408004 -ROUTINE_TYPE PROCEDURE -DTD_IDENTIFIER NULL -ROUTINE_BODY SQL -ROUTINE_DEFINITION begin -declare done integer default 0; -declare variable_number_1 longtext; -declare variable_number_2 mediumint; -declare variable_number_3 longblob; -declare variable_number_4 real; -declare variable_number_5 year; -declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10; -declare continue handler for sqlstate '02000' set done = 1; -begin -open cursor_number_1; -while done <> 1 do -fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, -variable_number_4, variable_number_5); -end if; -end while; -begin -begin -set done = 0; -open cursor_number_2; -while done <> 1 do -fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -set done = 0; -open cursor_number_3; -while done <> 1 do -fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -end; -begin -set done = 0; -open cursor_number_4; -while done <> 1 do -fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -begin -set done = 0; -open cursor_number_5; -while done <> 1 do -fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -end -EXTERNAL_NAME NULL -EXTERNAL_LANGUAGE NULL -PARAMETER_STYLE SQL -IS_DETERMINISTIC NO -SQL_DATA_ACCESS CONTAINS SQL -SQL_PATH NULL -SECURITY_TYPE DEFINER -CREATED YYYY-MM-DD hh:mm:ss -LAST_ALTERED YYYY-MM-DD hh:mm:ss -SQL_MODE -ROUTINE_COMMENT -DEFINER root@localhost -LENGTH(routine_definition) 2549 -use db_datadict; -drop procedure sp_6_408004; -drop table res_6_408004_1; -drop table res_6_408004_2; -use test; -drop database db_datadict; - -Testcase 3.2.9.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC schemata; -Field Type Null Key Default Extra -CATALOG_NAME varchar(4096) YES NULL -SCHEMA_NAME varchar(64) NO -DEFAULT_CHARACTER_SET_NAME varchar(64) NO -DEFAULT_COLLATION_NAME varchar(64) NO -SQL_PATH varchar(4096) YES NULL -SHOW CREATE TABLE schemata; -Table Create Table -SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` ( - `CATALOG_NAME` varchar(4096) default NULL, - `SCHEMA_NAME` varchar(64) NOT NULL default '', - `DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `DEFAULT_COLLATION_NAME` varchar(64) NOT NULL default '', - `SQL_PATH` varchar(4096) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schemata' -ORDER BY ordinal_position; -COUNT(*) -5 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schemata' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select - -Testcase 3.2.9.2 + 3.2.9.3: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict_1; -CREATE DATABASE db_datadict_2; -GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict_1,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -3 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict_1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -3 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict_2 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -2 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL - -root@localhost information_schema -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE db_datadict_1; -DROP DATABASE db_datadict_2; - -Testcase 3.2.10.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC table_constraints; -Field Type Null Key Default Extra -CONSTRAINT_CATALOG varchar(4096) YES NULL -CONSTRAINT_SCHEMA varchar(64) NO -CONSTRAINT_NAME varchar(64) NO -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -CONSTRAINT_TYPE varchar(64) NO -SHOW CREATE TABLE table_constraints; -Table Create Table -TABLE_CONSTRAINTS CREATE TEMPORARY TABLE `TABLE_CONSTRAINTS` ( - `CONSTRAINT_CATALOG` varchar(4096) default NULL, - `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', - `CONSTRAINT_NAME` varchar(64) NOT NULL default '', - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `CONSTRAINT_TYPE` varchar(64) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_constraints' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_constraints' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.10.2 + 3.2.10.3: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; -USE db_datadict; -CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); -USE db_datadict_2; -CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); -GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL db_datadict PRIMARY db_datadict res_6_401003_1 PRIMARY KEY -SELECT COUNT(*) FROM information_schema.table_constraints; -COUNT(*) -1 -connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL db_datadict_2 PRIMARY db_datadict_2 res_6_401003_2 PRIMARY KEY -SELECT COUNT(*) FROM information_schema.table_constraints; -COUNT(*) -1 -use db_datadict; - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE res_6_401003_1; -USE db_datadict_2; -DROP TABLE res_6_401003_2; -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; - -Testcase 3.2.11.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC table_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE table_privileges; -Table Create Table -TABLE_PRIVILEGES CREATE TEMPORARY TABLE `TABLE_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_privileges' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -create database db_datadict; -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -use db_datadict; -create table tb1(f1 int, f2 int, f3 int); -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; -SELECT * FROM information_schema.table_privileges -WHERE table_name LIKE 'tb%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict tb1 SELECT NO -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict tb1 SELECT YES -'user_2'@'localhost' NULL db_datadict tb1 INSERT YES -'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES -'user_2'@'localhost' NULL db_datadict tb1 DELETE YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE YES -'user_2'@'localhost' NULL db_datadict tb1 DROP YES -'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES -'user_2'@'localhost' NULL db_datadict tb1 INDEX YES -'user_2'@'localhost' NULL db_datadict tb1 ALTER YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES -'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES -SELECT USER(), COUNT(*) -FROM information_schema.table_privileges -WHERE grantee = USER(); -USER() COUNT(*) -user_2@localhost 0 -SELECT USER(), COUNT(*) -FROM information_schema.table_privileges -WHERE grantee = "'user_2'@'localhost'"; -USER() COUNT(*) -user_2@localhost 11 -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict tb3 SELECT NO - -root@localhost db_datadict -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict tb1 SELECT YES -'user_2'@'localhost' NULL db_datadict tb1 INSERT YES -'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES -'user_2'@'localhost' NULL db_datadict tb1 DELETE YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE YES -'user_2'@'localhost' NULL db_datadict tb1 DROP YES -'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES -'user_2'@'localhost' NULL db_datadict tb1 INDEX YES -'user_2'@'localhost' NULL db_datadict tb1 ALTER YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES -'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES -'user_1'@'localhost' NULL db_datadict tb1 SELECT NO -'user_3'@'localhost' NULL db_datadict tb3 SELECT NO - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -drop table db_datadict.tb1; -drop table db_datadict.tb3; -use test; -drop database db_datadict; - -Testcase 3.2.12.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC tables; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -TABLE_TYPE varchar(64) NO -ENGINE varchar(64) YES NULL -VERSION bigint(21) YES NULL -ROW_FORMAT varchar(10) YES NULL -TABLE_ROWS bigint(21) YES NULL -AVG_ROW_LENGTH bigint(21) YES NULL -DATA_LENGTH bigint(21) YES NULL -MAX_DATA_LENGTH bigint(21) YES NULL -INDEX_LENGTH bigint(21) YES NULL -DATA_FREE bigint(21) YES NULL -AUTO_INCREMENT bigint(21) YES NULL -CREATE_TIME datetime YES NULL -UPDATE_TIME datetime YES NULL -CHECK_TIME datetime YES NULL -TABLE_COLLATION varchar(64) YES NULL -CHECKSUM bigint(21) YES NULL -CREATE_OPTIONS varchar(255) YES NULL -TABLE_COMMENT varchar(80) NO -SHOW CREATE TABLE tables; -Table Create Table -TABLES CREATE TEMPORARY TABLE `TABLES` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `TABLE_TYPE` varchar(64) NOT NULL default '', - `ENGINE` varchar(64) default NULL, - `VERSION` bigint(21) default NULL, - `ROW_FORMAT` varchar(10) default NULL, - `TABLE_ROWS` bigint(21) default NULL, - `AVG_ROW_LENGTH` bigint(21) default NULL, - `DATA_LENGTH` bigint(21) default NULL, - `MAX_DATA_LENGTH` bigint(21) default NULL, - `INDEX_LENGTH` bigint(21) default NULL, - `DATA_FREE` bigint(21) default NULL, - `AUTO_INCREMENT` bigint(21) default NULL, - `CREATE_TIME` datetime default NULL, - `UPDATE_TIME` datetime default NULL, - `CHECK_TIME` datetime default NULL, - `TABLE_COLLATION` varchar(64) default NULL, - `CHECKSUM` bigint(21) default NULL, - `CREATE_OPTIONS` varchar(255) default NULL, - `TABLE_COMMENT` varchar(80) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'tables' -ORDER BY ordinal_position; -COUNT(*) -21 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'tables' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select - -Testcase 3.2.12.2 + 3.2.12.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -create database db_datadict; -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.* -TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -use db_datadict; -create table tb1(f1 int, f2 int, f3 int); -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -CREATE TABLE tb2 (f1 DECIMAL); -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; -GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost'; -CREATE VIEW v3 AS SELECT * FROM tb3; -GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost'; -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB - -root@localhost db_datadict -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL mysql columns_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Column privileges -NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Database privileges -NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions -NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges -NULL mysql proc BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Stored Procedures -NULL mysql procs_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Procedure privileges -NULL mysql tables_priv BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Table privileges -NULL mysql time_zone BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# 6 YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zones -NULL mysql time_zone_leap_second BASE TABLE MyISAM 10 Fixed 22 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Leap seconds information for time zones -NULL mysql time_zone_name BASE TABLE MyISAM 10 Fixed 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone names -NULL mysql time_zone_transition BASE TABLE MyISAM 10 Fixed 393 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transitions -NULL mysql time_zone_transition_type BASE TABLE MyISAM 10 Fixed 31 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transition types -NULL mysql user BASE TABLE MyISAM 10 Dynamic 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Users and global privileges -NULL test t1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t10 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t11 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t7 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t8 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test t9 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb1 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb3 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test tb4 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test1 tb2 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -NULL test4 t6 BASE TABLE InnoDB 10 Compact 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL InnoDB free: 3072 kB -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP TABLE db_datadict.tb1; -DROP TABLE db_datadict.tb3; -DROP VIEW db_datadict.v3; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.13.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC views; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -VIEW_DEFINITION longtext NO NULL -CHECK_OPTION varchar(8) NO -IS_UPDATABLE varchar(3) NO -DEFINER varchar(77) NO -SECURITY_TYPE varchar(7) NO -SHOW CREATE TABLE views; -Table Create Table -VIEWS CREATE TEMPORARY TABLE `VIEWS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `VIEW_DEFINITION` longtext NOT NULL, - `CHECK_OPTION` varchar(8) NOT NULL default '', - `IS_UPDATABLE` varchar(3) NOT NULL default '', - `DEFINER` varchar(77) NOT NULL default '', - `SECURITY_TYPE` varchar(7) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'views' -ORDER BY ordinal_position; -COUNT(*) -8 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'views' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select - -Testcase 3.2.13.2 + 3.2.13.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_no_views'@'localhost'; -USE db_datadict; -CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT); -CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302; -CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302; -GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost'; -GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_glob /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER -NULL db_datadict v_granted_to_1 /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f1` AS `f1`,`db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER -connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER -connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_glob NONE YES root@localhost DEFINER -NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER -connect(localhost,user_no_views,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE - -root@localhost db_datadict -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_no_views'@'localhost'; -DROP VIEW v_granted_to_1; -DROP TABLE tb_401302; -DROP VIEW v_granted_glob; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.14.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC statistics; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -NON_UNIQUE bigint(1) NO 0 -INDEX_SCHEMA varchar(64) NO -INDEX_NAME varchar(64) NO -SEQ_IN_INDEX bigint(2) NO 0 -COLUMN_NAME varchar(64) NO -COLLATION varchar(1) YES NULL -CARDINALITY bigint(21) YES NULL -SUB_PART bigint(3) YES NULL -PACKED varchar(10) YES NULL -NULLABLE varchar(3) NO -INDEX_TYPE varchar(16) NO -COMMENT varchar(16) YES NULL -SHOW CREATE TABLE statistics; -Table Create Table -STATISTICS CREATE TEMPORARY TABLE `STATISTICS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `NON_UNIQUE` bigint(1) NOT NULL default '0', - `INDEX_SCHEMA` varchar(64) NOT NULL default '', - `INDEX_NAME` varchar(64) NOT NULL default '', - `SEQ_IN_INDEX` bigint(2) NOT NULL default '0', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `COLLATION` varchar(1) default NULL, - `CARDINALITY` bigint(21) default NULL, - `SUB_PART` bigint(3) default NULL, - `PACKED` varchar(10) default NULL, - `NULLABLE` varchar(3) NOT NULL default '', - `INDEX_TYPE` varchar(16) NOT NULL default '', - `COMMENT` varchar(16) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'statistics' -ORDER BY ordinal_position; -COUNT(*) -15 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'statistics' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select - -Testcase 3.2.14.2 + 3.2.14.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION; -USE db_datadict_2; -create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT - -root@localhost db_datadict_2 -REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost'; -SELECT * FROM information_schema.statistics -WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict tb_6_401402_2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_2 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_2 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_2 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 3 type A 0 NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 2 NULL NULL BTREE -NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE -NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE -NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 2 User A 5 NULL NULL BTREE - -user_1@localhost test -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE - -user_2@localhost test -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT - -root@localhost db_datadict_2 -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE tb_6_401402_1; -DROP TABLE tb_6_401402_2; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.15.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC schema_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE schema_privileges; -Table Create Table -SCHEMA_PRIVILEGES CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schema_privileges' -ORDER BY ordinal_position; -COUNT(*) -5 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schema_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.15.2: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -create database db_datadict; -create database db_datadict_2; -CREATE USER 'u_6_401502'@'localhost'; -use db_datadict; -create table res_6_401502(f1 int, f2 int, f3 int); -grant insert on db_datadict.* to 'u_6_401502'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401502'@'localhost' NULL db_datadict INSERT NO -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -connect(localhost,u_6_401502,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401502'@'localhost' NULL db_datadict INSERT NO -use db_datadict; - -root@localhost db_datadict -DROP USER 'u_6_401502'@'localhost'; -drop table res_6_401502; -use test; -drop database db_datadict; -drop database db_datadict_2; - -Testcase 3.2.15.3 + 3.2.15.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -create database db_datadict; -create database db_datadict_2; -CREATE USER 'u_6_401503_1'@'localhost'; -CREATE USER 'u_6_401503_2'@'localhost'; -CREATE USER 'u_6_401503_3'@'localhost'; -use db_datadict; -create table res_6_401503_1(f1 int, f2 int, f3 int); -use db_datadict_2; -create table res_6_401503_2(f1 int, f2 int, f3 int); -grant update on db_datadict.* to 'u_6_401503_1'@'localhost'; -grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO -'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -connect(localhost,u_6_401503_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO -connect(localhost,u_6_401503_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO -connect(localhost,u_6_401503_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE - -root@localhost db_datadict_2 -use db_datadict; -DROP USER 'u_6_401503_1'@'localhost'; -DROP USER 'u_6_401503_2'@'localhost'; -DROP USER 'u_6_401503_3'@'localhost'; -drop table res_6_401503_1; -use db_datadict_2; -drop table res_6_401503_2; -use test; -drop database db_datadict; -drop database db_datadict_2; - -Testcase 3.2.16.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC user_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE user_privileges; -Table Create Table -USER_PRIVILEGES CREATE TEMPORARY TABLE `USER_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'user_privileges' -ORDER BY ordinal_position; -COUNT(*) -4 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'user_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; -GRANT INSERT ON *.* TO 'user_2'@'localhost'; -GRANT UPDATE ON *.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; - -FIXME (see Bug 12269) Here we expect more than only for user_1 ----------------------------------------------------------------------- -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -add GRANT OPTION db_datadict.* to user_1 ----------------------------------------- -GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; - -FIXME (see Bug 12269) Here the is missing for the GRANT OPTION for user_1 -------------------------------------------------------------------------------- -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' - -Now add SELECT on *.* to user_1 -------------------------------- - -root@localhost information_schema -GRANT SELECT ON *.* TO 'user_1'@'localhost'; - -Here is shown correctly for user_1 ------------------------------------------------ -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -FLUSH PRIVILEGES; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_2@localhost -GRANT INSERT, UPDATE ON *.* TO 'user_2'@'localhost' -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_3'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_3@localhost -GRANT USAGE ON *.* TO 'user_3'@'localhost' - -revoke privileges from user_1 ------------------------------ - -root@localhost information_schema -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' - -user_1@localhost db_datadict -CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_55' - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_66' - -add ALL on db_datadict.* (and select on mysql.user) to user_1 -------------------------------------------------------------- - -root@localhost information_schema -GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_56' -USE db_datadict; - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -CREATE TABLE tb_57 ( c1 TEXT ); - -revoke privileges from user_1 ------------------------------ - -root@localhost information_schema -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_58 ( c1 TEXT ); -USE db_datadict; -ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_datadict' -CREATE TABLE db_datadict.tb_59 ( c1 TEXT ); - -root@localhost information_schema -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.17: Checks on Performance - not here in this script! --------------------------------------------------------------------------------- - -Testcase 3.2.18.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC triggers; -Field Type Null Key Default Extra -TRIGGER_CATALOG varchar(4096) YES NULL -TRIGGER_SCHEMA varchar(64) NO -TRIGGER_NAME varchar(64) NO -EVENT_MANIPULATION varchar(6) NO -EVENT_OBJECT_CATALOG varchar(4096) YES NULL -EVENT_OBJECT_SCHEMA varchar(64) NO -EVENT_OBJECT_TABLE varchar(64) NO -ACTION_ORDER bigint(4) NO 0 -ACTION_CONDITION longtext YES NULL -ACTION_STATEMENT longtext NO NULL -ACTION_ORIENTATION varchar(9) NO -ACTION_TIMING varchar(6) NO -ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL -ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL -ACTION_REFERENCE_OLD_ROW varchar(3) NO -ACTION_REFERENCE_NEW_ROW varchar(3) NO -CREATED datetime YES NULL -SQL_MODE longtext NO NULL -DEFINER longtext NO NULL -SHOW CREATE TABLE triggers; -Table Create Table -TRIGGERS CREATE TEMPORARY TABLE `TRIGGERS` ( - `TRIGGER_CATALOG` varchar(4096) default NULL, - `TRIGGER_SCHEMA` varchar(64) NOT NULL default '', - `TRIGGER_NAME` varchar(64) NOT NULL default '', - `EVENT_MANIPULATION` varchar(6) NOT NULL default '', - `EVENT_OBJECT_CATALOG` varchar(4096) default NULL, - `EVENT_OBJECT_SCHEMA` varchar(64) NOT NULL default '', - `EVENT_OBJECT_TABLE` varchar(64) NOT NULL default '', - `ACTION_ORDER` bigint(4) NOT NULL default '0', - `ACTION_CONDITION` longtext, - `ACTION_STATEMENT` longtext NOT NULL, - `ACTION_ORIENTATION` varchar(9) NOT NULL default '', - `ACTION_TIMING` varchar(6) NOT NULL default '', - `ACTION_REFERENCE_OLD_TABLE` varchar(64) default NULL, - `ACTION_REFERENCE_NEW_TABLE` varchar(64) default NULL, - `ACTION_REFERENCE_OLD_ROW` varchar(3) NOT NULL default '', - `ACTION_REFERENCE_NEW_ROW` varchar(3) NOT NULL default '', - `CREATED` datetime default NULL, - `SQL_MODE` longtext NOT NULL, - `DEFINER` longtext NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'triggers' -ORDER BY ordinal_position; -COUNT(*) -19 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'triggers' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select - -Testcase 3.2.18.2 + 3.2.18.3: --------------------------------------------------------------------------------- - -Testcase 3.2.19.1: --------------------------------------------------------------------------------- - -checking a table that will be implemented later ------------------------------------------------ -DESC parameters; -ERROR 42S02: Unknown table 'parameters' in information_schema - -Testcase 3.2.20.1: --------------------------------------------------------------------------------- - -checking a table that will be implemented later ------------------------------------------------ -DESC referential_constraints; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema - -*** End of Data Dictionary Tests *** --------------------------------------------------------------------------------- -DROP TABLE IF EXISTS test.tb1; -DROP TABLE IF EXISTS test.tb2; -DROP TABLE IF EXISTS test.tb3; -DROP TABLE IF EXISTS test.tb4; -DROP TABLE IF EXISTS test.t1; -DROP TABLE IF EXISTS test.t2; -DROP TABLE IF EXISTS test.t3; -DROP TABLE IF EXISTS test.t4; -DROP TABLE IF EXISTS test.t7; -DROP TABLE IF EXISTS test.t8; -DROP TABLE IF EXISTS test.t9; -DROP TABLE IF EXISTS test.t10; -DROP TABLE IF EXISTS test.t11; -DROP DATABASE IF EXISTS test1; -DROP DATABASE IF EXISTS test4; -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; diff --git a/mysql-test/suite/funcs_1/r/innodb__load.result b/mysql-test/suite/funcs_1/r/innodb__load.result deleted file mode 100644 index c1b9c89b257..00000000000 --- a/mysql-test/suite/funcs_1/r/innodb__load.result +++ /dev/null @@ -1 +0,0 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); diff --git a/mysql-test/suite/funcs_1/r/innodb_bitdata.result b/mysql-test/suite/funcs_1/r/innodb_bitdata.result index 57f7b017e69..917157fcdae 100644 --- a/mysql-test/suite/funcs_1/r/innodb_bitdata.result +++ b/mysql-test/suite/funcs_1/r/innodb_bitdata.result @@ -1,67 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -drop table if exists tb4; -create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f235 char(0) unicode, -f236 char(90), -f237 char(255) ascii, -f238 varchar(0), -f239 varchar(20000) binary, -f240 varchar(2000) unicode, -f241 char(100) unicode -) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ; NOT YET IMPLEMENTED: bitdata tests -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_cursors.result b/mysql-test/suite/funcs_1/r/innodb_cursors.result index bcb692c30d7..9f20e51204b 100644 --- a/mysql-test/suite/funcs_1/r/innodb_cursors.result +++ b/mysql-test/suite/funcs_1/r/innodb_cursors.result @@ -1,81 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -drop table if exists tb1 ; -create table tb1 ( -f1 char(0), -f2 char(0) binary, -f3 char(0) ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, -f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal, -f34 decimal unsigned, -f35 decimal zerofill, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, -f58 numeric (64) not null DEFAULT 99 -) engine = innodb; -Warnings: -Note 1265 Data truncated for column 'f36' at row 1 -Note 1265 Data truncated for column 'f37' at row 1 -Note 1265 Data truncated for column 'f38' at row 1 -Note 1265 Data truncated for column 'f39' at row 1 -Note 1265 Data truncated for column 'f40' at row 1 -Note 1265 Data truncated for column 'f41' at row 1 -Note 1265 Data truncated for column 'f42' at row 1 -Note 1265 Data truncated for column 'f43' at row 1 -Note 1265 Data truncated for column 'f44' at row 1 -Note 1265 Data truncated for column 'f45' at row 1 -Note 1265 Data truncated for column 'f47' at row 1 -Note 1265 Data truncated for column 'f49' at row 1 -Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ; NOT YET IMPLEMENTED: cursor tests -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result index 5560fb1fd73..9081c6da3f7 100755 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result index fe400ceeb6d..faf598b090b 100755 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result index ce3a882000b..639e8cdb48b 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result index cbe20882ec2..d0b9d8ae806 100755 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result index 91a3a954f57..68e32626425 100755 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result index ec2b4850d30..f2c47342019 100755 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_0102.result b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result index 56f20781995..9c2c2a38a4d 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_0102.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -362,3 +361,4 @@ select @test_var1, @test_var2, @test_var3; trig1_b trig1_a trig2 drop database trig_db1; drop database trig_db2; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_03.result b/mysql-test/suite/funcs_1/r/innodb_trig_03.result index 18300c6fc6b..4e6b4523f1d 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_03.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_03.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -749,3 +748,4 @@ drop database if exists priv_db; drop user test_yesprivs@localhost; drop user test_noprivs@localhost; drop user test_noprivs; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_0407.result b/mysql-test/suite/funcs_1/r/innodb_trig_0407.result index ce7c51ec630..e7f2b374845 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_0407.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_0407.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -478,3 +477,4 @@ Testcase 3.5.7.17 (see Testcase 3.5.1.1) drop user test_general@localhost; drop user test_general; drop user test_super@localhost; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_08.result b/mysql-test/suite/funcs_1/r/innodb_trig_08.result index bb087d5882e..a13116df9b4 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_08.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_08.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -497,3 +496,4 @@ Testcase 3.5.8.7: (Disabled as a result of bug _____) drop user test_general@localhost; drop user test_general; drop user test_super@localhost; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_09.result b/mysql-test/suite/funcs_1/r/innodb_trig_09.result index 685de95db51..34a430ba052 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_09.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_09.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -269,3 +268,4 @@ drop trigger trg6c; Testcase 3.5.9.14: (implied in previous tests) ---------------------------------------------- +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result index 182747e3153..8976787420d 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -397,3 +396,4 @@ drop table t1; drop table t2; drop table t3; drop table t4; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result b/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result index 56dd5d6740e..debbec1dde3 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -138,3 +137,4 @@ drop table t2, t1, t0; Foreign Key tests disabled (bug 11472 - stored in trig_frkey2.test) ------------------------------------------------------------------- +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/innodb_views.result b/mysql-test/suite/funcs_1/r/innodb_views.result index 7f94f266102..f091e49c96b 100644 --- a/mysql-test/suite/funcs_1/r/innodb_views.result +++ b/mysql-test/suite/funcs_1/r/innodb_views.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb2 ; create table tb2 ( @@ -11452,4 +11451,5 @@ DROP VIEW IF EXISTS v1_secondview; DROP VIEW IF EXISTS v2; DROP DATABASE IF EXISTS test2; DROP DATABASE IF EXISTS test3; -DROP DATABASE IF EXISTS test1; +DROP DATABASE test1; +DROP TABLE test.tb2; diff --git a/mysql-test/suite/funcs_1/r/is_basics_mixed.result b/mysql-test/suite/funcs_1/r/is_basics_mixed.result new file mode 100644 index 00000000000..d20e5750403 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_basics_mixed.result @@ -0,0 +1,602 @@ +SHOW DATABASES LIKE 'information_schema'; +Database (information_schema) +information_schema +####################################################################### +# Testcase 3.2.1.20: USE INFORMATION_SCHEMA is supported +####################################################################### +# Switch to connection default +USE test; +SELECT DATABASE(); +DATABASE() +test +USE information_schema; +SELECT DATABASE(); +DATABASE() +information_schema +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +# Establish connection testuser1 (user=testuser1) +SELECT DATABASE(); +DATABASE() +test +USE information_schema; +SELECT DATABASE(); +DATABASE() +information_schema +# Switch to connection default and close connection testuser1 +DROP USER 'testuser1'@'localhost'; +####################################################################### +# Testcase TBD1: The INFORMATION_SCHEMA cannot be dropped. +####################################################################### +DROP DATABASE information_schema; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +####################################################################### +# Testcase TBD2: There cannot be a second database INFORMATION_SCHEMA. +####################################################################### +CREATE DATABASE information_schema; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +################################################################################## +# Testcase 3.2.1.6+3.2.1.7: No user may create an INFORMATION_SCHEMA table or view +################################################################################## +# Switch to connection default (user=root) +USE information_schema; +CREATE TABLE schemata ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE tables ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE columns ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE character_sets ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE collations ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE collation_character_set_applicability ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE routines ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE statistics ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE views ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE user_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE schema_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE table_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE column_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE table_constraints ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE key_column_usage ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE triggers ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE t1 (f1 INT, f2 INT, f3 INT); +ERROR 42S02: Unknown table 't1' in information_schema +CREATE VIEW tables AS SELECT 'garbage'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE VIEW tables AS SELECT * FROM information_schema.tables; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE VIEW v1 AS SELECT 'garbage'; +ERROR 42S02: Unknown table 'v1' in information_schema +USE test; +CREATE TABLE information_schema. schemata ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. tables ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. columns ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. character_sets ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. collations ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. routines ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. statistics ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. views ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. user_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. schema_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. table_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. column_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. table_constraints ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. key_column_usage ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. triggers ( c1 INT ); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE TABLE information_schema.t1 (f1 INT, f2 INT, f3 INT); +ERROR 42S02: Unknown table 't1' in information_schema +CREATE VIEW information_schema.tables AS SELECT 'garbage'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE VIEW information_schema.tables AS +SELECT * FROM information_schema.tables; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE VIEW information_schema.v1 AS SELECT 'garbage'; +ERROR 42S02: Unknown table 'v1' in information_schema +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT ALL ON *.* TO testuser1@localhost; +SHOW GRANTS FOR testuser1@localhost; +Grants for testuser1@localhost +GRANT ALL PRIVILEGES ON *.* TO 'testuser1'@'localhost' +# Establish connection testuser1 (user=testuser1) +USE information_schema; +CREATE TABLE schemata ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE tables ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE columns ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE character_sets ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE collations ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE collation_character_set_applicability ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE routines ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE statistics ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE views ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE user_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE schema_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE table_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE column_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE table_constraints ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE key_column_usage ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE triggers ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE t1 (f1 INT, f2 INT, f3 INT); +ERROR 42S02: Unknown table 't1' in information_schema +CREATE VIEW tables AS SELECT 'garbage'; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE VIEW tables AS SELECT * FROM information_schema.tables; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE VIEW v1 AS SELECT 'garbage'; +ERROR 42S02: Unknown table 'v1' in information_schema +USE test; +CREATE TABLE information_schema. schemata ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. tables ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. columns ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. character_sets ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. collations ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. routines ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. statistics ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. views ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. user_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. schema_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. table_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. column_privileges ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. table_constraints ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. key_column_usage ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema. triggers ( c1 INT ); +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE TABLE information_schema.t1 (f1 INT, f2 INT, f3 INT); +ERROR 42S02: Unknown table 't1' in information_schema +CREATE VIEW information_schema.tables AS SELECT 'garbage'; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE VIEW information_schema.tables AS +SELECT * FROM information_schema.tables; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema' +CREATE VIEW information_schema.v1 AS SELECT 'garbage'; +ERROR 42S02: Unknown table 'v1' in information_schema +# Switch to connection default (user=root) and close connection testuser1 +DROP USER 'testuser1'@'localhost'; +############################################################################### +# Testcase 3.2.1.1+3.2.1.2: INFORMATION_SCHEMA tables can be queried via SELECT +############################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1_first (f1 BIGINT UNIQUE, f2 BIGINT) +ENGINE = ; +CREATE TABLE db_datadict.t1_second (f1 BIGINT UNIQUE, f2 BIGINT) +ENGINE = ; +# Attention: The protocolling of the next result set is disabled. +SELECT * FROM information_schema.tables; +SELECT table_name FROM information_schema.tables +WHERE table_schema = 'db_datadict'; +table_name +t1_first +t1_second +SELECT LENGTH(table_name) FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +LENGTH(table_name) +8 +9 +SELECT count(table_name) FROM information_schema.tables +WHERE table_schema LIKE 'db_datadic%'; +count(table_name) +2 +SELECT CAST((LENGTH(table_schema) + LENGTH(table_name)) AS DECIMAL(15,1)) +FROM information_schema.tables +WHERE table_schema = 'db_datadict'; +CAST((LENGTH(table_schema) + LENGTH(table_name)) AS DECIMAL(15,1)) +19.0 +20.0 +SELECT table_name FROM information_schema.tables +WHERE table_name IN ('t1_first','t1_second') ORDER BY table_name LIMIT 1; +table_name +t1_first +SELECT table_name FROM information_schema.tables +WHERE table_name IN ('t1_first','t1_second') ORDER BY table_name LIMIT 1,1; +table_name +t1_second +SELECT table_name,table_schema AS my_col FROM information_schema.tables +WHERE table_name = 't1_first' AND table_schema = 'db_datadict'; +table_name my_col +t1_first db_datadict +SELECT HIGH_PRIORITY table_name AS my_col FROM information_schema.tables +WHERE table_name = 't1_first' OR table_name = 't1_second'; +my_col +t1_first +t1_second +SELECT 1 AS my_col FROM information_schema.tables +WHERE table_name = 't1_third'; +my_col +SELECT table_name,table_schema INTO @table_name,@table_schema +FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name LIMIT 1; +SELECT @table_name,@table_schema; +@table_name @table_schema +t1_first db_datadict +SELECT table_name,table_schema +INTO OUTFILE '' +FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' +LINES TERMINATED BY '\n' +FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +"t1_first","db_datadict" +"t1_second","db_datadict" +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_first' +UNION ALL +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_second'; +table_name +t1_first +t1_second +SELECT DISTINCT table_schema FROM information_schema.tables +WHERE table_name IN (SELECT table_name FROM information_schema.tables +WHERE table_schema = 'db_datadict') +ORDER BY table_name; +table_schema +db_datadict +SELECT table_name FROM information_schema.tables t1 +LEFT JOIN information_schema.tables t2 USING(table_name,table_schema) +WHERE t2.table_schema = 'db_datadict' +ORDER BY table_name; +table_name +t1_first +t1_second +USE test; +SELECT * FROM tables; +ERROR 42S02: Table 'test.tables' doesn't exist +######################################################################### +# Testcase 3.2.1.17+3.2.1.18 +######################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT UNIQUE, f2 BIGINT) +ENGINE = ; +SELECT * FROM db_datadict.t1; +f1 f2 +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +GRANT CREATE VIEW,SELECT ON db_datadict.* TO testuser1@localhost +WITH GRANT OPTION; +GRANT USAGE ON db_datadict.* TO testuser2@localhost; +FLUSH PRIVILEGES; +GRANT SELECT on information_schema.* TO testuser1@localhost; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +# Establish connection testuser1 (user=testuser1) +SELECT table_schema,table_name FROM information_schema.tables +WHERE table_schema = 'information_schema' AND table_name = 'tables'; +table_schema table_name +information_schema TABLES +SELECT * FROM information_schema.table_privileges +WHERE table_schema = 'information_schema'; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'information_schema'; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +CREATE VIEW db_datadict.v2 AS +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM information_schema.tables WHERE table_schema = 'db_datadict'; +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM db_datadict.v2; +TABLE_SCHEMA TABLE_NAME TABLE_TYPE +db_datadict t1 BASE TABLE +db_datadict v2 VIEW +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM information_schema.tables WHERE table_schema = 'db_datadict'; +TABLE_SCHEMA TABLE_NAME TABLE_TYPE +db_datadict t1 BASE TABLE +db_datadict v2 VIEW +GRANT SELECT ON db_datadict.v2 to testuser2@localhost; +# Establish connection testuser2 (user=testuser2) +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM db_datadict.v2; +TABLE_SCHEMA TABLE_NAME TABLE_TYPE +db_datadict v2 VIEW +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM information_schema.tables WHERE table_schema = 'db_datadict'; +TABLE_SCHEMA TABLE_NAME TABLE_TYPE +db_datadict v2 VIEW +# Switch to connection default and close connections testuser1 and testuser2 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE db_datadict; +######################################################################### +# Testcase 3.2.1.19 +######################################################################### +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +SELECT 'empty result set was expected' AS my_col +FROM information_schema.schema_privileges +WHERE table_schema = 'information_schema'; +my_col +SELECT 'empty result set was expected' AS my_col +FROM information_schema.table_privileges +WHERE table_schema = 'information_schema'; +my_col +SELECT 'empty result set was expected' AS my_col +FROM information_schema.column_privileges +WHERE table_schema = 'information_schema'; +my_col +GRANT ALTER ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT ALTER ROUTINE ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT CREATE ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT CREATE ROUTINE ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT CREATE TEMPORARY TABLES ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT DELETE ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT DROP ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT EXECUTE ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT INDEX ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT INSERT ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT LOCK TABLES ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +GRANT UPDATE ON information_schema.* +TO 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +SELECT 'empty result set was expected' AS my_col +FROM information_schema.schema_privileges +WHERE table_schema = 'information_schema'; +my_col +SELECT 'empty result set was expected' AS my_col +FROM information_schema.table_privileges +WHERE table_schema = 'information_schema'; +my_col +SELECT 'empty result set was expected' AS my_col +FROM information_schema.column_privileges +WHERE table_schema = 'information_schema'; +my_col +DROP USER 'testuser1'@'localhost'; +######################################################################### +# Testcase 3.2.1.16 +######################################################################### +SELECT DISTINCT table_schema FROM information_schema.columns +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT table_schema FROM information_schema.column_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.key_column_usage +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +constraint_schema table_schema +SELECT DISTINCT routine_schema FROM information_schema.routines +WHERE routine_schema LIKE 'db_data%'; +routine_schema +SELECT DISTINCT schema_name FROM information_schema.schemata +WHERE schema_name LIKE 'db_data%'; +schema_name +SELECT DISTINCT table_schema FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics +WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%'; +table_schema index_schema +SELECT DISTINCT table_schema FROM information_schema.tables +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.table_constraints +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +constraint_schema table_schema +SELECT DISTINCT table_schema FROM information_schema.table_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT trigger_schema,event_object_schema +FROM information_schema.triggers +WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%'; +trigger_schema event_object_schema +SELECT DISTINCT table_schema FROM information_schema.views +WHERE table_schema LIKE 'db_data%'; +table_schema +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT NOT NULL, f3 BIGINT, +PRIMARY KEY(f1)) +ENGINE = ; +CREATE UNIQUE INDEX UIDX ON db_datadict.t1(f3); +CREATE PROCEDURE db_datadict.sproc1() SELECT 'db_datadict'; +CREATE FUNCTION db_datadict.func1() RETURNS INT RETURN 0; +CREATE TRIGGER db_datadict.trig1 BEFORE INSERT ON db_datadict.t1 +FOR EACH ROW SET @aux = 1; +CREATE VIEW db_datadict.v1 AS SELECT * FROM db_datadict.t1; +CREATE VIEW db_datadict.v2 AS SELECT * FROM information_schema.tables; +SELECT DISTINCT table_schema FROM information_schema.columns +WHERE table_schema LIKE 'db_data%'; +table_schema +db_datadict +SELECT DISTINCT table_schema FROM information_schema.column_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.key_column_usage +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +constraint_schema table_schema +db_datadict db_datadict +SELECT DISTINCT routine_schema FROM information_schema.routines +WHERE routine_schema LIKE 'db_data%'; +routine_schema +db_datadict +SELECT DISTINCT schema_name FROM information_schema.schemata +WHERE schema_name LIKE 'db_data%'; +schema_name +db_datadict +SELECT DISTINCT table_schema FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics +WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%'; +table_schema index_schema +db_datadict db_datadict +SELECT DISTINCT table_schema FROM information_schema.tables +WHERE table_schema LIKE 'db_data%'; +table_schema +db_datadict +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.table_constraints +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +constraint_schema table_schema +db_datadict db_datadict +SELECT DISTINCT table_schema FROM information_schema.table_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT trigger_schema,event_object_schema +FROM information_schema.triggers +WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%'; +trigger_schema event_object_schema +db_datadict db_datadict +SELECT DISTINCT table_schema FROM information_schema.views +WHERE table_schema LIKE 'db_data%'; +table_schema +db_datadict +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT ALL ON test.* TO 'testuser1'@'localhost'; +# Establish connection testuser1 (user=testuser1) +SELECT DISTINCT table_schema FROM information_schema.columns +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT table_schema FROM information_schema.column_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.key_column_usage +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +constraint_schema table_schema +SELECT DISTINCT routine_schema FROM information_schema.routines +WHERE routine_schema LIKE 'db_data%'; +routine_schema +SELECT DISTINCT schema_name FROM information_schema.schemata +WHERE schema_name LIKE 'db_data%'; +schema_name +SELECT DISTINCT table_schema FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics +WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%'; +table_schema index_schema +SELECT DISTINCT table_schema FROM information_schema.tables +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT constraint_schema,table_schema +FROM information_schema.table_constraints +WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%'; +constraint_schema table_schema +SELECT DISTINCT table_schema FROM information_schema.table_privileges +WHERE table_schema LIKE 'db_data%'; +table_schema +SELECT DISTINCT trigger_schema,event_object_schema +FROM information_schema.triggers +WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%'; +trigger_schema event_object_schema +SELECT DISTINCT table_schema FROM information_schema.views +WHERE table_schema LIKE 'db_data%'; +table_schema +# Switch to connection default and close connections testuser1 and testuser2 +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP PROCEDURE IF EXISTS test.p1; +CREATE PROCEDURE test.p1() +INSERT INTO information_schema.tables +SELECT * FROM information_schema.tables LIMIT 1; +CALL test.p1(); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP PROCEDURE test.p1; +CREATE PROCEDURE test.p1() +UPDATE information_schema.columns SET table_schema = 'garbage'; +CALL test.p1(); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP PROCEDURE test.p1; +CREATE PROCEDURE test.p1() +DELETE FROM information_schema.schemata; +CALL test.p1(); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP PROCEDURE test.p1; +######################################################################### +# Testcase 3.2.17.1+3.2.17.2: To be implemented outside of this script +######################################################################### diff --git a/mysql-test/suite/funcs_1/r/is_character_sets.result b/mysql-test/suite/funcs_1/r/is_character_sets.result new file mode 100644 index 00000000000..b6fee4444b9 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_character_sets.result @@ -0,0 +1,78 @@ +SHOW TABLES FROM information_schema LIKE 'CHARACTER_SETS'; +Tables_in_information_schema (CHARACTER_SETS) +CHARACTER_SETS +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.CHARACTER_SETS; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.CHARACTER_SETS; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.CHARACTER_SETS; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.CHARACTER_SETS; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.2.1: INFORMATION_SCHEMA.CHARACTER_SETS layout +######################################################################### +DESCRIBE information_schema.CHARACTER_SETS; +Field Type Null Key Default Extra +CHARACTER_SET_NAME varchar(64) NO +DEFAULT_COLLATE_NAME varchar(64) NO +DESCRIPTION varchar(60) NO +MAXLEN bigint(3) NO 0 +SHOW CREATE TABLE information_schema.CHARACTER_SETS; +Table Create Table +CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` ( + `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', + `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '', + `DESCRIPTION` varchar(60) NOT NULL default '', + `MAXLEN` bigint(3) NOT NULL default '0' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.CHARACTER_SETS; +Field Type Null Key Default Extra +CHARACTER_SET_NAME varchar(64) NO +DEFAULT_COLLATE_NAME varchar(64) NO +DESCRIPTION varchar(60) NO +MAXLEN bigint(3) NO 0 +# Testcases 3.2.2.2 and 3.2.2.3 are checked in suite/funcs_1/t/charset_collation*.test +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +INSERT INTO information_schema.character_sets +SELECT * FROM information_schema.character_sets; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.character_sets SET description = 'just updated'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.character_sets WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.character_sets; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx ON information_schema.character_sets(character_set_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.character_sets DROP PRIMARY KEY; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.character_sets ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.character_sets; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.character_sets RENAME db_datadict.character_sets; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.character_sets +RENAME information_schema.xcharacter_sets; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result b/mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result new file mode 100644 index 00000000000..b85ba039478 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_collation_character_set_applicability.result @@ -0,0 +1,76 @@ +SHOW TABLES FROM information_schema LIKE 'COLLATION_CHARACTER_SET_APPLICABILITY'; +Tables_in_information_schema (COLLATION_CHARACTER_SET_APPLICABILITY) +COLLATION_CHARACTER_SET_APPLICABILITY +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.4.1: INFORMATION_SCHEMA.CHARACTER_SET_APPLICABILITY layout +######################################################################### +DESCRIBE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY; +Field Type Null Key Default Extra +COLLATION_NAME varchar(64) NO +CHARACTER_SET_NAME varchar(64) NO +SHOW CREATE TABLE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY; +Table Create Table +COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` ( + `COLLATION_NAME` varchar(64) NOT NULL default '', + `CHARACTER_SET_NAME` varchar(64) NOT NULL default '' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY; +Field Type Null Key Default Extra +COLLATION_NAME varchar(64) NO +CHARACTER_SET_NAME varchar(64) NO +# Testcases 3.2.4.2 and 3.2.4.3 are checked in suite/funcs_1/t/charset_collation*.test +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +INSERT INTO information_schema.collation_character_set_applicability +SELECT * FROM information_schema.collation_character_set_applicability; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.collation_character_set_applicability +SET collation_name = 'big6_chinese_ci' WHERE character_set_name = 'big6'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.collation_character_set_applicability +SET character_set_name = 't_4711'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.collation_character_set_applicability; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.collation_character_set_applicability; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx +ON information_schema.collation_character_set_applicability(collation_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collation_character_set_applicability ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.collation_character_set_applicability; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collation_character_set_applicability +RENAME db_datadict.collation_character_set_applicability; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collation_character_set_applicability +RENAME information_schema.xcollation_character_set_applicability; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_collations.result b/mysql-test/suite/funcs_1/r/is_collations.result new file mode 100644 index 00000000000..64e9c41eaa8 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_collations.result @@ -0,0 +1,90 @@ +SHOW TABLES FROM information_schema LIKE 'COLLATIONS'; +Tables_in_information_schema (COLLATIONS) +COLLATIONS +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLLATIONS; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLLATIONS; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.COLLATIONS; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.COLLATIONS; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.3.1: INFORMATION_SCHEMA.COLLATIONS layout +######################################################################### +DESCRIBE information_schema.COLLATIONS; +Field Type Null Key Default Extra +COLLATION_NAME varchar(64) NO +CHARACTER_SET_NAME varchar(64) NO +ID bigint(11) NO 0 +IS_DEFAULT varchar(3) NO +IS_COMPILED varchar(3) NO +SORTLEN bigint(3) NO 0 +SHOW CREATE TABLE information_schema.COLLATIONS; +Table Create Table +COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` ( + `COLLATION_NAME` varchar(64) NOT NULL default '', + `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', + `ID` bigint(11) NOT NULL default '0', + `IS_DEFAULT` varchar(3) NOT NULL default '', + `IS_COMPILED` varchar(3) NOT NULL default '', + `SORTLEN` bigint(3) NOT NULL default '0' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.COLLATIONS; +Field Type Null Key Default Extra +COLLATION_NAME varchar(64) NO +CHARACTER_SET_NAME varchar(64) NO +ID bigint(11) NO 0 +IS_DEFAULT varchar(3) NO +IS_COMPILED varchar(3) NO +SORTLEN bigint(3) NO 0 +# Testcases 3.2.3.2 and 3.2.3.3 are checked in suite/funcs_1/t/charset_collation*.test +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +INSERT INTO information_schema.collations +SELECT * FROM information_schema.collations; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +INSERT INTO information_schema.collations +(collation_name,character_set_name,id,is_default,is_compiled,sortlen) +VALUES ( 'cp1251_bin', 'cp1251',50, '', '',0); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.collations SET description = 'just updated'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.collations WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.collations; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx ON information_schema.collations(character_set_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collations DROP PRIMARY KEY; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collations ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collations ENABLE KEYS; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.collations; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collations RENAME db_datadict.collations; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.collations +RENAME information_schema.xcollations; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_column_privileges.result b/mysql-test/suite/funcs_1/r/is_column_privileges.result new file mode 100644 index 00000000000..56ddbaf02c7 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_column_privileges.result @@ -0,0 +1,370 @@ +SHOW TABLES FROM information_schema LIKE 'COLUMN_PRIVILEGES'; +Tables_in_information_schema (COLUMN_PRIVILEGES) +COLUMN_PRIVILEGES +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLUMN_PRIVILEGES; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLUMN_PRIVILEGES; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.COLUMN_PRIVILEGES; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.COLUMN_PRIVILEGES; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.5.1: INFORMATION_SCHEMA.COLUMN_PRIVILEGES layout +######################################################################### +DESCRIBE information_schema.COLUMN_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +COLUMN_NAME varchar(64) NO +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SHOW CREATE TABLE information_schema.COLUMN_PRIVILEGES; +Table Create Table +COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` ( + `GRANTEE` varchar(81) NOT NULL default '', + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `COLUMN_NAME` varchar(64) NOT NULL default '', + `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', + `IS_GRANTABLE` varchar(3) NOT NULL default '' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.COLUMN_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +COLUMN_NAME varchar(64) NO +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SELECT table_catalog, table_schema, table_name, column_name, privilege_type +FROM information_schema.column_privileges WHERE table_catalog IS NOT NULL; +table_catalog table_schema table_name column_name privilege_type +###################################################################### +# Testcase 3.2.5.2+3.2.5.3+3.2.5.4: +# INFORMATION_SCHEMA.COLUMN_PRIVILEGES accessible information +###################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 INT, f2 DECIMAL, f3 TEXT) +ENGINE = ; +USE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT INSERT(f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT UPDATE(f2) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT SELECT(f2) ON db_datadict.t1 TO 'testuser2'@'localhost'; +GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost'; +GRANT SELECT(f3) ON db_datadict.t1 TO 'testuser3'@'localhost'; +GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost' +WITH GRANT OPTION; +GRANT ALL ON db_datadict.* TO 'testuser3'@'localhost'; +SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict t1 f1 INSERT NO +'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE NO +'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT NO +'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO +'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES +GRANT UPDATE(f3) ON db_datadict.t1 TO 'testuser1'@'localhost' +WITH GRANT OPTION; +SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict t1 f1 INSERT YES +'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT YES +'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE YES +'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT YES +'testuser1'@'localhost' NULL db_datadict t1 f3 UPDATE YES +'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO +'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict t1 f1 INSERT YES +'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT YES +'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE YES +'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT YES +'testuser1'@'localhost' NULL db_datadict t1 f3 UPDATE YES +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO +# Establish connection testuser3 (user=testuser3) +# FIXME: Is it correct that granted TABLES do not occur in COLUMN_PRIVILEGES? +SELECT * FROM information_schema.table_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee,table_schema,table_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser3'@'localhost' NULL db_datadict t1 INSERT YES +'testuser3'@'localhost' NULL db_datadict t1 SELECT YES +SELECT * FROM information_schema.schema_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser3'@'localhost' NULL db_datadict ALTER NO +'testuser3'@'localhost' NULL db_datadict ALTER ROUTINE NO +'testuser3'@'localhost' NULL db_datadict CREATE NO +'testuser3'@'localhost' NULL db_datadict CREATE ROUTINE NO +'testuser3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO +'testuser3'@'localhost' NULL db_datadict CREATE VIEW NO +'testuser3'@'localhost' NULL db_datadict DELETE NO +'testuser3'@'localhost' NULL db_datadict DROP NO +'testuser3'@'localhost' NULL db_datadict EXECUTE NO +'testuser3'@'localhost' NULL db_datadict INDEX NO +'testuser3'@'localhost' NULL db_datadict INSERT NO +'testuser3'@'localhost' NULL db_datadict LOCK TABLES NO +'testuser3'@'localhost' NULL db_datadict REFERENCES NO +'testuser3'@'localhost' NULL db_datadict SELECT NO +'testuser3'@'localhost' NULL db_datadict SHOW VIEW NO +'testuser3'@'localhost' NULL db_datadict UPDATE NO +SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES +GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser2'@'localhost'; +# FIXME: Is it intended that *my* grants to others are *NOT* shown here? +SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES +# Switch to connection testuser2 (user=testuser2) +SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser2'@'localhost' NULL db_datadict t1 f1 SELECT NO +'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO +'testuser2'@'localhost' NULL db_datadict t1 f3 SELECT NO +# Switch to connection default and close connections testuser1,testuser2,testuser3 +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +################################################################################ +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMN_PRIVILEGES modifications +################################################################################ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.my_table (f1 BIGINT, f2 CHAR(10), f3 DATE) +ENGINE = ; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT ALL ON test.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +# Switch to connection default +GRANT SELECT (f1,f3) ON db_datadict.my_table TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +# Switch to connection testuser1 +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +# Switch to connection default +ALTER TABLE db_datadict.my_table DROP COLUMN f3; +GRANT UPDATE (f1) ON db_datadict.my_table TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +# Switch to connection testuser1 +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +SELECT f1, f3 FROM db_datadict.my_table; +ERROR 42S22: Unknown column 'f3' in 'field list' +# Switch to connection default +ALTER TABLE db_datadict.my_table CHANGE COLUMN f1 my_col BIGINT; +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +# Switch to connection testuser1 +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +# Switch to connection default +DROP TABLE db_datadict.my_table; +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +# Switch to connection testuser1 +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO +'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO +'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost' +# Switch to connection default +REVOKE ALL ON db_datadict.my_table FROM 'testuser1'@'localhost'; +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +# Switch to connection testuser1 +SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost' +# Switch to connection default and close connection testuser1 +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA table are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT) +ENGINE = ; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT (f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; +INSERT INTO information_schema.column_privileges +SELECT * FROM information_schema.column_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.column_privileges SET table_schema = 'test' +WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.column_privileges WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.column_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx_on_tables +ON information_schema.column_privileges(table_schema); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.column_privileges ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.column_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.column_privileges +RENAME db_datadict.column_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.column_privileges +RENAME information_schema.xcolumn_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; diff --git a/mysql-test/suite/funcs_1/r/is_column_privileges_is_mysql_test.result b/mysql-test/suite/funcs_1/r/is_column_privileges_is_mysql_test.result new file mode 100644 index 00000000000..acf26587004 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_column_privileges_is_mysql_test.result @@ -0,0 +1,37 @@ +############################################################################## +# Testcases 3.2.9.2+3.2.9.3 INFORMATION_SCHEMA.SCHEMATA accessible information +############################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.column_privileges +WHERE table_schema IN ('information_schema','mysql','test') +ORDER BY table_schema, table_name, column_name; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +SHOW DATABASES LIKE 'information_schema'; +Database (information_schema) +information_schema +SHOW DATABASES LIKE 'mysql'; +Database (mysql) +mysql +SHOW DATABASES LIKE 'test'; +Database (test) +test +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.column_privileges +WHERE table_schema IN ('information_schema','mysql','test') +ORDER BY table_schema, table_name, column_name; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE +SHOW DATABASES LIKE 'information_schema'; +Database (information_schema) +information_schema +SHOW DATABASES LIKE 'mysql'; +Database (mysql) +SHOW DATABASES LIKE 'test'; +Database (test) +test +# Switch to connection default and close connection testuser1 +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_columns.result b/mysql-test/suite/funcs_1/r/is_columns.result new file mode 100644 index 00000000000..4b0ee86a81b --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_columns.result @@ -0,0 +1,486 @@ +SHOW TABLES FROM information_schema LIKE 'COLUMNS'; +Tables_in_information_schema (COLUMNS) +COLUMNS +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLUMNS; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLUMNS; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.COLUMNS; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.COLUMNS; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.6.1: INFORMATION_SCHEMA.COLUMNS layout +######################################################################### +DESCRIBE information_schema.COLUMNS; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +COLUMN_NAME varchar(64) NO +ORDINAL_POSITION bigint(21) NO 0 +COLUMN_DEFAULT longtext YES NULL +IS_NULLABLE varchar(3) NO +DATA_TYPE varchar(64) NO +CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL +CHARACTER_OCTET_LENGTH bigint(21) YES NULL +NUMERIC_PRECISION bigint(21) YES NULL +NUMERIC_SCALE bigint(21) YES NULL +CHARACTER_SET_NAME varchar(64) YES NULL +COLLATION_NAME varchar(64) YES NULL +COLUMN_TYPE longtext NO NULL +COLUMN_KEY varchar(3) NO +EXTRA varchar(20) NO +PRIVILEGES varchar(80) NO +COLUMN_COMMENT varchar(255) NO +SHOW CREATE TABLE information_schema.COLUMNS; +Table Create Table +COLUMNS CREATE TEMPORARY TABLE `COLUMNS` ( + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `COLUMN_NAME` varchar(64) NOT NULL default '', + `ORDINAL_POSITION` bigint(21) NOT NULL default '0', + `COLUMN_DEFAULT` longtext, + `IS_NULLABLE` varchar(3) NOT NULL default '', + `DATA_TYPE` varchar(64) NOT NULL default '', + `CHARACTER_MAXIMUM_LENGTH` bigint(21) default NULL, + `CHARACTER_OCTET_LENGTH` bigint(21) default NULL, + `NUMERIC_PRECISION` bigint(21) default NULL, + `NUMERIC_SCALE` bigint(21) default NULL, + `CHARACTER_SET_NAME` varchar(64) default NULL, + `COLLATION_NAME` varchar(64) default NULL, + `COLUMN_TYPE` longtext NOT NULL, + `COLUMN_KEY` varchar(3) NOT NULL default '', + `EXTRA` varchar(20) NOT NULL default '', + `PRIVILEGES` varchar(80) NOT NULL default '', + `COLUMN_COMMENT` varchar(255) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.COLUMNS; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +COLUMN_NAME varchar(64) NO +ORDINAL_POSITION bigint(21) NO 0 +COLUMN_DEFAULT longtext YES NULL +IS_NULLABLE varchar(3) NO +DATA_TYPE varchar(64) NO +CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL +CHARACTER_OCTET_LENGTH bigint(21) YES NULL +NUMERIC_PRECISION bigint(21) YES NULL +NUMERIC_SCALE bigint(21) YES NULL +CHARACTER_SET_NAME varchar(64) YES NULL +COLLATION_NAME varchar(64) YES NULL +COLUMN_TYPE longtext NO NULL +COLUMN_KEY varchar(3) NO +EXTRA varchar(20) NO +PRIVILEGES varchar(80) NO +COLUMN_COMMENT varchar(255) NO +SELECT table_catalog, table_schema, table_name, column_name +FROM information_schema.columns WHERE table_catalog IS NOT NULL; +table_catalog table_schema table_name column_name +############################################################################### +# Testcase 3.2.6.2 + 3.2.6.3: INFORMATION_SCHEMA.COLUMNS accessible information +############################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +CREATE TABLE db_datadict.t1 +(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT AUTO_INCREMENT, +UNIQUE INDEX MUL_IDX(f1,f3), PRIMARY KEY (f4)) +ENGINE = ; +CREATE VIEW db_datadict.v1 AS SELECT 1 AS f1, 1 AS f2; +GRANT SELECT(f1, f2) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT SELECT(f2) ON db_datadict.v1 TO 'testuser1'@'localhost'; +CREATE TABLE db_datadict.t2 +(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT, PRIMARY KEY (f1,f4)) +ENGINE = ; +GRANT INSERT(f1, f2) ON db_datadict.t2 TO 'testuser2'@'localhost'; +SELECT * FROM information_schema.columns +WHERE table_schema = 'db_datadict' +ORDER BY table_schema, table_name, ordinal_position; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL db_datadict t1 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) MUL select,insert,update,references +NULL db_datadict t1 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references +NULL db_datadict t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL db_datadict t1 f4 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) PRI auto_increment select,insert,update,references +NULL db_datadict t2 f1 1 NO char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) PRI select,insert,update,references +NULL db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references +NULL db_datadict t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL db_datadict t2 f4 4 0 NO int NULL NULL 10 0 NULL NULL int(11) PRI select,insert,update,references +NULL db_datadict v1 f1 1 0 NO int NULL NULL 10 0 NULL NULL int(1) select,insert,update,references +NULL db_datadict v1 f2 2 0 NO int NULL NULL 10 0 NULL NULL int(1) select,insert,update,references +SHOW COLUMNS FROM db_datadict.t1; +Field Type Null Key Default Extra +f1 char(10) YES MUL NULL +f2 text YES NULL +f3 date YES NULL +f4 int(11) NO PRI NULL auto_increment +SHOW COLUMNS FROM db_datadict.t2; +Field Type Null Key Default Extra +f1 char(10) NO PRI +f2 text YES NULL +f3 date YES NULL +f4 int(11) NO PRI 0 +SHOW COLUMNS FROM db_datadict.v1; +Field Type Null Key Default Extra +f1 int(1) NO 0 +f2 int(1) NO 0 +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.columns +WHERE table_schema = 'db_datadict' +ORDER BY table_schema, table_name, ordinal_position; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL db_datadict t1 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) MUL select +NULL db_datadict t1 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select +NULL db_datadict v1 f2 2 0 NO int NULL NULL 10 0 NULL NULL int(1) select +SHOW COLUMNS FROM db_datadict.t1; +Field Type Null Key Default Extra +f1 char(10) YES MUL NULL +f2 text YES NULL +SHOW COLUMNS FROM db_datadict.t2; +ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2' +SHOW COLUMNS FROM db_datadict.v1; +Field Type Null Key Default Extra +f2 int(1) NO 0 +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.columns +WHERE table_schema = 'db_datadict' +ORDER BY table_schema, table_name, ordinal_position; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL db_datadict t2 f1 1 NO char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) PRI insert +NULL db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert +SHOW COLUMNS FROM db_datadict.t1; +ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 't1' +SHOW COLUMNS FROM db_datadict.t2; +Field Type Null Key Default Extra +f1 char(10) NO PRI +f2 text YES NULL +SHOW COLUMNS FROM db_datadict.v1; +ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'v1' +# Switch to connection default and close connections testuser1, testuser2 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE IF EXISTS db_datadict; +############################################################################### +# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMNS modifications +############################################################################### +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT table_name FROM information_schema.columns +WHERE table_name LIKE 't1_my_table%'; +table_name +CREATE TABLE test.t1_my_table (f1 CHAR(12)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = ; +SELECT * FROM information_schema.columns +WHERE table_name = 't1_my_table'; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1_my_table +COLUMN_NAME f1 +ORDINAL_POSITION 1 +COLUMN_DEFAULT NULL +IS_NULLABLE YES +DATA_TYPE char +CHARACTER_MAXIMUM_LENGTH 12 +CHARACTER_OCTET_LENGTH 12 +NUMERIC_PRECISION NULL +NUMERIC_SCALE NULL +CHARACTER_SET_NAME latin1 +COLLATION_NAME latin1_swedish_ci +COLUMN_TYPE char(12) +COLUMN_KEY +EXTRA +PRIVILEGES select,insert,update,references +COLUMN_COMMENT +SELECT table_name FROM information_schema.columns +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_table +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT table_name FROM information_schema.columns +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_tablex +SELECT table_schema,table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_schema table_name +test t1_my_tablex +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT table_schema,table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_schema table_name +db_datadict t1_my_tablex +SELECT table_name, column_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +t1_my_tablex f1 +ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12); +SELECT table_name, column_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +t1_my_tablex first_col +SELECT table_name, column_name, character_maximum_length, +character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name character_maximum_length character_octet_length column_type +t1_my_tablex first_col 12 12 char(12) +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(20); +SELECT table_name, column_name, character_maximum_length, +character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name character_maximum_length character_octet_length column_type +t1_my_tablex first_col 20 20 char(20) +SELECT table_name, column_name, character_maximum_length, +character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name character_maximum_length character_octet_length column_type +t1_my_tablex first_col 20 20 char(20) +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col VARCHAR(20); +SELECT table_name, column_name, character_maximum_length, +character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name character_maximum_length character_octet_length column_type +t1_my_tablex first_col 20 20 varchar(20) +SELECT table_name, column_name, column_default +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name column_default +t1_my_tablex first_col NULL +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) DEFAULT 'hello'; +SELECT table_name, column_name, column_default +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name column_default +t1_my_tablex first_col hello +SELECT table_name, column_name, is_nullable +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name is_nullable +t1_my_tablex first_col YES +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) NOT NULL; +SELECT table_name, column_name, is_nullable +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name is_nullable +t1_my_tablex first_col NO +SELECT table_name, column_name, collation_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name collation_name +t1_my_tablex first_col latin1_swedish_ci +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) COLLATE 'latin1_general_cs'; +SELECT table_name, column_name, collation_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name collation_name +t1_my_tablex first_col latin1_general_cs +SELECT table_name, column_name, character_maximum_length, +character_octet_length, character_set_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name character_maximum_length character_octet_length character_set_name +t1_my_tablex first_col 10 10 latin1 +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) CHARACTER SET utf8; +SELECT table_name, column_name, character_maximum_length, +character_octet_length, character_set_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name character_maximum_length character_octet_length character_set_name +t1_my_tablex first_col 10 30 utf8 +SELECT table_name, column_name, column_comment +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name column_comment +t1_my_tablex first_col +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) COMMENT 'Hello'; +SELECT table_name, column_name, column_comment +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name column_comment +t1_my_tablex first_col Hello +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +t1_my_tablex first_col +ALTER TABLE db_datadict.t1_my_tablex +ADD COLUMN second_col CHAR(10); +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +t1_my_tablex first_col +t1_my_tablex second_col +SELECT table_name, column_name, ordinal_position +FROM information_schema.columns +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +table_name column_name ordinal_position +t1_my_tablex first_col 1 +t1_my_tablex second_col 2 +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN second_col CHAR(10) FIRST; +SELECT table_name, column_name, ordinal_position +FROM information_schema.columns +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +table_name column_name ordinal_position +t1_my_tablex first_col 2 +t1_my_tablex second_col 1 +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +t1_my_tablex second_col +t1_my_tablex first_col +ALTER TABLE db_datadict.t1_my_tablex +DROP COLUMN first_col; +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +t1_my_tablex second_col +SELECT table_name, column_name, column_key +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name column_key +t1_my_tablex second_col +ALTER TABLE db_datadict.t1_my_tablex +ADD UNIQUE INDEX IDX(second_col); +SELECT table_name, column_name, column_key +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name column_key +t1_my_tablex second_col UNI +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +t1_my_tablex second_col +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name column_name +CREATE VIEW test.t1_my_tablex +AS SELECT 1 AS "col1", 'A' collate latin1_german1_ci AS "col2"; +SELECT * FROM information_schema.columns +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1_my_tablex +COLUMN_NAME col1 +ORDINAL_POSITION 1 +COLUMN_DEFAULT 0 +IS_NULLABLE NO +DATA_TYPE int +CHARACTER_MAXIMUM_LENGTH NULL +CHARACTER_OCTET_LENGTH NULL +NUMERIC_PRECISION 10 +NUMERIC_SCALE 0 +CHARACTER_SET_NAME NULL +COLLATION_NAME NULL +COLUMN_TYPE int(1) +COLUMN_KEY +EXTRA +PRIVILEGES select,insert,update,references +COLUMN_COMMENT +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1_my_tablex +COLUMN_NAME col2 +ORDINAL_POSITION 2 +COLUMN_DEFAULT +IS_NULLABLE NO +DATA_TYPE varchar +CHARACTER_MAXIMUM_LENGTH 1 +CHARACTER_OCTET_LENGTH 1 +NUMERIC_PRECISION NULL +NUMERIC_SCALE NULL +CHARACTER_SET_NAME latin1 +COLLATION_NAME latin1_german1_ci +COLUMN_TYPE varchar(1) +COLUMN_KEY +EXTRA +PRIVILEGES select,insert,update,references +COLUMN_COMMENT +DROP VIEW test.t1_my_tablex; +SELECT table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = AS +SELECT 1; +SELECT table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name +t1_my_tablex +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +table_name +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA table are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS test.t1; +CREATE DATABASE db_datadict; +CREATE TABLE test.t1 (f1 BIGINT); +INSERT INTO information_schema.columns (table_schema,table_name,column_name) +VALUES('test','t1', 'f2'); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +INSERT INTO information_schema.columns (table_schema,table_name,column_name) +VALUES('test','t2', 'f1'); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.columns SET table_name = 't4' WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.columns WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.columns; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX i3 ON information_schema.columns(table_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.columns ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.columns; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.columns RENAME db_datadict.columns; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.columns RENAME information_schema.xcolumns; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE test.t1; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_columns_innodb.result b/mysql-test/suite/funcs_1/r/is_columns_innodb.result new file mode 100644 index 00000000000..d7f801f2dcd --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_columns_innodb.result @@ -0,0 +1,1130 @@ +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +drop table if exists tb1 ; +create table tb1 ( +f1 char(0), +f2 char(0) binary, +f3 char(0) ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, +f9 blob, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal, +f34 decimal unsigned, +f35 decimal zerofill, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, +f58 numeric (64) not null DEFAULT 99 +) engine = innodb; +Warnings: +Note 1265 Data truncated for column 'f36' at row 1 +Note 1265 Data truncated for column 'f37' at row 1 +Note 1265 Data truncated for column 'f38' at row 1 +Note 1265 Data truncated for column 'f39' at row 1 +Note 1265 Data truncated for column 'f40' at row 1 +Note 1265 Data truncated for column 'f41' at row 1 +Note 1265 Data truncated for column 'f42' at row 1 +Note 1265 Data truncated for column 'f43' at row 1 +Note 1265 Data truncated for column 'f44' at row 1 +Note 1265 Data truncated for column 'f45' at row 1 +Note 1265 Data truncated for column 'f47' at row 1 +Note 1265 Data truncated for column 'f49' at row 1 +Note 1265 Data truncated for column 'f51' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = innodb; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +drop table if exists tb3 ; +create table tb3 ( +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) +) engine = innodb; +Warnings: +Note 1265 Data truncated for column 'f150' at row 1 +Note 1265 Data truncated for column 'f151' at row 1 +Note 1265 Data truncated for column 'f152' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +drop table if exists tb4; +create table tb4 ( +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f235 char(0) unicode, +f236 char(90), +f237 char(255) ascii, +f238 varchar(0), +f239 varchar(20000) binary, +f240 varchar(2000) unicode, +f241 char(100) unicode +) engine = innodb; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ; +USE test1; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = innodb; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +SELECT * FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY table_schema, table_name, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb1 f1 1 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references +NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references +NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references +NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references +NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references +NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references +NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references +NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb1 f2 2 NULL YES char 0 0 NULL NULL latin1 latin1_bin char(0) select,insert,update,references +NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references +NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references +NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references +NULL test tb1 f3 3 NULL YES char 0 0 NULL NULL latin1 latin1_swedish_ci char(0) select,insert,update,references +NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references +NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb1 f33 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f34 34 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f35 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references +NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references +NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references +NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references +NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references +NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references +NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references +NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references +NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references +NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references +NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references +NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references +NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references +NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references +NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references +NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references +NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references +NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references +NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references +NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references +NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references +NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test tb4 f235 52 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references +NULL test tb4 f236 53 NULL YES char 90 90 NULL NULL latin1 latin1_swedish_ci char(90) select,insert,update,references +NULL test tb4 f237 54 NULL YES char 255 255 NULL NULL latin1 latin1_swedish_ci char(255) select,insert,update,references +NULL test tb4 f238 55 NULL YES varchar 0 0 NULL NULL latin1 latin1_swedish_ci varchar(0) select,insert,update,references +NULL test tb4 f239 56 NULL YES varchar 20000 20000 NULL NULL latin1 latin1_bin varchar(20000) select,insert,update,references +NULL test tb4 f240 57 NULL YES varchar 2000 4000 NULL NULL ucs2 ucs2_general_ci varchar(2000) select,insert,update,references +NULL test tb4 f241 58 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references +NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +########################################################################## +# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH +########################################################################## +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +1.0000 binary NULL NULL +1.0000 blob NULL NULL +1.0000 longblob NULL NULL +1.0000 mediumblob NULL NULL +1.0000 tinyblob NULL NULL +1.0000 char latin1 latin1_bin +1.0000 varchar latin1 latin1_bin +1.0000 char latin1 latin1_swedish_ci +1.0000 enum latin1 latin1_swedish_ci +1.0000 longtext latin1 latin1_swedish_ci +1.0000 mediumtext latin1 latin1_swedish_ci +1.0000 set latin1 latin1_swedish_ci +1.0000 text latin1 latin1_swedish_ci +1.0000 tinytext latin1 latin1_swedish_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +2.0000 char ucs2 ucs2_general_ci +2.0000 longtext ucs2 ucs2_general_ci +2.0000 varchar ucs2 ucs2_general_ci +2.0079 tinytext ucs2 ucs2_general_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +NULL bigint NULL NULL +NULL date NULL NULL +NULL datetime NULL NULL +NULL decimal NULL NULL +NULL double NULL NULL +NULL double unsigned NULL NULL +NULL double unsigned zerofill NULL NULL +NULL float NULL NULL +NULL float unsigned NULL NULL +NULL float unsigned zerofill NULL NULL +NULL int NULL NULL +NULL mediumint NULL NULL +NULL smallint NULL NULL +NULL time NULL NULL +NULL timestamp NULL NULL +NULL tinyint NULL NULL +NULL year NULL NULL +NULL char latin1 latin1_bin +NULL char latin1 latin1_swedish_ci +NULL varchar latin1 latin1_swedish_ci +NULL char ucs2 ucs2_general_ci +--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values +--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL +SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +TABLE_SCHEMA, +TABLE_NAME, +COLUMN_NAME, +DATA_TYPE, +CHARACTER_MAXIMUM_LENGTH, +CHARACTER_OCTET_LENGTH, +CHARACTER_SET_NAME, +COLLATION_NAME, +COLUMN_TYPE +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; +COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE +1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f3 date NULL NULL NULL NULL date +NULL test t1 f4 int NULL NULL NULL NULL int(11) +1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f6 int NULL NULL NULL NULL int(11) +1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f3 date NULL NULL NULL NULL date +NULL test t10 f4 int NULL NULL NULL NULL int(11) +1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f6 int NULL NULL NULL NULL int(11) +1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f3 date NULL NULL NULL NULL date +NULL test t11 f4 int NULL NULL NULL NULL int(11) +1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f6 int NULL NULL NULL NULL int(11) +1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f3 date NULL NULL NULL NULL date +NULL test t2 f4 int NULL NULL NULL NULL int(11) +1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f6 int NULL NULL NULL NULL int(11) +1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20) +NULL test t3 f3 int NULL NULL NULL NULL int(11) +1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f3 date NULL NULL NULL NULL date +NULL test t4 f4 int NULL NULL NULL NULL int(11) +1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f6 int NULL NULL NULL NULL int(11) +1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t7 f3 date NULL NULL NULL NULL date +NULL test t7 f4 int NULL NULL NULL NULL int(11) +1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t8 f3 date NULL NULL NULL NULL date +NULL test t8 f4 int NULL NULL NULL NULL int(11) +NULL test t9 f1 int NULL NULL NULL NULL int(11) +1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t9 f3 int NULL NULL NULL NULL int(11) +NULL test tb1 f1 char 0 0 latin1 latin1_swedish_ci char(0) +NULL test tb1 f2 char 0 0 latin1 latin1_bin char(0) +NULL test tb1 f3 char 0 0 latin1 latin1_swedish_ci char(0) +2.0079 test tb1 f4 tinytext 127 255 ucs2 ucs2_general_ci tinytext +1.0000 test tb1 f5 text 65535 65535 latin1 latin1_swedish_ci text +1.0000 test tb1 f6 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext +1.0000 test tb1 f7 longtext 4294967295 4294967295 latin1 latin1_swedish_ci longtext +1.0000 test tb1 f8 tinyblob 255 255 NULL NULL tinyblob +1.0000 test tb1 f9 blob 65535 65535 NULL NULL blob +1.0000 test tb1 f10 mediumblob 16777215 16777215 NULL NULL mediumblob +1.0000 test tb1 f11 longblob 4294967295 4294967295 NULL NULL longblob +1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1) +NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4) +NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned +NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6) +NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned +NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9) +NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned +NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb1 f25 int NULL NULL NULL NULL int(11) +NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned +NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20) +NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned +NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb2 f73 double NULL NULL NULL NULL double +NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f77 double NULL NULL NULL NULL double +NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f81 float NULL NULL NULL NULL float +NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f85 float NULL NULL NULL NULL float +NULL test tb2 f86 float NULL NULL NULL NULL float +NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f93 float NULL NULL NULL NULL float +NULL test tb2 f94 double NULL NULL NULL NULL double +NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f101 date NULL NULL NULL NULL date +NULL test tb2 f102 time NULL NULL NULL NULL time +NULL test tb2 f103 datetime NULL NULL NULL NULL datetime +NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp +NULL test tb2 f105 year NULL NULL NULL NULL year(4) +NULL test tb2 f106 year NULL NULL NULL NULL year(4) +NULL test tb2 f107 year NULL NULL NULL NULL year(4) +1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1) +1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb3 f121 tinytext 255 255 latin1 latin1_swedish_ci tinytext +1.0000 test tb3 f122 text 65535 65535 latin1 latin1_swedish_ci text +1.0000 test tb3 f123 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext +2.0000 test tb3 f124 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext +1.0000 test tb3 f125 tinyblob 255 255 NULL NULL tinyblob +1.0000 test tb3 f126 blob 65535 65535 NULL NULL blob +1.0000 test tb3 f127 mediumblob 16777215 16777215 NULL NULL mediumblob +1.0000 test tb3 f128 longblob 4294967295 4294967295 NULL NULL longblob +1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1) +NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4) +NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned +NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6) +NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned +NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9) +NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned +NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb3 f142 int NULL NULL NULL NULL int(11) +NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned +NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20) +NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned +NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb4 f190 double NULL NULL NULL NULL double +NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f194 double NULL NULL NULL NULL double +NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f198 float NULL NULL NULL NULL float +NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f202 float NULL NULL NULL NULL float +NULL test tb4 f203 float NULL NULL NULL NULL float +NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f210 float NULL NULL NULL NULL float +NULL test tb4 f211 double NULL NULL NULL NULL double +NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f218 date NULL NULL NULL NULL date +NULL test tb4 f219 time NULL NULL NULL NULL time +NULL test tb4 f220 datetime NULL NULL NULL NULL datetime +NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp +NULL test tb4 f222 year NULL NULL NULL NULL year(4) +NULL test tb4 f223 year NULL NULL NULL NULL year(4) +NULL test tb4 f224 year NULL NULL NULL NULL year(4) +1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +NULL test tb4 f235 char 0 0 ucs2 ucs2_general_ci char(0) +1.0000 test tb4 f236 char 90 90 latin1 latin1_swedish_ci char(90) +1.0000 test tb4 f237 char 255 255 latin1 latin1_swedish_ci char(255) +NULL test tb4 f238 varchar 0 0 latin1 latin1_swedish_ci varchar(0) +1.0000 test tb4 f239 varchar 20000 20000 latin1 latin1_bin varchar(20000) +2.0000 test tb4 f240 varchar 2000 4000 ucs2 ucs2_general_ci varchar(2000) +2.0000 test tb4 f241 char 100 200 ucs2 ucs2_general_ci char(100) +NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) +NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) +NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test1 tb2 f73 double NULL NULL NULL NULL double +NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f77 double NULL NULL NULL NULL double +NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f81 float NULL NULL NULL NULL float +NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f85 float NULL NULL NULL NULL float +NULL test1 tb2 f86 float NULL NULL NULL NULL float +NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f93 float NULL NULL NULL NULL float +NULL test1 tb2 f94 double NULL NULL NULL NULL double +NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f101 date NULL NULL NULL NULL date +NULL test1 tb2 f102 time NULL NULL NULL NULL time +NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime +NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp +NULL test1 tb2 f105 year NULL NULL NULL NULL year(4) +NULL test1 tb2 f106 year NULL NULL NULL NULL year(4) +NULL test1 tb2 f107 year NULL NULL NULL NULL year(4) +1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f3 date NULL NULL NULL NULL date +NULL test4 t6 f4 int NULL NULL NULL NULL int(11) +1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f6 int NULL NULL NULL NULL int(11) +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; +DROP TABLE test.tb1; +DROP TABLE test.tb2; +DROP TABLE test.tb3; +DROP TABLE test.tb4; diff --git a/mysql-test/suite/funcs_1/r/is_columns_is.result b/mysql-test/suite/funcs_1/r/is_columns_is.result new file mode 100644 index 00000000000..52566152f54 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_columns_is.result @@ -0,0 +1,380 @@ +SELECT * FROM information_schema.columns +WHERE table_schema = 'information_schema' +AND table_name <> 'profiling' +ORDER BY table_schema, table_name, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select +NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select +NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select +NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select +NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select +NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select +NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select +NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select +NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select +NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select +NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select +NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select +NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select +NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select +NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select +NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select +NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select +NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select +NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select +NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select +NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select +NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select +NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select +NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select +NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select +NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select +NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select +NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select +NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select +NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select +NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select +NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select +NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select +NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select +NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select +NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select +NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select +NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select +NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select +NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select +NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select +NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select +NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select +NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select +NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select +NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select +########################################################################## +# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH +########################################################################## +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema = 'information_schema' +AND table_name <> 'profiling' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +1.0000 longtext utf8 utf8_general_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema = 'information_schema' +AND table_name <> 'profiling' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +3.0000 varchar utf8 utf8_general_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema = 'information_schema' +AND table_name <> 'profiling' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +NULL bigint NULL NULL +NULL datetime NULL NULL +--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values +--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL +SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +TABLE_SCHEMA, +TABLE_NAME, +COLUMN_NAME, +DATA_TYPE, +CHARACTER_MAXIMUM_LENGTH, +CHARACTER_OCTET_LENGTH, +CHARACTER_SET_NAME, +COLLATION_NAME, +COLUMN_TYPE +FROM information_schema.columns +WHERE table_schema = 'information_schema' +AND table_name <> 'profiling' +ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; +COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE +3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60) +NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3) +3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11) +3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3) +NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3) +3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMNS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) +1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21) +NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) +NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) +NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) +3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20) +3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80) +3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255) +3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) +3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10) +NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10) +3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9) +3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8) +1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8) +3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) +NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime +NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime +1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) +3.0000 information_schema SCHEMATA CATALOG_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema SCHEMATA SQL_PATH varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) +3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1) +3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2) +3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1) +NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21) +NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3) +3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10) +3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16) +3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16) +3.0000 information_schema TABLES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) +3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10) +NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) +NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) +NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) +NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) +NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) +NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21) +NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21) +NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime +NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime +NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime +3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) +3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255) +3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80) +3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) +3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6) +3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) +NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4) +1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9) +3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6) +3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) +NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime +1.0000 information_schema TRIGGERS SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +1.0000 information_schema TRIGGERS DEFINER longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) +3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema VIEWS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512) +3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) +3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) +1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext +3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8) +3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3) +3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) +3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) diff --git a/mysql-test/suite/funcs_1/r/is_columns_memory.result b/mysql-test/suite/funcs_1/r/is_columns_memory.result new file mode 100644 index 00000000000..154ad27e403 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_columns_memory.result @@ -0,0 +1,1076 @@ +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +drop table if exists tb1 ; +create table tb1 ( +f1 char, +f2 char binary, +f3 char ascii, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, +f58 numeric (64) not null DEFAULT 99 +) engine = memory; +Warnings: +Note 1265 Data truncated for column 'f33' at row 1 +Note 1265 Data truncated for column 'f34' at row 1 +Note 1265 Data truncated for column 'f35' at row 1 +Note 1265 Data truncated for column 'f36' at row 1 +Note 1265 Data truncated for column 'f37' at row 1 +Note 1265 Data truncated for column 'f38' at row 1 +Note 1265 Data truncated for column 'f39' at row 1 +Note 1265 Data truncated for column 'f40' at row 1 +Note 1265 Data truncated for column 'f41' at row 1 +Note 1265 Data truncated for column 'f42' at row 1 +Note 1265 Data truncated for column 'f43' at row 1 +Note 1265 Data truncated for column 'f44' at row 1 +Note 1265 Data truncated for column 'f45' at row 1 +Note 1265 Data truncated for column 'f47' at row 1 +Note 1265 Data truncated for column 'f49' at row 1 +Note 1265 Data truncated for column 'f51' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = memory; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +drop table if exists tb3; +create table tb3 ( +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) +) engine = memory; +Warnings: +Note 1265 Data truncated for column 'f150' at row 1 +Note 1265 Data truncated for column 'f151' at row 1 +Note 1265 Data truncated for column 'f152' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +drop table if exists tb4 ; +create table tb4 ( +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f236 char(95) unicode, +f241 char(255) unicode, +f237 char(130) binary, +f238 varchar(25000) binary, +f239 varbinary(0), +f240 varchar(1200) unicode +) engine = memory; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ; +USE test1; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = memory; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +SELECT * FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY table_schema, table_name, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references +NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references +NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references +NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references +NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references +NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references +NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references +NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references +NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references +NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references +NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references +NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references +NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references +NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references +NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references +NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references +NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references +NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references +NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references +NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references +NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references +NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references +NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references +NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references +NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references +NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references +NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +########################################################################## +# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH +########################################################################## +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +1.0000 binary NULL NULL +1.0000 char latin1 latin1_bin +1.0000 varchar latin1 latin1_bin +1.0000 char latin1 latin1_swedish_ci +1.0000 enum latin1 latin1_swedish_ci +1.0000 set latin1 latin1_swedish_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +2.0000 char ucs2 ucs2_general_ci +2.0000 varchar ucs2 ucs2_general_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +NULL bigint NULL NULL +NULL date NULL NULL +NULL datetime NULL NULL +NULL decimal NULL NULL +NULL double NULL NULL +NULL double unsigned NULL NULL +NULL double unsigned zerofill NULL NULL +NULL float NULL NULL +NULL float unsigned NULL NULL +NULL float unsigned zerofill NULL NULL +NULL int NULL NULL +NULL mediumint NULL NULL +NULL smallint NULL NULL +NULL time NULL NULL +NULL timestamp NULL NULL +NULL tinyint NULL NULL +NULL varbinary NULL NULL +NULL year NULL NULL +--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values +--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL +SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +TABLE_SCHEMA, +TABLE_NAME, +COLUMN_NAME, +DATA_TYPE, +CHARACTER_MAXIMUM_LENGTH, +CHARACTER_OCTET_LENGTH, +CHARACTER_SET_NAME, +COLLATION_NAME, +COLUMN_TYPE +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; +COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE +1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f3 date NULL NULL NULL NULL date +NULL test t1 f4 int NULL NULL NULL NULL int(11) +1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f6 int NULL NULL NULL NULL int(11) +1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f3 date NULL NULL NULL NULL date +NULL test t10 f4 int NULL NULL NULL NULL int(11) +1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f6 int NULL NULL NULL NULL int(11) +1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f3 date NULL NULL NULL NULL date +NULL test t11 f4 int NULL NULL NULL NULL int(11) +1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f6 int NULL NULL NULL NULL int(11) +1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f3 date NULL NULL NULL NULL date +NULL test t2 f4 int NULL NULL NULL NULL int(11) +1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f6 int NULL NULL NULL NULL int(11) +1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20) +NULL test t3 f3 int NULL NULL NULL NULL int(11) +1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f3 date NULL NULL NULL NULL date +NULL test t4 f4 int NULL NULL NULL NULL int(11) +1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f6 int NULL NULL NULL NULL int(11) +1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t7 f3 date NULL NULL NULL NULL date +NULL test t7 f4 int NULL NULL NULL NULL int(11) +1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t8 f3 date NULL NULL NULL NULL date +NULL test t8 f4 int NULL NULL NULL NULL int(11) +NULL test t9 f1 int NULL NULL NULL NULL int(11) +1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t9 f3 int NULL NULL NULL NULL int(11) +1.0000 test tb1 f1 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb1 f2 char 1 1 latin1 latin1_bin char(1) +1.0000 test tb1 f3 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1) +NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4) +NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned +NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6) +NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned +NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9) +NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned +NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb1 f25 int NULL NULL NULL NULL int(11) +NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned +NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20) +NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned +NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb2 f73 double NULL NULL NULL NULL double +NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f77 double NULL NULL NULL NULL double +NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f81 float NULL NULL NULL NULL float +NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f85 float NULL NULL NULL NULL float +NULL test tb2 f86 float NULL NULL NULL NULL float +NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f93 float NULL NULL NULL NULL float +NULL test tb2 f94 double NULL NULL NULL NULL double +NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f101 date NULL NULL NULL NULL date +NULL test tb2 f102 time NULL NULL NULL NULL time +NULL test tb2 f103 datetime NULL NULL NULL NULL datetime +NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp +NULL test tb2 f105 year NULL NULL NULL NULL year(4) +NULL test tb2 f106 year NULL NULL NULL NULL year(4) +NULL test tb2 f107 year NULL NULL NULL NULL year(4) +1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1) +1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb3 f121 char 50 50 latin1 latin1_swedish_ci char(50) +1.0000 test tb3 f122 char 50 50 latin1 latin1_swedish_ci char(50) +1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1) +NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4) +NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned +NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6) +NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned +NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9) +NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned +NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb3 f142 int NULL NULL NULL NULL int(11) +NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned +NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20) +NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned +NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb4 f190 double NULL NULL NULL NULL double +NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f194 double NULL NULL NULL NULL double +NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f198 float NULL NULL NULL NULL float +NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f202 float NULL NULL NULL NULL float +NULL test tb4 f203 float NULL NULL NULL NULL float +NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f210 float NULL NULL NULL NULL float +NULL test tb4 f211 double NULL NULL NULL NULL double +NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f218 date NULL NULL NULL NULL date +NULL test tb4 f219 time NULL NULL NULL NULL time +NULL test tb4 f220 datetime NULL NULL NULL NULL datetime +NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp +NULL test tb4 f222 year NULL NULL NULL NULL year(4) +NULL test tb4 f223 year NULL NULL NULL NULL year(4) +NULL test tb4 f224 year NULL NULL NULL NULL year(4) +1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +2.0000 test tb4 f236 char 95 190 ucs2 ucs2_general_ci char(95) +2.0000 test tb4 f241 char 255 510 ucs2 ucs2_general_ci char(255) +1.0000 test tb4 f237 char 130 130 latin1 latin1_bin char(130) +1.0000 test tb4 f238 varchar 25000 25000 latin1 latin1_bin varchar(25000) +NULL test tb4 f239 varbinary 0 0 NULL NULL varbinary(0) +2.0000 test tb4 f240 varchar 1200 2400 ucs2 ucs2_general_ci varchar(1200) +NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) +NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) +NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test1 tb2 f73 double NULL NULL NULL NULL double +NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f77 double NULL NULL NULL NULL double +NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f81 float NULL NULL NULL NULL float +NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f85 float NULL NULL NULL NULL float +NULL test1 tb2 f86 float NULL NULL NULL NULL float +NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f93 float NULL NULL NULL NULL float +NULL test1 tb2 f94 double NULL NULL NULL NULL double +NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f101 date NULL NULL NULL NULL date +NULL test1 tb2 f102 time NULL NULL NULL NULL time +NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime +NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp +NULL test1 tb2 f105 year NULL NULL NULL NULL year(4) +NULL test1 tb2 f106 year NULL NULL NULL NULL year(4) +NULL test1 tb2 f107 year NULL NULL NULL NULL year(4) +1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f3 date NULL NULL NULL NULL date +NULL test4 t6 f4 int NULL NULL NULL NULL int(11) +1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f6 int NULL NULL NULL NULL int(11) +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; +DROP TABLE test.tb1; +DROP TABLE test.tb2; +DROP TABLE test.tb3; +DROP TABLE test.tb4; diff --git a/mysql-test/suite/funcs_1/r/is_columns_myisam.result b/mysql-test/suite/funcs_1/r/is_columns_myisam.result new file mode 100644 index 00000000000..2365dda1b24 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_columns_myisam.result @@ -0,0 +1,1207 @@ +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +drop table if exists tb1 ; +create table tb1 ( +f1 char, +f2 char binary, +f3 char ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, +f9 blob, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, +f58 numeric (64) not null DEFAULT 99 +) engine = myisam; +Warnings: +Note 1265 Data truncated for column 'f33' at row 1 +Note 1265 Data truncated for column 'f34' at row 1 +Note 1265 Data truncated for column 'f35' at row 1 +Note 1265 Data truncated for column 'f36' at row 1 +Note 1265 Data truncated for column 'f37' at row 1 +Note 1265 Data truncated for column 'f38' at row 1 +Note 1265 Data truncated for column 'f39' at row 1 +Note 1265 Data truncated for column 'f40' at row 1 +Note 1265 Data truncated for column 'f41' at row 1 +Note 1265 Data truncated for column 'f42' at row 1 +Note 1265 Data truncated for column 'f43' at row 1 +Note 1265 Data truncated for column 'f44' at row 1 +Note 1265 Data truncated for column 'f45' at row 1 +Note 1265 Data truncated for column 'f47' at row 1 +Note 1265 Data truncated for column 'f49' at row 1 +Note 1265 Data truncated for column 'f51' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set", +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null +) engine = myisam; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +drop table if exists tb3 ; +create table tb3 ( +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) +) Engine = myisam; +Warnings: +Note 1265 Data truncated for column 'f150' at row 1 +Note 1265 Data truncated for column 'f151' at row 1 +Note 1265 Data truncated for column 'f152' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +drop table if exists tb4 ; +create table tb4 ( +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f227 VARBINARY(64), +f228 VARBINARY(27), +f229 VARBINARY(64), +f230 VARBINARY(192), +f231 VARBINARY(192), +f232 VARBINARY(27), +f233 VARBINARY(64), +f234 VARBINARY(192), +f235 char(255) unicode, +f236 char(60) ascii, +f237 char(255) binary, +f238 varchar(0) binary, +f239 varbinary(1000), +f240 varchar(120) unicode, +f241 char(100) unicode, +f242 bit(30) +) engine = myisam; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ; +USE test1; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set", +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null +) engine = myisam; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +SELECT * FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY table_schema, table_name, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references +NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references +NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references +NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references +NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references +NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references +NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references +NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references +NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references +NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references +NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references +NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references +NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references +NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references +NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references +NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references +NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references +NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references +NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references +NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references +NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references +NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references +NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references +NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references +NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references +NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references +NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references +NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references +NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references +NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references +NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references +NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references +NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references +NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references +NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references +NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references +NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references +NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references +NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references +NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references +NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references +NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references +NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references +NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references +NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references +NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references +NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references +NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references +NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references +NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references +NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references +NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references +NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references +NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references +NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references +NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references +NULL test1 tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test1 tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references +NULL test1 tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test1 tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test1 tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test1 tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references +NULL test1 tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references +NULL test1 tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references +NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references +NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references +NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references +NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references +NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references +NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references +NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references +NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references +NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references +NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references +NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references +NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references +NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references +NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +########################################################################## +# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH +########################################################################## +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +1.0000 binary NULL NULL +1.0000 blob NULL NULL +1.0000 longblob NULL NULL +1.0000 mediumblob NULL NULL +1.0000 tinyblob NULL NULL +1.0000 varbinary NULL NULL +1.0000 char latin1 latin1_bin +1.0000 char latin1 latin1_swedish_ci +1.0000 enum latin1 latin1_swedish_ci +1.0000 longtext latin1 latin1_swedish_ci +1.0000 mediumtext latin1 latin1_swedish_ci +1.0000 set latin1 latin1_swedish_ci +1.0000 text latin1 latin1_swedish_ci +1.0000 tinytext latin1 latin1_swedish_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +2.0000 char ucs2 ucs2_general_ci +2.0000 longtext ucs2 ucs2_general_ci +2.0000 varchar ucs2 ucs2_general_ci +2.0079 tinytext ucs2 ucs2_general_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +NULL bigint NULL NULL +NULL bit NULL NULL +NULL date NULL NULL +NULL datetime NULL NULL +NULL decimal NULL NULL +NULL double NULL NULL +NULL double unsigned NULL NULL +NULL double unsigned zerofill NULL NULL +NULL float NULL NULL +NULL float unsigned NULL NULL +NULL float unsigned zerofill NULL NULL +NULL int NULL NULL +NULL mediumint NULL NULL +NULL smallint NULL NULL +NULL time NULL NULL +NULL timestamp NULL NULL +NULL tinyint NULL NULL +NULL year NULL NULL +NULL varchar latin1 latin1_bin +--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values +--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL +SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +TABLE_SCHEMA, +TABLE_NAME, +COLUMN_NAME, +DATA_TYPE, +CHARACTER_MAXIMUM_LENGTH, +CHARACTER_OCTET_LENGTH, +CHARACTER_SET_NAME, +COLLATION_NAME, +COLUMN_TYPE +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; +COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE +1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f3 date NULL NULL NULL NULL date +NULL test t1 f4 int NULL NULL NULL NULL int(11) +1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f6 int NULL NULL NULL NULL int(11) +1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f3 date NULL NULL NULL NULL date +NULL test t10 f4 int NULL NULL NULL NULL int(11) +1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f6 int NULL NULL NULL NULL int(11) +1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f3 date NULL NULL NULL NULL date +NULL test t11 f4 int NULL NULL NULL NULL int(11) +1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f6 int NULL NULL NULL NULL int(11) +1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f3 date NULL NULL NULL NULL date +NULL test t2 f4 int NULL NULL NULL NULL int(11) +1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f6 int NULL NULL NULL NULL int(11) +1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20) +NULL test t3 f3 int NULL NULL NULL NULL int(11) +1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f3 date NULL NULL NULL NULL date +NULL test t4 f4 int NULL NULL NULL NULL int(11) +1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f6 int NULL NULL NULL NULL int(11) +1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t7 f3 date NULL NULL NULL NULL date +NULL test t7 f4 int NULL NULL NULL NULL int(11) +1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t8 f3 date NULL NULL NULL NULL date +NULL test t8 f4 int NULL NULL NULL NULL int(11) +NULL test t9 f1 int NULL NULL NULL NULL int(11) +1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t9 f3 int NULL NULL NULL NULL int(11) +1.0000 test tb1 f1 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb1 f2 char 1 1 latin1 latin1_bin char(1) +1.0000 test tb1 f3 char 1 1 latin1 latin1_swedish_ci char(1) +2.0079 test tb1 f4 tinytext 127 255 ucs2 ucs2_general_ci tinytext +1.0000 test tb1 f5 text 65535 65535 latin1 latin1_swedish_ci text +1.0000 test tb1 f6 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext +1.0000 test tb1 f7 longtext 4294967295 4294967295 latin1 latin1_swedish_ci longtext +1.0000 test tb1 f8 tinyblob 255 255 NULL NULL tinyblob +1.0000 test tb1 f9 blob 65535 65535 NULL NULL blob +1.0000 test tb1 f10 mediumblob 16777215 16777215 NULL NULL mediumblob +1.0000 test tb1 f11 longblob 4294967295 4294967295 NULL NULL longblob +1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1) +NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4) +NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned +NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6) +NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned +NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9) +NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned +NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb1 f25 int NULL NULL NULL NULL int(11) +NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned +NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20) +NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned +NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb2 f73 double NULL NULL NULL NULL double +NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f77 double NULL NULL NULL NULL double +NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f81 float NULL NULL NULL NULL float +NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f85 float NULL NULL NULL NULL float +NULL test tb2 f86 float NULL NULL NULL NULL float +NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f93 float NULL NULL NULL NULL float +NULL test tb2 f94 double NULL NULL NULL NULL double +NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb2 f101 date NULL NULL NULL NULL date +NULL test tb2 f102 time NULL NULL NULL NULL time +NULL test tb2 f103 datetime NULL NULL NULL NULL datetime +NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp +NULL test tb2 f105 year NULL NULL NULL NULL year(4) +NULL test tb2 f106 year NULL NULL NULL NULL year(4) +NULL test tb2 f107 year NULL NULL NULL NULL year(4) +1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +1.0000 test tb2 f110 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test tb2 f111 varbinary 27 27 NULL NULL varbinary(27) +1.0000 test tb2 f112 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test tb2 f113 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test tb2 f114 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test tb2 f115 varbinary 27 27 NULL NULL varbinary(27) +1.0000 test tb2 f116 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test tb2 f117 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1) +1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1) +1.0000 test tb3 f121 tinytext 255 255 latin1 latin1_swedish_ci tinytext +1.0000 test tb3 f122 text 65535 65535 latin1 latin1_swedish_ci text +1.0000 test tb3 f123 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext +2.0000 test tb3 f124 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext +1.0000 test tb3 f125 tinyblob 255 255 NULL NULL tinyblob +1.0000 test tb3 f126 blob 65535 65535 NULL NULL blob +1.0000 test tb3 f127 mediumblob 16777215 16777215 NULL NULL mediumblob +1.0000 test tb3 f128 longblob 4294967295 4294967295 NULL NULL longblob +1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1) +NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4) +NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned +NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill +NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6) +NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned +NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill +NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9) +NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned +NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill +NULL test tb3 f142 int NULL NULL NULL NULL int(11) +NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned +NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill +NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20) +NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned +NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill +NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0) +NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0) +NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30) +NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test tb4 f190 double NULL NULL NULL NULL double +NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f194 double NULL NULL NULL NULL double +NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f198 float NULL NULL NULL NULL float +NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f202 float NULL NULL NULL NULL float +NULL test tb4 f203 float NULL NULL NULL NULL float +NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f210 float NULL NULL NULL NULL float +NULL test tb4 f211 double NULL NULL NULL NULL double +NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned +NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned +NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test tb4 f218 date NULL NULL NULL NULL date +NULL test tb4 f219 time NULL NULL NULL NULL time +NULL test tb4 f220 datetime NULL NULL NULL NULL datetime +NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp +NULL test tb4 f222 year NULL NULL NULL NULL year(4) +NULL test tb4 f223 year NULL NULL NULL NULL year(4) +NULL test tb4 f224 year NULL NULL NULL NULL year(4) +1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +1.0000 test tb4 f227 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test tb4 f228 varbinary 27 27 NULL NULL varbinary(27) +1.0000 test tb4 f229 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test tb4 f230 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test tb4 f231 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test tb4 f232 varbinary 27 27 NULL NULL varbinary(27) +1.0000 test tb4 f233 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test tb4 f234 varbinary 192 192 NULL NULL varbinary(192) +2.0000 test tb4 f235 char 255 510 ucs2 ucs2_general_ci char(255) +1.0000 test tb4 f236 char 60 60 latin1 latin1_swedish_ci char(60) +1.0000 test tb4 f237 char 255 255 latin1 latin1_bin char(255) +NULL test tb4 f238 varchar 0 0 latin1 latin1_bin varchar(0) +1.0000 test tb4 f239 varbinary 1000 1000 NULL NULL varbinary(1000) +2.0000 test tb4 f240 varchar 120 240 ucs2 ucs2_general_ci varchar(120) +2.0000 test tb4 f241 char 100 200 ucs2 ucs2_general_ci char(100) +NULL test tb4 f242 bit NULL NULL NULL NULL bit(30) +NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned +NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill +NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) +NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) +NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned +NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned +NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill +NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill +NULL test1 tb2 f73 double NULL NULL NULL NULL double +NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f77 double NULL NULL NULL NULL double +NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f81 float NULL NULL NULL NULL float +NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f85 float NULL NULL NULL NULL float +NULL test1 tb2 f86 float NULL NULL NULL NULL float +NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f93 float NULL NULL NULL NULL float +NULL test1 tb2 f94 double NULL NULL NULL NULL double +NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned +NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned +NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill +NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill +NULL test1 tb2 f101 date NULL NULL NULL NULL date +NULL test1 tb2 f102 time NULL NULL NULL NULL time +NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime +NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp +NULL test1 tb2 f105 year NULL NULL NULL NULL year(4) +NULL test1 tb2 f106 year NULL NULL NULL NULL year(4) +NULL test1 tb2 f107 year NULL NULL NULL NULL year(4) +1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') +1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') +1.0000 test1 tb2 f110 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test1 tb2 f111 varbinary 27 27 NULL NULL varbinary(27) +1.0000 test1 tb2 f112 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test1 tb2 f113 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test1 tb2 f114 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test1 tb2 f115 varbinary 27 27 NULL NULL varbinary(27) +1.0000 test1 tb2 f116 varbinary 64 64 NULL NULL varbinary(64) +1.0000 test1 tb2 f117 varbinary 192 192 NULL NULL varbinary(192) +1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f3 date NULL NULL NULL NULL date +NULL test4 t6 f4 int NULL NULL NULL NULL int(11) +1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f6 int NULL NULL NULL NULL int(11) +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; +DROP TABLE test.tb1; +DROP TABLE test.tb2; +DROP TABLE test.tb3; +DROP TABLE test.tb4; diff --git a/mysql-test/suite/funcs_1/r/is_columns_mysql.result b/mysql-test/suite/funcs_1/r/is_columns_mysql.result new file mode 100644 index 00000000000..75960091e90 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_columns_mysql.result @@ -0,0 +1,361 @@ +SELECT * FROM information_schema.columns +WHERE table_schema = 'mysql' +ORDER BY table_schema, table_name, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references +NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references +NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references +NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references +NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references +NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references +NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references +NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references +NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references +NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references +NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references +NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references +NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references +NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references +NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references +NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references +NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references +NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references +NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references +NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references +NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references +NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references +NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references +NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references +NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references +NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references +NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references +NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references +NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references +NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references +NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references +NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references +NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references +NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references +NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references +NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references +NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references +NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references +NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references +NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references +NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references +NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references +NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references +NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references +NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references +NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references +NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references +NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references +NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references +NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references +NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references +NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references +NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references +NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references +NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references +NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references +NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references +NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references +NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references +NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references +NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references +NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references +NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references +NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references +NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references +NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references +########################################################################## +# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH +########################################################################## +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema = 'mysql' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +1.0000 blob NULL NULL +1.0000 longblob NULL NULL +1.0000 char latin1 latin1_bin +1.0000 text utf8 utf8_general_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema = 'mysql' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +3.0000 char utf8 utf8_bin +3.0000 enum utf8 utf8_bin +3.0000 char utf8 utf8_general_ci +3.0000 enum utf8 utf8_general_ci +3.0000 set utf8 utf8_general_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema = 'mysql' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +NULL bigint NULL NULL +NULL int NULL NULL +NULL smallint NULL NULL +NULL timestamp NULL NULL +NULL tinyint NULL NULL +--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values +--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL +SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +TABLE_SCHEMA, +TABLE_NAME, +COLUMN_NAME, +DATA_TYPE, +CHARACTER_MAXIMUM_LENGTH, +CHARACTER_OCTET_LENGTH, +CHARACTER_SET_NAME, +COLLATION_NAME, +COLUMN_TYPE +FROM information_schema.columns +WHERE table_schema = 'mysql' +ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; +COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE +3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60) +3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64) +3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16) +3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64) +3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64) +NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp +3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') +3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60) +3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64) +3.0000 mysql db User char 16 48 utf8 utf8_bin char(16) +3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql func name char 64 192 utf8 utf8_bin char(64) +NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1) +3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128) +3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate') +NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned +3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64) +NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned +3.0000 mysql help_category url char 128 384 utf8 utf8_general_ci char(128) +NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned +3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64) +NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned +NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned +NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned +3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64) +NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned +1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text +1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text +3.0000 mysql help_topic url char 128 384 utf8 utf8_general_ci char(128) +3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60) +3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64) +3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64) +3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64) +3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') +3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64) +3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL') +3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') +3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO') +3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER') +1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob +3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64) +1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob +3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77) +NULL mysql proc created timestamp NULL NULL NULL NULL timestamp +NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp +3.0000 mysql proc sql_mode set 431 1293 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') +3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64) +3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60) +3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64) +3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16) +3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_bin char(64) +3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE') +3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77) +3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant') +NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp +3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60) +3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64) +3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16) +3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64) +3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77) +NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp +3.0000 mysql tables_priv Table_priv set 90 270 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') +3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') +NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned +3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N') +NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20) +NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11) +3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64) +NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned +NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned +NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20) +NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned +NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned +NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned +NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11) +NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned +3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8) +3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60) +3.0000 mysql user User char 16 48 utf8 utf8_bin char(16) +1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41) +3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') +3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') +1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob +1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob +1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob +NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned +NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned +NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned +NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned diff --git a/mysql-test/suite/funcs_1/r/is_columns_ndb.result b/mysql-test/suite/funcs_1/r/is_columns_ndb.result new file mode 100644 index 00000000000..a1a1e076271 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_columns_ndb.result @@ -0,0 +1,223 @@ +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = ndb; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = ndb; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = ndb; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = ndb; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +SELECT * FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY table_schema, table_name, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT +NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references +NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references +NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references +NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references +########################################################################## +# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH +########################################################################## +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +1.0000 char latin1 latin1_swedish_ci +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +SELECT DISTINCT +CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +DATA_TYPE, +CHARACTER_SET_NAME, +COLLATION_NAME +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL +ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; +COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME +NULL date NULL NULL +NULL int NULL NULL +--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values +--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL +SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, +TABLE_SCHEMA, +TABLE_NAME, +COLUMN_NAME, +DATA_TYPE, +CHARACTER_MAXIMUM_LENGTH, +CHARACTER_OCTET_LENGTH, +CHARACTER_SET_NAME, +COLLATION_NAME, +COLUMN_TYPE +FROM information_schema.columns +WHERE table_schema LIKE 'test%' +ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; +COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE +1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f3 date NULL NULL NULL NULL date +NULL test t1 f4 int NULL NULL NULL NULL int(11) +1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t1 f6 int NULL NULL NULL NULL int(11) +1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f3 date NULL NULL NULL NULL date +NULL test t10 f4 int NULL NULL NULL NULL int(11) +1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t10 f6 int NULL NULL NULL NULL int(11) +1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f3 date NULL NULL NULL NULL date +NULL test t11 f4 int NULL NULL NULL NULL int(11) +1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t11 f6 int NULL NULL NULL NULL int(11) +1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f3 date NULL NULL NULL NULL date +NULL test t2 f4 int NULL NULL NULL NULL int(11) +1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t2 f6 int NULL NULL NULL NULL int(11) +1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20) +NULL test t3 f3 int NULL NULL NULL NULL int(11) +1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f3 date NULL NULL NULL NULL date +NULL test t4 f4 int NULL NULL NULL NULL int(11) +1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t4 f6 int NULL NULL NULL NULL int(11) +1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t7 f3 date NULL NULL NULL NULL date +NULL test t7 f4 int NULL NULL NULL NULL int(11) +1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t8 f3 date NULL NULL NULL NULL date +NULL test t8 f4 int NULL NULL NULL NULL int(11) +NULL test t9 f1 int NULL NULL NULL NULL int(11) +1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test t9 f3 int NULL NULL NULL NULL int(11) +1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20) +1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f3 date NULL NULL NULL NULL date +NULL test4 t6 f4 int NULL NULL NULL NULL int(11) +1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) +NULL test4 t6 f6 int NULL NULL NULL NULL int(11) +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; diff --git a/mysql-test/suite/funcs_1/r/is_key_column_usage.result b/mysql-test/suite/funcs_1/r/is_key_column_usage.result new file mode 100644 index 00000000000..b4f222ff396 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_key_column_usage.result @@ -0,0 +1,370 @@ +SHOW TABLES FROM information_schema LIKE 'KEY_COLUMN_USAGE'; +Tables_in_information_schema (KEY_COLUMN_USAGE) +KEY_COLUMN_USAGE +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.KEY_COLUMN_USAGE; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.KEY_COLUMN_USAGE; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.KEY_COLUMN_USAGE; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.KEY_COLUMN_USAGE; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.7.1: INFORMATION_SCHEMA.KEY_COLUMN_USAGE layout +######################################################################### +DESCRIBE information_schema.KEY_COLUMN_USAGE; +Field Type Null Key Default Extra +CONSTRAINT_CATALOG varchar(512) YES NULL +CONSTRAINT_SCHEMA varchar(64) NO +CONSTRAINT_NAME varchar(64) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +COLUMN_NAME varchar(64) NO +ORDINAL_POSITION bigint(10) NO 0 +POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL +REFERENCED_TABLE_SCHEMA varchar(64) YES NULL +REFERENCED_TABLE_NAME varchar(64) YES NULL +REFERENCED_COLUMN_NAME varchar(64) YES NULL +SHOW CREATE TABLE information_schema.KEY_COLUMN_USAGE; +Table Create Table +KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` ( + `CONSTRAINT_CATALOG` varchar(512) default NULL, + `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', + `CONSTRAINT_NAME` varchar(64) NOT NULL default '', + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `COLUMN_NAME` varchar(64) NOT NULL default '', + `ORDINAL_POSITION` bigint(10) NOT NULL default '0', + `POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) default NULL, + `REFERENCED_TABLE_SCHEMA` varchar(64) default NULL, + `REFERENCED_TABLE_NAME` varchar(64) default NULL, + `REFERENCED_COLUMN_NAME` varchar(64) default NULL +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.KEY_COLUMN_USAGE; +Field Type Null Key Default Extra +CONSTRAINT_CATALOG varchar(512) YES NULL +CONSTRAINT_SCHEMA varchar(64) NO +CONSTRAINT_NAME varchar(64) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +COLUMN_NAME varchar(64) NO +ORDINAL_POSITION bigint(10) NO 0 +POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL +REFERENCED_TABLE_SCHEMA varchar(64) YES NULL +REFERENCED_TABLE_NAME varchar(64) YES NULL +REFERENCED_COLUMN_NAME varchar(64) YES NULL +SELECT constraint_catalog, constraint_schema, constraint_name, table_catalog, +table_schema, table_name, column_name +FROM information_schema.key_column_usage +WHERE constraint_catalog IS NOT NULL OR table_catalog IS NOT NULL; +constraint_catalog constraint_schema constraint_name table_catalog table_schema table_name column_name +######################################################################################## +# Testcase 3.2.7.2 + 3.2.7.3: INFORMATION_SCHEMA.KEY_COLUMN_USAGE accessible information +######################################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +USE db_datadict; +CREATE TABLE t1_1 +(f1 INT NOT NULL, PRIMARY KEY(f1), +f2 INT, INDEX f2_ind(f2)) +ENGINE = ; +GRANT SELECT ON t1_1 to 'testuser1'@'localhost'; +CREATE TABLE t1_2 +(f1 INT NOT NULL, PRIMARY KEY(f1), +f2 INT, INDEX f2_ind(f2)) +ENGINE = ; +GRANT SELECT ON t1_2 to 'testuser2'@'localhost'; +SELECT * FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_%' +ORDER BY constraint_catalog, constraint_schema, constraint_name, +table_catalog, table_schema, table_name, ordinal_position; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME +NULL db_datadict PRIMARY NULL db_datadict t1_1 f1 1 NULL NULL NULL NULL +NULL db_datadict PRIMARY NULL db_datadict t1_2 f1 1 NULL NULL NULL NULL +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_%' +ORDER BY constraint_catalog, constraint_schema, constraint_name, +table_catalog, table_schema, table_name, ordinal_position; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME +NULL db_datadict PRIMARY NULL db_datadict t1_1 f1 1 NULL NULL NULL NULL +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_%' +ORDER BY constraint_catalog, constraint_schema, constraint_name, +table_catalog, table_schema, table_name, ordinal_position; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME +NULL db_datadict PRIMARY NULL db_datadict t1_2 f1 1 NULL NULL NULL NULL +# Switch to connection default and close connections testuser1, testuser2 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP TABLE t1_1; +DROP TABLE t1_2; +DROP DATABASE IF EXISTS db_datadict; +######################################################################################## +# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.KEY_COLUMN_USAGE modifications +######################################################################################## +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS test.t1_my_table; +CREATE DATABASE db_datadict; +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_my_table%'; +table_name +CREATE TABLE test.t1_my_table +(f1 CHAR(12), f2 TIMESTAMP, f4 BIGINT, PRIMARY KEY(f1,f2)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = ; +SELECT * FROM information_schema.key_column_usage +WHERE table_name = 't1_my_table'; +CONSTRAINT_CATALOG NULL +CONSTRAINT_SCHEMA test +CONSTRAINT_NAME PRIMARY +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1_my_table +COLUMN_NAME f1 +ORDINAL_POSITION 1 +POSITION_IN_UNIQUE_CONSTRAINT NULL +REFERENCED_TABLE_SCHEMA NULL +REFERENCED_TABLE_NAME NULL +REFERENCED_COLUMN_NAME NULL +CONSTRAINT_CATALOG NULL +CONSTRAINT_SCHEMA test +CONSTRAINT_NAME PRIMARY +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1_my_table +COLUMN_NAME f2 +ORDINAL_POSITION 2 +POSITION_IN_UNIQUE_CONSTRAINT NULL +REFERENCED_TABLE_SCHEMA NULL +REFERENCED_TABLE_NAME NULL +REFERENCED_COLUMN_NAME NULL +SELECT DISTINCT table_name FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_table +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT DISTINCT table_name FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_tablex +SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_schema table_name +test t1_my_tablex +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_schema table_name +db_datadict t1_my_tablex +SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +table_name column_name +t1_my_tablex f1 +t1_my_tablex f2 +ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12); +SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +table_name column_name +t1_my_tablex f2 +t1_my_tablex first_col +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +CREATE INDEX f2 ON db_datadict.t1_my_tablex(f2); +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +DROP INDEX f2 ON db_datadict.t1_my_tablex; +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE (f2); +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict f2 db_datadict t1_my_tablex f2 1 +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +DROP INDEX f2 ON db_datadict.t1_my_tablex; +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f2); +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict my_idx db_datadict t1_my_tablex f2 1 +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +DROP INDEX my_idx ON db_datadict.t1_my_tablex; +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f4,first_col); +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict my_idx db_datadict t1_my_tablex f4 1 +db_datadict my_idx db_datadict t1_my_tablex first_col 2 +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict my_idx db_datadict t1_my_tablex f4 1 +db_datadict my_idx db_datadict t1_my_tablex first_col 2 +db_datadict PRIMARY db_datadict t1_my_tablex first_col 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 2 +ALTER TABLE db_datadict.t1_my_tablex +DROP COLUMN first_col; +SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, +table_name, ordinal_position; +constraint_schema constraint_name table_schema table_name column_name ordinal_position +db_datadict my_idx db_datadict t1_my_tablex f4 1 +db_datadict PRIMARY db_datadict t1_my_tablex f2 1 +SELECT table_name, column_name +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +table_name column_name +t1_my_tablex f2 +t1_my_tablex f4 +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name, column_name +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_name column_name +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_name +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = AS +SELECT 1 AS f1; +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_name +ALTER TABLE db_datadict.t1_my_tablex ADD PRIMARY KEY(f1); +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_name +t1_my_tablex +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_name +t1_my_tablex +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +table_name +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA table are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS db_datadict.t1; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = ; +INSERT INTO information_schema.key_column_usage +(constraint_schema, constraint_name, table_name) +VALUES ( 'mysql', 'primary', 'db'); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +INSERT INTO information_schema.key_column_usage +SELECT * FROM information_schema.key_column_usage; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.key_column_usage +SET table_name = 'db1' WHERE constraint_name = 'primary'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.key_column_usage WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.key_column_usage; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX i3 ON information_schema.key_column_usage(table_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.key_column_usage ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.key_column_usage; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.key_column_usage +RENAME db_datadict.key_column_usage; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.key_column_usage +RENAME information_schema.xkey_column_usage; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE db_datadict.t1; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_routines.result b/mysql-test/suite/funcs_1/r/is_routines.result new file mode 100644 index 00000000000..497ebf946c0 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_routines.result @@ -0,0 +1,605 @@ +SHOW TABLES FROM information_schema LIKE 'ROUTINES'; +Tables_in_information_schema (ROUTINES) +ROUTINES +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.ROUTINES; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.ROUTINES; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.ROUTINES; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.ROUTINES; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.8.1: INFORMATION_SCHEMA.ROUTINES layout +######################################################################### +DESCRIBE information_schema.ROUTINES; +Field Type Null Key Default Extra +SPECIFIC_NAME varchar(64) NO +ROUTINE_CATALOG varchar(512) YES NULL +ROUTINE_SCHEMA varchar(64) NO +ROUTINE_NAME varchar(64) NO +ROUTINE_TYPE varchar(9) NO +DTD_IDENTIFIER varchar(64) YES NULL +ROUTINE_BODY varchar(8) NO +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 +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 longtext NO NULL +ROUTINE_COMMENT varchar(64) NO +DEFINER varchar(77) NO +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) default NULL, + `ROUTINE_SCHEMA` varchar(64) NOT NULL default '', + `ROUTINE_NAME` varchar(64) NOT NULL default '', + `ROUTINE_TYPE` varchar(9) NOT NULL default '', + `DTD_IDENTIFIER` varchar(64) default NULL, + `ROUTINE_BODY` varchar(8) NOT NULL default '', + `ROUTINE_DEFINITION` longtext, + `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` longtext NOT NULL, + `ROUTINE_COMMENT` varchar(64) NOT NULL default '', + `DEFINER` varchar(77) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.ROUTINES; +Field Type Null Key Default Extra +SPECIFIC_NAME varchar(64) NO +ROUTINE_CATALOG varchar(512) YES NULL +ROUTINE_SCHEMA varchar(64) NO +ROUTINE_NAME varchar(64) NO +ROUTINE_TYPE varchar(9) NO +DTD_IDENTIFIER varchar(64) YES NULL +ROUTINE_BODY varchar(8) NO +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 +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 longtext NO NULL +ROUTINE_COMMENT varchar(64) NO +DEFINER varchar(77) NO +USE test; +DROP PROCEDURE IF EXISTS sp_for_routines; +DROP FUNCTION IF EXISTS function_for_routines; +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0; +SELECT specific_name,routine_catalog,routine_schema,routine_name,routine_type, +routine_body,external_name,external_language,parameter_style,sql_path +FROM information_schema.routines +WHERE routine_catalog IS NOT NULL OR external_name IS NOT NULL +OR external_language IS NOT NULL OR sql_path IS NOT NULL +OR routine_body <> 'SQL' OR parameter_style <> 'SQL' + OR specific_name <> routine_name; +specific_name routine_catalog routine_schema routine_name routine_type routine_body external_name external_language parameter_style sql_path +DROP PROCEDURE sp_for_routines; +DROP FUNCTION function_for_routines; +################################################################################ +# Testcase 3.2.8.2 + 3.2.8.3: INFORMATION_SCHEMA.ROUTINES accessible information +################################################################################ +DROP DATABASE IF EXISTS db_datadict; +DROP DATABASE IF EXISTS db_datadict_2; +CREATE DATABASE db_datadict; +USE db_datadict; +CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT) +ENGINE = ; +INSERT INTO res_6_408002_1(f1, f2, f3, f4) +VALUES('abc', 'xyz', '1989-11-09', 0815); +DROP PROCEDURE IF EXISTS sp_6_408002_1; +CREATE PROCEDURE sp_6_408002_1() +BEGIN +SELECT * FROM db_datadict.res_6_408002_1; +END// +CREATE DATABASE db_datadict_2; +USE db_datadict_2; +CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT) +ENGINE = ; +INSERT INTO res_6_408002_2(f1, f2, f3, f4) +VALUES('abc', 'xyz', '1990-10-03', 4711); +DROP PROCEDURE IF EXISTS sp_6_408002_2; +CREATE PROCEDURE sp_6_408002_2() +BEGIN +SELECT * FROM db_datadict_2.res_6_408002_2; +END// +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +GRANT SELECT ON db_datadict_2.* TO 'testuser1'@'localhost'; +GRANT EXECUTE ON db_datadict_2.* TO 'testuser1'@'localhost'; +GRANT EXECUTE ON db_datadict.* TO 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser2'@'localhost'; +GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 +TO 'testuser2'@'localhost'; +GRANT EXECUTE ON db_datadict_2.* TO 'testuser2'@'localhost'; +FLUSH PRIVILEGES; +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.routines; +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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER +sp_6_408002_1 NULL db_datadict sp_6_408002_1 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost +sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.routines; +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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER +sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost +# Establish connection testuser3 (user=testuser3) +SELECT * FROM information_schema.routines; +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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER +# Switch to connection default and close connections testuser1,testuser2,testuser3 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +USE test; +DROP DATABASE db_datadict; +DROP DATABASE db_datadict_2; +######################################################################### +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.ROUTINES modifications +######################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'; +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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER +USE db_datadict; +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict' +ORDER BY routine_name; +SPECIFIC_NAME function_for_routines +ROUTINE_CATALOG NULL +ROUTINE_SCHEMA db_datadict +ROUTINE_NAME function_for_routines +ROUTINE_TYPE FUNCTION +DTD_IDENTIFIER int(11) +ROUTINE_BODY SQL +ROUTINE_DEFINITION RETURN 0 +EXTERNAL_NAME NULL +EXTERNAL_LANGUAGE NULL +PARAMETER_STYLE SQL +IS_DETERMINISTIC NO +SQL_DATA_ACCESS CONTAINS SQL +SQL_PATH NULL +SECURITY_TYPE DEFINER +CREATED +LAST_ALTERED +SQL_MODE +ROUTINE_COMMENT +DEFINER root@localhost +SPECIFIC_NAME sp_for_routines +ROUTINE_CATALOG NULL +ROUTINE_SCHEMA db_datadict +ROUTINE_NAME sp_for_routines +ROUTINE_TYPE PROCEDURE +DTD_IDENTIFIER NULL +ROUTINE_BODY SQL +ROUTINE_DEFINITION SELECT 'db_datadict' +EXTERNAL_NAME NULL +EXTERNAL_LANGUAGE NULL +PARAMETER_STYLE SQL +IS_DETERMINISTIC NO +SQL_DATA_ACCESS CONTAINS SQL +SQL_PATH NULL +SECURITY_TYPE DEFINER +CREATED +LAST_ALTERED +SQL_MODE +ROUTINE_COMMENT +DEFINER root@localhost +ALTER PROCEDURE sp_for_routines SQL SECURITY INVOKER; +ALTER FUNCTION function_for_routines COMMENT 'updated comments'; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict' +ORDER BY routine_name; +SPECIFIC_NAME function_for_routines +ROUTINE_CATALOG NULL +ROUTINE_SCHEMA db_datadict +ROUTINE_NAME function_for_routines +ROUTINE_TYPE FUNCTION +DTD_IDENTIFIER int(11) +ROUTINE_BODY SQL +ROUTINE_DEFINITION RETURN 0 +EXTERNAL_NAME NULL +EXTERNAL_LANGUAGE NULL +PARAMETER_STYLE SQL +IS_DETERMINISTIC NO +SQL_DATA_ACCESS CONTAINS SQL +SQL_PATH NULL +SECURITY_TYPE DEFINER +CREATED +LAST_ALTERED +SQL_MODE +ROUTINE_COMMENT updated comments +DEFINER root@localhost +SPECIFIC_NAME sp_for_routines +ROUTINE_CATALOG NULL +ROUTINE_SCHEMA db_datadict +ROUTINE_NAME sp_for_routines +ROUTINE_TYPE PROCEDURE +DTD_IDENTIFIER NULL +ROUTINE_BODY SQL +ROUTINE_DEFINITION SELECT 'db_datadict' +EXTERNAL_NAME NULL +EXTERNAL_LANGUAGE NULL +PARAMETER_STYLE SQL +IS_DETERMINISTIC NO +SQL_DATA_ACCESS CONTAINS SQL +SQL_PATH NULL +SECURITY_TYPE INVOKER +CREATED +LAST_ALTERED +SQL_MODE +ROUTINE_COMMENT +DEFINER root@localhost +DROP PROCEDURE sp_for_routines; +DROP FUNCTION function_for_routines; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'; +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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict' +ORDER BY routine_name; +SPECIFIC_NAME function_for_routines +ROUTINE_CATALOG NULL +ROUTINE_SCHEMA db_datadict +ROUTINE_NAME function_for_routines +ROUTINE_TYPE FUNCTION +DTD_IDENTIFIER int(11) +ROUTINE_BODY SQL +ROUTINE_DEFINITION RETURN 0 +EXTERNAL_NAME NULL +EXTERNAL_LANGUAGE NULL +PARAMETER_STYLE SQL +IS_DETERMINISTIC NO +SQL_DATA_ACCESS CONTAINS SQL +SQL_PATH NULL +SECURITY_TYPE DEFINER +CREATED +LAST_ALTERED +SQL_MODE +ROUTINE_COMMENT +DEFINER root@localhost +SPECIFIC_NAME sp_for_routines +ROUTINE_CATALOG NULL +ROUTINE_SCHEMA db_datadict +ROUTINE_NAME sp_for_routines +ROUTINE_TYPE PROCEDURE +DTD_IDENTIFIER NULL +ROUTINE_BODY SQL +ROUTINE_DEFINITION SELECT 'db_datadict' +EXTERNAL_NAME NULL +EXTERNAL_LANGUAGE NULL +PARAMETER_STYLE SQL +IS_DETERMINISTIC NO +SQL_DATA_ACCESS CONTAINS SQL +SQL_PATH NULL +SECURITY_TYPE DEFINER +CREATED +LAST_ALTERED +SQL_MODE +ROUTINE_COMMENT +DEFINER root@localhost +use test; +DROP DATABASE db_datadict; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'; +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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER +######################################################################### +# 3.2.8.4: INFORMATION_SCHEMA.ROUTINES routine body too big for +# ROUTINE_DEFINITION column +######################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +USE db_datadict; +CREATE TABLE db_datadict.res_6_408004_1 +(f1 LONGTEXT , f2 MEDIUMINT , f3 LONGBLOB , f4 REAL , f5 YEAR) +ENGINE = ; +INSERT INTO db_datadict.res_6_408004_1 +VALUES ('abc', 98765 , 99999999 , 98765, 10); +CREATE TABLE db_datadict.res_6_408004_2 +(f1 LONGTEXT , f2 MEDIUMINT , f3 LONGBLOB , f4 REAL , f5 YEAR) +ENGINE = ; +INSERT INTO db_datadict.res_6_408004_2 +VALUES ('abc', 98765 , 99999999 , 98765, 10); +# Checking the max. possible length of (currently) 4 GByte is not +# in this environment here. +CREATE PROCEDURE sp_6_408004 () +BEGIN +DECLARE done INTEGER DEFAULt 0; +DECLARE variable_number_1 LONGTEXT; +DECLARE variable_number_2 MEDIUMINT; +DECLARE variable_number_3 LONGBLOB; +DECLARE variable_number_4 REAL; +DECLARE variable_number_5 YEAR; +DECLARE cursor_number_1 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_2 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_3 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_4 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_5 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; +BEGIN +OPEN cursor_number_1; +WHILE done <> 1 DO +FETCH cursor_number_1 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES (variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +BEGIN +BEGIN +SET done = 0; +OPEN cursor_number_2; +WHILE done <> 1 DO +FETCH cursor_number_2 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES(variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +SET done = 0; +OPEN cursor_number_3; +WHILE done <> 1 DO +FETCH cursor_number_3 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES(variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +END; +BEGIN +SET done = 0; +OPEN cursor_number_4; +WHILE done <> 1 DO +FETCH cursor_number_4 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES (variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +BEGIN +SET @a='test row'; +SELECT @a; +SELECT @a; +SELECT @a; +END; +BEGIN +SET done = 0; +OPEN cursor_number_5; +WHILE done <> 1 DO +FETCH cursor_number_5 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES (variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +BEGIN +SET @a='test row'; +SELECT @a; +SELECT @a; +SELECT @a; +END; +END// +CALL db_datadict.sp_6_408004 (); +@a +test row +@a +test row +@a +test row +@a +test row +@a +test row +@a +test row +SELECT * FROM db_datadict.res_6_408004_2; +f1 f2 f3 f4 f5 +abc 98765 99999999 98765 2010 +abc 98765 99999999 98765 2010 +abc 98765 99999999 98765 2010 +abc 98765 99999999 98765 2010 +abc 98765 99999999 98765 2010 +abc 98765 99999999 98765 2010 +SELECT *, LENGTH(routine_definition) FROM information_schema.routines +WHERE routine_schema = 'db_datadict'; +SPECIFIC_NAME sp_6_408004 +ROUTINE_CATALOG NULL +ROUTINE_SCHEMA db_datadict +ROUTINE_NAME sp_6_408004 +ROUTINE_TYPE PROCEDURE +DTD_IDENTIFIER NULL +ROUTINE_BODY SQL +ROUTINE_DEFINITION BEGIN +DECLARE done INTEGER DEFAULt 0; +DECLARE variable_number_1 LONGTEXT; +DECLARE variable_number_2 MEDIUMINT; +DECLARE variable_number_3 LONGBLOB; +DECLARE variable_number_4 REAL; +DECLARE variable_number_5 YEAR; +DECLARE cursor_number_1 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_2 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_3 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_4 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE cursor_number_5 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; +DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; +BEGIN +OPEN cursor_number_1; +WHILE done <> 1 DO +FETCH cursor_number_1 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES (variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +BEGIN +BEGIN +SET done = 0; +OPEN cursor_number_2; +WHILE done <> 1 DO +FETCH cursor_number_2 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES(variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +SET done = 0; +OPEN cursor_number_3; +WHILE done <> 1 DO +FETCH cursor_number_3 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES(variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +END; +BEGIN +SET done = 0; +OPEN cursor_number_4; +WHILE done <> 1 DO +FETCH cursor_number_4 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES (variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +BEGIN +SET @a='test row'; +SELECT @a; +SELECT @a; +SELECT @a; +END; +BEGIN +SET done = 0; +OPEN cursor_number_5; +WHILE done <> 1 DO +FETCH cursor_number_5 +INTO variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5; +IF done <> 0 THEN +INSERT INTO res_6_408004_2 +VALUES (variable_number_1, variable_number_2, variable_number_3, +variable_number_4, variable_number_5); +END IF; +END WHILE; +END; +BEGIN +SET @a='test row'; +SELECT @a; +SELECT @a; +SELECT @a; +END; +END +EXTERNAL_NAME NULL +EXTERNAL_LANGUAGE NULL +PARAMETER_STYLE SQL +IS_DETERMINISTIC NO +SQL_DATA_ACCESS CONTAINS SQL +SQL_PATH NULL +SECURITY_TYPE DEFINER +CREATED YYYY-MM-DD hh:mm:ss +LAST_ALTERED YYYY-MM-DD hh:mm:ss +SQL_MODE +ROUTINE_COMMENT +DEFINER root@localhost +LENGTH(routine_definition) 2549 +DROP DATABASE db_datadict; +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA table are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +USE db_datadict; +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +USE test; +INSERT INTO information_schema.routines (routine_name, routine_type ) +VALUES ('p2', 'procedure'); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.routines SET routine_name = 'p2' +WHERE routine_body = 'sql'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.routines ; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.routines ; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX i7 ON information_schema.routines (routine_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.routines ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.routines DISCARD TABLESPACE; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.routines ; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.routines RENAME db_datadict.routines; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.routines RENAME information_schema.xroutines; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_schema_privileges.result b/mysql-test/suite/funcs_1/r/is_schema_privileges.result new file mode 100644 index 00000000000..b99ef8dd684 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_schema_privileges.result @@ -0,0 +1,304 @@ +SHOW TABLES FROM information_schema LIKE 'SCHEMA_PRIVILEGES'; +Tables_in_information_schema (SCHEMA_PRIVILEGES) +SCHEMA_PRIVILEGES +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.SCHEMA_PRIVILEGES; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.SCHEMA_PRIVILEGES; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.SCHEMA_PRIVILEGES; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.SCHEMA_PRIVILEGES; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.15.1: INFORMATION_SCHEMA.SCHEMA_PRIVILEGES layout +######################################################################### +DESCRIBE information_schema.SCHEMA_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SHOW CREATE TABLE information_schema.SCHEMA_PRIVILEGES; +Table Create Table +SCHEMA_PRIVILEGES CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` ( + `GRANTEE` varchar(81) NOT NULL default '', + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', + `IS_GRANTABLE` varchar(3) NOT NULL default '' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.SCHEMA_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SELECT GRANTEE, TABLE_CATALOG, TABLE_SCHEMA, PRIVILEGE_TYPE +FROM information_schema.schema_privileges WHERE table_catalog IS NOT NULL; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE +############################################################################### +# Testcase 3.2.15.2-3.2.15.4 INFORMATION_SCHEMA.SCHEMA_PRIVILEGES accessibility +############################################################################### +DROP DATABASE IF EXISTS db_datadict_1; +DROP DATABASE IF EXISTS db_datadict_2; +DROP DATABASE IF EXISTS db_datadict_3; +CREATE DATABASE db_datadict_1; +CREATE DATABASE db_datadict_2; +CREATE DATABASE db_datadict_3; +CREATE TABLE db_datadict_2.t1(f1 INT, f2 INT, f3 INT) +ENGINE = MEMORY; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +GRANT INSERT ON db_datadict_1.* TO 'testuser1'@'localhost'; +GRANT INSERT ON db_datadict_2.t1 TO 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict_4.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT ON db_datadict_3.* TO 'testuser2'@'localhost'; +GRANT SELECT ON db_datadict_1.* TO 'testuser2'@'localhost'; +# Establish connection testuser1 (user=testuser1) +GRANT SELECT ON db_datadict_4.* TO 'testuser2'@'localhost'; +# Root granted INSERT db_datadict_1 to me -> visible +# Root granted SELECT db_datadict_1 to testuser2 -> invisible +# Root granted INSERT db_datadict_2.t1 (no schema-level priv!) +# but not db_datadict_2 to me -> invisible +# Root granted SELECT db_datadict_3. to testuser2 but not to me -> invisible +# Root granted SELECT db_datadict_4. to me -> visible +# I granted SELECT db_datadict_4. to testuser2 -> invisible (reality), visible(requirement) +# FIXME +SELECT * FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_datadict%' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict_1 INSERT NO +'testuser1'@'localhost' NULL db_datadict_4 SELECT YES +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT INSERT ON `db_datadict_1`.* TO 'testuser1'@'localhost' +GRANT SELECT ON `db_datadict_4`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT INSERT ON `db_datadict_2`.`t1` TO 'testuser1'@'localhost' +SHOW GRANTS FOR 'testuser2'@'localhost'; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql' +# Establish connection testuser2 (user=testuser2) +# Root granted SELECT db_datadict_1 to me -> visible +# Root granted INSERT db_datadict_1 to testuser1 -> invisible +# Root granted INSERT db_datadict_2.t1 but not db_datadict_1 to testuser1 -> invisible +# Root granted SELECT db_datadict_3. to me -> visible +# testuser1 granted SELECT db_datadict_4. to me -> visible +SELECT * FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_datadict%' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser2'@'localhost' NULL db_datadict_1 SELECT NO +'testuser2'@'localhost' NULL db_datadict_3 SELECT NO +'testuser2'@'localhost' NULL db_datadict_4 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql' +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +GRANT SELECT ON `db_datadict_3`.* TO 'testuser2'@'localhost' +GRANT SELECT ON `db_datadict_1`.* TO 'testuser2'@'localhost' +GRANT SELECT ON `db_datadict_4`.* TO 'testuser2'@'localhost' +# Switch to connection default and close connections testuser1 and testuser2 +SELECT * FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_datadict%' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict_1 INSERT NO +'testuser1'@'localhost' NULL db_datadict_4 SELECT YES +'testuser2'@'localhost' NULL db_datadict_1 SELECT NO +'testuser2'@'localhost' NULL db_datadict_3 SELECT NO +'testuser2'@'localhost' NULL db_datadict_4 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT INSERT ON `db_datadict_1`.* TO 'testuser1'@'localhost' +GRANT SELECT ON `db_datadict_4`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT INSERT ON `db_datadict_2`.`t1` TO 'testuser1'@'localhost' +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +GRANT SELECT ON `db_datadict_3`.* TO 'testuser2'@'localhost' +GRANT SELECT ON `db_datadict_1`.* TO 'testuser2'@'localhost' +GRANT SELECT ON `db_datadict_4`.* TO 'testuser2'@'localhost' +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE db_datadict_1; +DROP DATABASE db_datadict_2; +DROP DATABASE db_datadict_3; +################################################################################ +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.SCHEMA_PRIVILEGES modifications +################################################################################ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'the_user'@'localhost'; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON test.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +# Switch to connection default +GRANT UPDATE ON db_datadict.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict UPDATE NO +# Switch to connection testuser1 +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict UPDATE NO +# Switch to connection default +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT NO +'testuser1'@'localhost' NULL db_datadict UPDATE NO +# Switch to connection testuser1 +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT NO +'testuser1'@'localhost' NULL db_datadict UPDATE NO +# Switch to connection default +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT YES +'testuser1'@'localhost' NULL db_datadict UPDATE YES +# Switch to connection testuser1 +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT YES +'testuser1'@'localhost' NULL db_datadict UPDATE YES +# Switch to connection default +DROP SCHEMA db_datadict; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT YES +'testuser1'@'localhost' NULL db_datadict UPDATE YES +# Switch to connection testuser1 +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT YES +'testuser1'@'localhost' NULL db_datadict UPDATE YES +# Switch to connection default +REVOKE UPDATE ON db_datadict.* FROM 'testuser1'@'localhost'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT YES +# Switch to connection testuser1 +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict SELECT YES +# Switch to connection default +RENAME USER 'testuser1'@'localhost' TO 'the_user'@'localhost'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'the_user'@'localhost' NULL db_datadict SELECT YES +# Switch to connection testuser1 +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'the_user'@'localhost' NULL db_datadict SELECT YES +# Close connection testuser1 +# Establish connection the_user (user=the_user) +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'the_user'@'localhost' NULL db_datadict SELECT YES +# Close connection the_user +# Switch to connection default +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +'the_user'@'localhost' NULL db_datadict SELECT YES +DROP USER 'the_user'@'localhost'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA table are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT) +ENGINE = ; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +INSERT INTO information_schema.schema_privileges +SELECT * FROM information_schema.schema_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.schema_privileges SET table_schema = 'test' +WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.schema_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx_on_tables +ON information_schema.schema_privileges(table_schema); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.schema_privileges ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.schema_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.schema_privileges +RENAME db_datadict.schema_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.schema_privileges +RENAME information_schema.xschema_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; diff --git a/mysql-test/suite/funcs_1/r/is_schema_privileges_is_mysql_test.result b/mysql-test/suite/funcs_1/r/is_schema_privileges_is_mysql_test.result new file mode 100644 index 00000000000..36f365a6054 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_schema_privileges_is_mysql_test.result @@ -0,0 +1,51 @@ +############################################################################## +# Testcases 3.2.9.2+3.2.9.3 INFORMATION_SCHEMA.SCHEMATA accessible information +############################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema IN ('information_schema','mysql','test') +ORDER BY grantee, table_schema, privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +''@'%' NULL test ALTER NO +''@'%' NULL test CREATE NO +''@'%' NULL test CREATE ROUTINE NO +''@'%' NULL test CREATE TEMPORARY TABLES NO +''@'%' NULL test CREATE VIEW NO +''@'%' NULL test DELETE NO +''@'%' NULL test DROP NO +''@'%' NULL test INDEX NO +''@'%' NULL test INSERT NO +''@'%' NULL test LOCK TABLES NO +''@'%' NULL test REFERENCES NO +''@'%' NULL test SELECT NO +''@'%' NULL test SHOW VIEW NO +''@'%' NULL test UPDATE NO +SHOW DATABASES LIKE 'information_schema'; +Database (information_schema) +information_schema +SHOW DATABASES LIKE 'mysql'; +Database (mysql) +mysql +SHOW DATABASES LIKE 'test'; +Database (test) +test +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.schema_privileges +WHERE table_schema IN ('information_schema','mysql','test') +ORDER BY grantee, table_schema, privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE +SHOW DATABASES LIKE 'information_schema'; +Database (information_schema) +information_schema +SHOW DATABASES LIKE 'mysql'; +Database (mysql) +SHOW DATABASES LIKE 'test'; +Database (test) +test +# Switch to connection default and close connection testuser1 +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_schemata.result b/mysql-test/suite/funcs_1/r/is_schemata.result new file mode 100644 index 00000000000..7230e967cf0 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_schemata.result @@ -0,0 +1,181 @@ +SHOW TABLES FROM information_schema LIKE 'SCHEMATA'; +Tables_in_information_schema (SCHEMATA) +SCHEMATA +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.SCHEMATA; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.SCHEMATA; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.SCHEMATA; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.SCHEMATA; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.9.1: INFORMATION_SCHEMA.SCHEMATA layout; +######################################################################### +DESCRIBE information_schema.SCHEMATA; +Field Type Null Key Default Extra +CATALOG_NAME varchar(512) YES NULL +SCHEMA_NAME varchar(64) NO +DEFAULT_CHARACTER_SET_NAME varchar(64) NO +DEFAULT_COLLATION_NAME varchar(64) NO +SQL_PATH varchar(512) YES NULL +SHOW CREATE TABLE information_schema.SCHEMATA; +Table Create Table +SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` ( + `CATALOG_NAME` varchar(512) default NULL, + `SCHEMA_NAME` varchar(64) NOT NULL default '', + `DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL default '', + `DEFAULT_COLLATION_NAME` varchar(64) NOT NULL default '', + `SQL_PATH` varchar(512) default NULL +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.SCHEMATA; +Field Type Null Key Default Extra +CATALOG_NAME varchar(512) YES NULL +SCHEMA_NAME varchar(64) NO +DEFAULT_CHARACTER_SET_NAME varchar(64) NO +DEFAULT_COLLATION_NAME varchar(64) NO +SQL_PATH varchar(512) YES NULL +SELECT catalog_name, schema_name, sql_path +FROM information_schema.schemata +WHERE catalog_name IS NOT NULL or sql_path IS NOT NULL; +catalog_name schema_name sql_path +############################################################################### +# Testcases 3.2.9.2+3.2.9.3: INFORMATION_SCHEMA.SCHEMATA accessible information +############################################################################### +DROP DATABASE IF EXISTS db_datadict_1; +DROP DATABASE IF EXISTS db_datadict_2; +CREATE DATABASE db_datadict_1; +CREATE DATABASE db_datadict_2; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +GRANT SELECT ON db_datadict_1.* to 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict_1.* to 'testuser2'@'localhost'; +GRANT SELECT ON db_datadict_2.* to 'testuser2'@'localhost'; +SELECT * FROM information_schema.schemata +WHERE schema_name LIKE 'db_datadict_%' ORDER BY schema_name; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +NULL db_datadict_1 latin1 latin1_swedish_ci NULL +NULL db_datadict_2 latin1 latin1_swedish_ci NULL +SHOW DATABASES LIKE 'db_datadict_%'; +Database (db_datadict_%) +db_datadict_1 +db_datadict_2 +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.schemata +WHERE schema_name LIKE 'db_datadict_%' ORDER BY schema_name; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +NULL db_datadict_1 latin1 latin1_swedish_ci NULL +SHOW DATABASES LIKE 'db_datadict_%'; +Database (db_datadict_%) +db_datadict_1 +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.schemata +WHERE schema_name LIKE 'db_datadict_%' ORDER BY schema_name; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +NULL db_datadict_1 latin1 latin1_swedish_ci NULL +NULL db_datadict_2 latin1 latin1_swedish_ci NULL +SHOW DATABASES LIKE 'db_datadict_%'; +Database (db_datadict_%) +db_datadict_1 +db_datadict_2 +# Establish connection testuser3 (user=testuser3) +SELECT * FROM information_schema.schemata +WHERE schema_name LIKE 'db_datadict_%' ORDER BY schema_name; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +SHOW DATABASES LIKE 'db_datadict_%'; +Database (db_datadict_%) +# Switch to connection default and close connections testuser1,testuser2,testuser3 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE db_datadict_1; +DROP DATABASE db_datadict_2; +################################################################################# +# Testcases 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.SCHEMATA modifications +################################################################################# +DROP DATABASE IF EXISTS db_datadict; +SELECT * FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +CREATE DATABASE db_datadict CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci'; +SELECT * FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +NULL db_datadict latin1 latin1_swedish_ci NULL +SELECT schema_name, default_character_set_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +schema_name default_character_set_name +db_datadict latin1 +ALTER SCHEMA db_datadict CHARACTER SET 'utf8'; +SELECT schema_name, default_character_set_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +schema_name default_character_set_name +db_datadict utf8 +ALTER SCHEMA db_datadict CHARACTER SET 'latin1'; +SELECT schema_name, default_collation_name FROM information_schema.schemata +WHERE schema_name = 'db_datadict'; +schema_name default_collation_name +db_datadict latin1_swedish_ci +ALTER SCHEMA db_datadict COLLATE 'latin1_general_cs'; +SELECT schema_name, default_collation_name FROM information_schema.schemata +WHERE schema_name = 'db_datadict'; +schema_name default_collation_name +db_datadict latin1_general_cs +SELECT schema_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +schema_name +db_datadict +DROP DATABASE db_datadict; +SELECT schema_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +schema_name +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci'; +INSERT INTO information_schema.schemata +(catalog_name, schema_name, default_character_set_name, sql_path) +VALUES (NULL, 'db1', 'latin1', NULL); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +INSERT INTO information_schema.schemata +SELECT * FROM information_schema.schemata; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.schemata +SET default_character_set_name = 'utf8' +WHERE schema_name = 'db_datadict'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.schemata SET catalog_name = 't_4711'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.schemata; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX i1 ON information_schema.schemata(schema_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.schemata ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.schemata; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.schemata RENAME information_schema.xschemata; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_schemata_is_mysql_test.result b/mysql-test/suite/funcs_1/r/is_schemata_is_mysql_test.result new file mode 100644 index 00000000000..05ea3a79aa3 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_schemata_is_mysql_test.result @@ -0,0 +1,42 @@ +################################################################################# +# Testcases 3.2.9.2 + 3.2.9.3: INFORMATION_SCHEMA.SCHEMATA accessible information +################################################################################# +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.schemata +WHERE schema_name IN ('information_schema','mysql','test') +ORDER BY schema_name; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +NULL information_schema utf8 utf8_general_ci NULL +NULL mysql latin1 latin1_swedish_ci NULL +NULL test latin1 latin1_swedish_ci NULL +SHOW DATABASES LIKE 'information_schema'; +Database (information_schema) +information_schema +SHOW DATABASES LIKE 'mysql'; +Database (mysql) +mysql +SHOW DATABASES LIKE 'test'; +Database (test) +test +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.schemata +WHERE schema_name IN ('information_schema','mysql','test') +ORDER BY schema_name; +CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH +NULL information_schema utf8 utf8_general_ci NULL +NULL test latin1 latin1_swedish_ci NULL +SHOW DATABASES LIKE 'information_schema'; +Database (information_schema) +information_schema +SHOW DATABASES LIKE 'mysql'; +Database (mysql) +SHOW DATABASES LIKE 'test'; +Database (test) +test +# Switch to connection default and close connection testuser1 +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_statistics.result b/mysql-test/suite/funcs_1/r/is_statistics.result new file mode 100644 index 00000000000..b2ca2fb2cb7 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_statistics.result @@ -0,0 +1,352 @@ +SHOW TABLES FROM information_schema LIKE 'STATISTICS'; +Tables_in_information_schema (STATISTICS) +STATISTICS +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.STATISTICS; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.STATISTICS; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.STATISTICS; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.STATISTICS; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.14.1: INFORMATION_SCHEMA.STATISTICS layout +######################################################################### +DESCRIBE information_schema.STATISTICS; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +NON_UNIQUE bigint(1) NO 0 +INDEX_SCHEMA varchar(64) NO +INDEX_NAME varchar(64) NO +SEQ_IN_INDEX bigint(2) NO 0 +COLUMN_NAME varchar(64) NO +COLLATION varchar(1) YES NULL +CARDINALITY bigint(21) YES NULL +SUB_PART bigint(3) YES NULL +PACKED varchar(10) YES NULL +NULLABLE varchar(3) NO +INDEX_TYPE varchar(16) NO +COMMENT varchar(16) YES NULL +SHOW CREATE TABLE information_schema.STATISTICS; +Table Create Table +STATISTICS CREATE TEMPORARY TABLE `STATISTICS` ( + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `NON_UNIQUE` bigint(1) NOT NULL default '0', + `INDEX_SCHEMA` varchar(64) NOT NULL default '', + `INDEX_NAME` varchar(64) NOT NULL default '', + `SEQ_IN_INDEX` bigint(2) NOT NULL default '0', + `COLUMN_NAME` varchar(64) NOT NULL default '', + `COLLATION` varchar(1) default NULL, + `CARDINALITY` bigint(21) default NULL, + `SUB_PART` bigint(3) default NULL, + `PACKED` varchar(10) default NULL, + `NULLABLE` varchar(3) NOT NULL default '', + `INDEX_TYPE` varchar(16) NOT NULL default '', + `COMMENT` varchar(16) default NULL +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.STATISTICS; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +NON_UNIQUE bigint(1) NO 0 +INDEX_SCHEMA varchar(64) NO +INDEX_NAME varchar(64) NO +SEQ_IN_INDEX bigint(2) NO 0 +COLUMN_NAME varchar(64) NO +COLLATION varchar(1) YES NULL +CARDINALITY bigint(21) YES NULL +SUB_PART bigint(3) YES NULL +PACKED varchar(10) YES NULL +NULLABLE varchar(3) NO +INDEX_TYPE varchar(16) NO +COMMENT varchar(16) YES NULL +SELECT table_catalog, table_schema, table_name, index_schema, index_name +FROM information_schema.statistics WHERE table_catalog IS NOT NULL; +table_catalog table_schema table_name index_schema index_name +#################################################################################### +# Testcase 3.2.14.2 + 3.2.14.3: INFORMATION_SCHEMA.STATISTICS accessible information +#################################################################################### +DROP DATABASE IF EXISTS db_datadict; +DROP DATABASE IF EXISTS db_datadict_2; +CREATE DATABASE db_datadict; +CREATE DATABASE db_datadict_2; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +CREATE TABLE db_datadict.t1 +(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) +ENGINE = ; +CREATE TABLE db_datadict.t2 +(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) +ENGINE = ; +CREATE TABLE db_datadict_2.t3 +(f1 INT NOT NULL, f2 INT, f5 DATE, +PRIMARY KEY(f1), INDEX f2f1_ind(f2,f1), UNIQUE(f5)) +ENGINE = MEMORY; +CREATE TABLE db_datadict_2.t4 +(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) +ENGINE = MEMORY; +SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH +NULL db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH +NULL db_datadict t2 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH +NULL db_datadict t2 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH +NULL db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH +NULL db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +SHOW GRANTS FOR 'testuser2'@'localhost'; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql' +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +SHOW GRANTS FOR 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql' +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +# Switch to connection default +GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT(f1,f5) ON db_datadict_2.t3 TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH +NULL db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH +NULL db_datadict t2 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH +NULL db_datadict t2 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH +NULL db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t4 1 db_datadict_2 f2_ind 1 f2 NULL 0 NULL NULL YES HASH +NULL db_datadict_2 t4 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' +GRANT SELECT ON `db_datadict`.`t1` TO 'testuser1'@'localhost' WITH GRANT OPTION +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +# Switch to connection testuser1 +SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL db_datadict t1 1 db_datadict f2_ind 1 f2 NULL 0 NULL NULL YES HASH +NULL db_datadict t1 0 db_datadict PRIMARY 1 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH +NULL db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' +GRANT SELECT ON `db_datadict`.`t1` TO 'testuser1'@'localhost' WITH GRANT OPTION +SHOW GRANTS FOR 'testuser2'@'localhost'; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'mysql' +# Switch to connection testuser2 +SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +SHOW GRANTS FOR 'testuser1'@'localhost'; +ERROR 42000: Access denied for user 'testuser2'@'localhost' to database 'mysql' +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +# Switch to connection default +REVOKE SELECT,GRANT OPTION ON db_datadict.t1 FROM 'testuser1'@'localhost'; +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' +# Switch to connection testuser1 +SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 1 f2 NULL NULL NULL NULL YES HASH +NULL db_datadict_2 t3 1 db_datadict_2 f2f1_ind 2 f1 NULL 0 NULL NULL HASH +NULL db_datadict_2 t3 0 db_datadict_2 f5 1 f5 NULL 0 NULL NULL YES HASH +NULL db_datadict_2 t3 0 db_datadict_2 PRIMARY 1 f1 NULL 0 NULL NULL HASH +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT (f5, f1) ON `db_datadict_2`.`t3` TO 'testuser1'@'localhost' +# Switch to connection default and close connections testuser1, testuser2 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE db_datadict; +DROP DATABASE db_datadict_2; +######################################################################### +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.STATISTICS modifications +######################################################################### +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE test.t1_1 (f1 BIGINT, +f2 TEXT, f2x TEXT, f3 CHAR(10), f3x CHAR(10), f4 BIGINT, f4x BIGINT, +f5 POINT, f5x POINT NOT NULL) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = ; +CREATE TABLE test.t1_2 (f1 BIGINT, f2 BIGINT) +ENGINE = ; +SELECT table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_%'; +table_name +ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1,f3); +SELECT * FROM information_schema.statistics +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL test t1_1 0 test PRIMARY 1 f1 A NULL NULL NULL BTREE +NULL test t1_1 0 test PRIMARY 2 f3 A 0 NULL NULL BTREE +ALTER TABLE test.t1_1 DROP PRIMARY KEY; +SELECT table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_%'; +table_name +ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1); +SELECT * FROM information_schema.statistics +WHERE table_name LIKE 't1_%'; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL test t1_1 0 test PRIMARY 1 f1 A 0 NULL NULL BTREE +ALTER TABLE test.t1_1 ADD INDEX (f4); +CREATE INDEX f3_f1 ON test.t1_1 (f3,f1); +CREATE UNIQUE INDEX f4x_uni ON test.t1_1 (f4x); +CREATE INDEX f2_hash USING HASH ON test.t1_2 (f2); +CREATE INDEX f1_idx ON test.t1_2 (f1) COMMENT = 'COMMENT'; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'COMMENT = 'COMMENT'' at line 1 +CREATE INDEX not_null ON test.t1_1 (f3x); +CREATE INDEX f2_prefix ON test.t1_1 (f2(20)); +SELECT * FROM information_schema.statistics +WHERE table_name LIKE 't1_%' AND index_name <> 'PRIMARY' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL test t1_1 1 test f2_prefix 1 f2 A NULL 20 NULL YES BTREE +NULL test t1_1 1 test f3_f1 1 f3 A NULL NULL NULL BTREE +NULL test t1_1 1 test f3_f1 2 f1 A NULL NULL NULL BTREE +NULL test t1_1 1 test f4 1 f4 A NULL NULL NULL YES BTREE +NULL test t1_1 0 test f4x_uni 1 f4x A NULL NULL NULL YES BTREE +NULL test t1_1 1 test not_null 1 f3x A NULL NULL NULL YES BTREE +NULL test t1_2 1 test f2_hash 1 f2 NULL 0 NULL NULL YES HASH +DROP TABLE test.t1_2; +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1'; +table_name +t1_1 +RENAME TABLE test.t1_1 TO test.t1_1x; +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +table_name +t1_1x +SELECT DISTINCT table_schema,table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_1%'; +table_schema table_name +test t1_1x +RENAME TABLE test.t1_1x TO db_datadict.t1_1x; +SELECT DISTINCT table_schema,table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_1%'; +table_schema table_name +db_datadict t1_1x +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +table_name +t1_1x +DROP TABLE db_datadict.t1_1x; +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +table_name +CREATE TEMPORARY TABLE test.t1_1x (PRIMARY KEY(f1,f2)) +ENGINE = +AS SELECT 1 AS f1, 2 AS f2; +SELECT * FROM information_schema.statistics +WHERE table_name = 't1_1x'; +DROP TEMPORARY TABLE test.t1_1x; +CREATE TABLE db_datadict.t1_1x (PRIMARY KEY(f1)) +ENGINE = +AS SELECT 1 AS f1, 2 AS f2; +SELECT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +table_name +t1_1x +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +table_name +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = ; +INSERT INTO information_schema.statistics +SELECT * FROM information_schema.statistics; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.statistics SET table_schema = 'test' +WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.statistics WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.statistics; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx_on_statistics +ON information_schema.statistics(table_schema); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.statistics DROP PRIMARY KEY; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.statistics ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.statistics; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.statistics RENAME db_datadict.statistics; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.statistics RENAME information_schema.xstatistics; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_statistics_is.result b/mysql-test/suite/funcs_1/r/is_statistics_is.result new file mode 100644 index 00000000000..165c1ee08e2 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_statistics_is.result @@ -0,0 +1,17 @@ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +SELECT * FROM information_schema.statistics +WHERE table_schema = 'information_schema' +ORDER BY table_schema, table_name, index_name, seq_in_index, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.statistics +WHERE table_schema = 'information_schema' +ORDER BY table_schema, table_name, index_name, seq_in_index, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_statistics_mysql.result b/mysql-test/suite/funcs_1/r/is_statistics_mysql.result new file mode 100644 index 00000000000..83425b4dd4e --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_statistics_mysql.result @@ -0,0 +1,60 @@ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +SELECT * FROM information_schema.statistics +WHERE table_schema = 'mysql' +ORDER BY table_schema, table_name, index_name, seq_in_index, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +NULL mysql columns_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE +NULL mysql columns_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE +NULL mysql columns_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE +NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A #CARD# NULL NULL BTREE +NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A #CARD# NULL NULL BTREE +NULL mysql db 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE +NULL mysql db 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE +NULL mysql db 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE +NULL mysql db 1 mysql User 1 User A #CARD# NULL NULL BTREE +NULL mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE +NULL mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE +NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE +NULL mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE +NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A #CARD# NULL NULL BTREE +NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A #CARD# NULL NULL BTREE +NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A #CARD# NULL NULL BTREE +NULL mysql help_topic 0 mysql name 1 name A #CARD# NULL NULL BTREE +NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A #CARD# NULL NULL BTREE +NULL mysql host 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE +NULL mysql host 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE +NULL mysql proc 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE +NULL mysql proc 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE +NULL mysql proc 0 mysql PRIMARY 3 type A #CARD# NULL NULL BTREE +NULL mysql procs_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE +NULL mysql procs_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE +NULL mysql procs_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE +NULL mysql procs_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE +NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A #CARD# NULL NULL BTREE +NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A #CARD# NULL NULL BTREE +NULL mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE +NULL mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE +NULL mysql tables_priv 0 mysql PRIMARY 2 Db A #CARD# NULL NULL BTREE +NULL mysql tables_priv 0 mysql PRIMARY 3 User A #CARD# NULL NULL BTREE +NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A #CARD# NULL NULL BTREE +NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE +NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A #CARD# NULL NULL BTREE +NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A #CARD# NULL NULL BTREE +NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE +NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A #CARD# NULL NULL BTREE +NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A #CARD# NULL NULL BTREE +NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A #CARD# NULL NULL BTREE +NULL mysql user 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE +NULL mysql user 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.statistics +WHERE table_schema = 'mysql' +ORDER BY table_schema, table_name, index_name, seq_in_index, column_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_table_constraints.result b/mysql-test/suite/funcs_1/r/is_table_constraints.result new file mode 100644 index 00000000000..d2ca58aade6 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_table_constraints.result @@ -0,0 +1,310 @@ +SHOW TABLES FROM information_schema LIKE 'TABLE_CONSTRAINTS'; +Tables_in_information_schema (TABLE_CONSTRAINTS) +TABLE_CONSTRAINTS +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.TABLE_CONSTRAINTS; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.TABLE_CONSTRAINTS; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.TABLE_CONSTRAINTS; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.TABLE_CONSTRAINTS; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.10.1: INFORMATION_SCHEMA.TABLE_CONSTRAINTS layout +######################################################################### +DESCRIBE information_schema.TABLE_CONSTRAINTS; +Field Type Null Key Default Extra +CONSTRAINT_CATALOG varchar(512) YES NULL +CONSTRAINT_SCHEMA varchar(64) NO +CONSTRAINT_NAME varchar(64) NO +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +CONSTRAINT_TYPE varchar(64) NO +SHOW CREATE TABLE information_schema.TABLE_CONSTRAINTS; +Table Create Table +TABLE_CONSTRAINTS CREATE TEMPORARY TABLE `TABLE_CONSTRAINTS` ( + `CONSTRAINT_CATALOG` varchar(512) default NULL, + `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', + `CONSTRAINT_NAME` varchar(64) NOT NULL default '', + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `CONSTRAINT_TYPE` varchar(64) NOT NULL default '' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.TABLE_CONSTRAINTS; +Field Type Null Key Default Extra +CONSTRAINT_CATALOG varchar(512) YES NULL +CONSTRAINT_SCHEMA varchar(64) NO +CONSTRAINT_NAME varchar(64) NO +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +CONSTRAINT_TYPE varchar(64) NO +SELECT constraint_catalog, constraint_schema, constraint_name, +table_schema, table_name +FROM information_schema.table_constraints +WHERE constraint_catalog IS NOT NULL; +constraint_catalog constraint_schema constraint_name table_schema table_name +######################################################################################### +# Testcase 3.2.7.2 + 3.2.7.3: INFORMATION_SCHEMA.TABLE_CONSTRAINTS accessible information +######################################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT, f3 BIGINT, f4 BIGINT, +f5 BIGINT, f6 BIGINT, PRIMARY KEY (f1,f2)) +ENGINE = ; +CREATE UNIQUE INDEX my_idx1 ON db_datadict.t1(f6,f1); +CREATE UNIQUE INDEX my_idx2 ON db_datadict.t1(f3); +CREATE TABLE db_datadict.t2 (f1 BIGINT, f2 BIGINT, f3 BIGINT, f4 BIGINT, +f5 BIGINT, f6 BIGINT, PRIMARY KEY (f1,f2)) +ENGINE = ; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT(f5) ON db_datadict.t1 TO 'testuser1'@'localhost'; +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT (f5) ON `db_datadict`.`t1` TO 'testuser1'@'localhost' +SELECT * FROM information_schema.table_constraints +WHERE table_schema = 'db_datadict' +ORDER BY table_schema,table_name, constraint_name; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE +NULL db_datadict my_idx1 db_datadict t1 UNIQUE +NULL db_datadict my_idx2 db_datadict t1 UNIQUE +NULL db_datadict PRIMARY db_datadict t1 PRIMARY KEY +NULL db_datadict PRIMARY db_datadict t2 PRIMARY KEY +SHOW INDEXES FROM db_datadict.t1; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t1 0 PRIMARY 1 f1 ### ### ### ### ### ### ### +t1 0 PRIMARY 2 f2 ### ### ### ### ### ### ### +t1 0 my_idx1 1 f6 ### ### ### ### ### ### ### +t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### +t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### +SHOW INDEXES FROM db_datadict.t2; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t2 0 PRIMARY 1 f1 ### ### ### ### ### ### ### +t2 0 PRIMARY 2 f2 ### ### ### ### ### ### ### +# Establish connection testuser1 (user=testuser1) +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT (f5) ON `db_datadict`.`t1` TO 'testuser1'@'localhost' +SELECT * FROM information_schema.table_constraints +WHERE table_schema = 'db_datadict' +ORDER BY table_schema,table_name, constraint_name; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE +NULL db_datadict my_idx1 db_datadict t1 UNIQUE +NULL db_datadict my_idx2 db_datadict t1 UNIQUE +NULL db_datadict PRIMARY db_datadict t1 PRIMARY KEY +SHOW INDEXES FROM db_datadict.t1; +Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment +t1 0 PRIMARY 1 f1 ### ### ### ### ### ### ### +t1 0 PRIMARY 2 f2 ### ### ### ### ### ### ### +t1 0 my_idx1 1 f6 ### ### ### ### ### ### ### +t1 0 my_idx1 2 f1 ### ### ### ### ### ### ### +t1 0 my_idx2 1 f3 ### ### ### ### ### ### ### +SHOW INDEXES FROM db_datadict.t2; +ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2' +# Switch to connection default and close connection testuser1 +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; +######################################################################################### +# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLE_CONSTRAINTS modifications +######################################################################################### +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS test.t1_my_table; +CREATE DATABASE db_datadict; +SELECT table_name FROM information_schema.table_constraints +WHERE table_name LIKE 't1_my_table%'; +table_name +CREATE TABLE test.t1_my_table +(f1 CHAR(12), f2 TIMESTAMP, f4 BIGINT, PRIMARY KEY(f1,f2)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = ; +SELECT constraint_name, table_schema, table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_table'; +constraint_name table_schema table_name constraint_type +PRIMARY test t1_my_table PRIMARY KEY +SELECT table_name FROM information_schema.table_constraints +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_table +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT table_name FROM information_schema.table_constraints +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_tablex +SELECT table_schema,table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_schema table_name +test t1_my_tablex +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT table_schema,table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_schema table_name +db_datadict t1_my_tablex +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +CREATE INDEX f2 ON db_datadict.t1_my_tablex(f2); +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +DROP INDEX f2 ON db_datadict.t1_my_tablex; +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE (f2); +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict f2 db_datadict t1_my_tablex UNIQUE +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +DROP INDEX f2 ON db_datadict.t1_my_tablex; +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f4,f1); +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict my_idx db_datadict t1_my_tablex UNIQUE +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +DROP INDEX my_idx ON db_datadict.t1_my_tablex; +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f2); +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict my_idx db_datadict t1_my_tablex UNIQUE +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict my_idx db_datadict t1_my_tablex UNIQUE +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +ALTER TABLE db_datadict.t1_my_tablex +DROP COLUMN f2; +SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +constraint_schema constraint_name table_schema table_name constraint_type +db_datadict PRIMARY db_datadict t1_my_tablex PRIMARY KEY +SELECT table_name +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_name +t1_my_tablex +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_name +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_name +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = AS +SELECT 1 AS f1; +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_name +ALTER TABLE db_datadict.t1_my_tablex ADD PRIMARY KEY(f1); +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_name +t1_my_tablex +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_name +t1_my_tablex +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +table_name +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS db_datadict.t1; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT, UNIQUE(f1)) +ENGINE = ; +INSERT INTO information_schema.table_constraints +(constraint_schema, constraint_name, table_name) +VALUES ( 'mysql', 'primary', 'db'); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +INSERT INTO information_schema.table_constraints +SELECT * FROM information_schema.table_constraints; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.table_constraints +SET table_name = 'db1' WHERE constraint_name = 'primary'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.table_constraints WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.table_constraints; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX i3 ON information_schema.table_constraints(table_name); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.table_constraints ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.table_constraints; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.table_constraints +RENAME db_datadict.table_constraints; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.table_constraints +RENAME information_schema.xtable_constraints; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE db_datadict.t1; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_table_constraints_is.result b/mysql-test/suite/funcs_1/r/is_table_constraints_is.result new file mode 100644 index 00000000000..78724caa175 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_table_constraints_is.result @@ -0,0 +1,17 @@ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +SELECT * FROM information_schema.table_constraints +WHERE table_schema = 'information_schema' +ORDER BY table_schema,table_name,constraint_name; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.table_constraints +WHERE table_schema = 'information_schema' +ORDER BY table_schema,table_name,constraint_name; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result b/mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result new file mode 100644 index 00000000000..0be4f0a6e95 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_table_constraints_mysql.result @@ -0,0 +1,37 @@ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +SELECT * FROM information_schema.table_constraints +WHERE table_schema = 'mysql' +ORDER BY table_schema,table_name,constraint_name; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE +NULL mysql PRIMARY mysql columns_priv PRIMARY KEY +NULL mysql PRIMARY mysql db PRIMARY KEY +NULL mysql PRIMARY mysql func PRIMARY KEY +NULL mysql name mysql help_category UNIQUE +NULL mysql PRIMARY mysql help_category PRIMARY KEY +NULL mysql name mysql help_keyword UNIQUE +NULL mysql PRIMARY mysql help_keyword PRIMARY KEY +NULL mysql PRIMARY mysql help_relation PRIMARY KEY +NULL mysql name mysql help_topic UNIQUE +NULL mysql PRIMARY mysql help_topic PRIMARY KEY +NULL mysql PRIMARY mysql host PRIMARY KEY +NULL mysql PRIMARY mysql proc PRIMARY KEY +NULL mysql PRIMARY mysql procs_priv PRIMARY KEY +NULL mysql PRIMARY mysql tables_priv PRIMARY KEY +NULL mysql PRIMARY mysql time_zone PRIMARY KEY +NULL mysql PRIMARY mysql time_zone_leap_second PRIMARY KEY +NULL mysql PRIMARY mysql time_zone_name PRIMARY KEY +NULL mysql PRIMARY mysql time_zone_transition PRIMARY KEY +NULL mysql PRIMARY mysql time_zone_transition_type PRIMARY KEY +NULL mysql PRIMARY mysql user PRIMARY KEY +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.table_constraints +WHERE table_schema = 'mysql' +ORDER BY table_schema,table_name,constraint_name; +CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_table_privileges.result b/mysql-test/suite/funcs_1/r/is_table_privileges.result new file mode 100644 index 00000000000..9bf04949710 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_table_privileges.result @@ -0,0 +1,332 @@ +SHOW TABLES FROM information_schema LIKE 'TABLE_PRIVILEGES'; +Tables_in_information_schema (TABLE_PRIVILEGES) +TABLE_PRIVILEGES +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.TABLE_PRIVILEGES; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.TABLE_PRIVILEGES; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.TABLE_PRIVILEGES; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.TABLE_PRIVILEGES; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.11.1: INFORMATION_SCHEMA.TABLE_PRIVILEGES layout +######################################################################### +DESCRIBE information_schema.TABLE_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SHOW CREATE TABLE information_schema.TABLE_PRIVILEGES; +Table Create Table +TABLE_PRIVILEGES CREATE TEMPORARY TABLE `TABLE_PRIVILEGES` ( + `GRANTEE` varchar(81) NOT NULL default '', + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', + `IS_GRANTABLE` varchar(3) NOT NULL default '' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.TABLE_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SELECT table_catalog, table_schema, table_name, privilege_type +FROM information_schema.table_privileges WHERE table_catalog IS NOT NULL; +table_catalog table_schema table_name privilege_type +###################################################################### +# Testcase 3.2.11.2+3.2.11.3+3.2.11.4: +# INFORMATION_SCHEMA.TABLE_PRIVILEGES accessible information +###################################################################### +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.tb1(f1 INT, f2 INT, f3 INT) +ENGINE = ; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT CREATE, SELECT ON db_datadict.* +TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT ON db_datadict.tb1 TO 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +GRANT ALL ON db_datadict.tb1 TO 'testuser2'@'localhost' WITH GRANT OPTION; +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +# Establish connection testuser1 (user=testuser1) +CREATE TABLE tb3 (f1 TEXT) +ENGINE = ; +GRANT SELECT ON db_datadict.tb3 TO 'testuser3'@'localhost'; +SELECT * FROM information_schema.table_privileges +WHERE table_name LIKE 'tb%' +ORDER BY grantee,table_schema,table_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict tb1 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT, CREATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT SELECT ON `db_datadict`.`tb1` TO 'testuser1'@'localhost' +# Establish connection testuser2 (user=testuser3) +SELECT * FROM information_schema.table_privileges +WHERE table_name LIKE 'tb%' +ORDER BY grantee,table_schema,table_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser2'@'localhost' NULL db_datadict tb1 ALTER YES +'testuser2'@'localhost' NULL db_datadict tb1 CREATE YES +'testuser2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES +'testuser2'@'localhost' NULL db_datadict tb1 DELETE YES +'testuser2'@'localhost' NULL db_datadict tb1 DROP YES +'testuser2'@'localhost' NULL db_datadict tb1 INDEX YES +'testuser2'@'localhost' NULL db_datadict tb1 INSERT YES +'testuser2'@'localhost' NULL db_datadict tb1 REFERENCES YES +'testuser2'@'localhost' NULL db_datadict tb1 SELECT YES +'testuser2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES +'testuser2'@'localhost' NULL db_datadict tb1 UPDATE YES +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +GRANT ALL PRIVILEGES ON `db_datadict`.`tb1` TO 'testuser2'@'localhost' WITH GRANT OPTION +# Establish connection testuser3 (user=testuser3) +SELECT * FROM information_schema.table_privileges +WHERE table_name LIKE 'tb%' +ORDER BY grantee,table_schema,table_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser3'@'localhost' NULL db_datadict tb3 SELECT NO +SHOW GRANTS FOR 'testuser3'@'localhost'; +Grants for testuser3@localhost +GRANT USAGE ON *.* TO 'testuser3'@'localhost' +GRANT SELECT ON `db_datadict`.`tb3` TO 'testuser3'@'localhost' +# Switch to connection default and close the other connections +SELECT * FROM information_schema.table_privileges +WHERE table_name LIKE 'tb%' +ORDER BY grantee,table_schema,table_name,privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL db_datadict tb1 SELECT NO +'testuser2'@'localhost' NULL db_datadict tb1 ALTER YES +'testuser2'@'localhost' NULL db_datadict tb1 CREATE YES +'testuser2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES +'testuser2'@'localhost' NULL db_datadict tb1 DELETE YES +'testuser2'@'localhost' NULL db_datadict tb1 DROP YES +'testuser2'@'localhost' NULL db_datadict tb1 INDEX YES +'testuser2'@'localhost' NULL db_datadict tb1 INSERT YES +'testuser2'@'localhost' NULL db_datadict tb1 REFERENCES YES +'testuser2'@'localhost' NULL db_datadict tb1 SELECT YES +'testuser2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES +'testuser2'@'localhost' NULL db_datadict tb1 UPDATE YES +'testuser3'@'localhost' NULL db_datadict tb3 SELECT NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT, CREATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT SELECT ON `db_datadict`.`tb1` TO 'testuser1'@'localhost' +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +GRANT ALL PRIVILEGES ON `db_datadict`.`tb1` TO 'testuser2'@'localhost' WITH GRANT OPTION +SHOW GRANTS FOR 'testuser3'@'localhost'; +Grants for testuser3@localhost +GRANT USAGE ON *.* TO 'testuser3'@'localhost' +GRANT SELECT ON `db_datadict`.`tb3` TO 'testuser3'@'localhost' +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE db_datadict; +################################################################################ +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLE_PRIVILEGES modifications +################################################################################ +DROP TABLE IF EXISTS test.t1_table; +DROP VIEW IF EXISTS test.t1_view; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE test.t1_table (f1 BIGINT) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +COMMENT = 'Initial Comment' ENGINE = ; +CREATE VIEW test.t1_view AS SELECT 1; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'the_user'@'localhost'; +SELECT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%'; +table_name +GRANT ALL ON test.t1_table TO 'testuser1'@'localhost'; +GRANT ALL ON test.t1_view TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY grantee, table_schema, table_name, privilege_type; +GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL test t1_table ALTER NO +'testuser1'@'localhost' NULL test t1_table CREATE NO +'testuser1'@'localhost' NULL test t1_table CREATE VIEW NO +'testuser1'@'localhost' NULL test t1_table DELETE NO +'testuser1'@'localhost' NULL test t1_table DROP NO +'testuser1'@'localhost' NULL test t1_table INDEX NO +'testuser1'@'localhost' NULL test t1_table INSERT NO +'testuser1'@'localhost' NULL test t1_table REFERENCES NO +'testuser1'@'localhost' NULL test t1_table SELECT NO +'testuser1'@'localhost' NULL test t1_table SHOW VIEW NO +'testuser1'@'localhost' NULL test t1_table UPDATE NO +'testuser1'@'localhost' NULL test t1_view ALTER NO +'testuser1'@'localhost' NULL test t1_view CREATE NO +'testuser1'@'localhost' NULL test t1_view CREATE VIEW NO +'testuser1'@'localhost' NULL test t1_view DELETE NO +'testuser1'@'localhost' NULL test t1_view DROP NO +'testuser1'@'localhost' NULL test t1_view INDEX NO +'testuser1'@'localhost' NULL test t1_view INSERT NO +'testuser1'@'localhost' NULL test t1_view REFERENCES NO +'testuser1'@'localhost' NULL test t1_view SELECT NO +'testuser1'@'localhost' NULL test t1_view SHOW VIEW NO +'testuser1'@'localhost' NULL test t1_view UPDATE NO +SELECT DISTINCT grantee, table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY grantee, table_name; +grantee table_name +'testuser1'@'localhost' t1_table +'testuser1'@'localhost' t1_view +RENAME USER 'testuser1'@'localhost' TO 'the_user'@'localhost'; +FLUSH PRIVILEGES; +SELECT DISTINCT grantee, table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY grantee, table_name; +grantee table_name +'the_user'@'localhost' t1_table +'the_user'@'localhost' t1_view +SHOW GRANTS FOR 'testuser1'@'localhost'; +ERROR 42000: There is no such grant defined for user 'testuser1' on host 'localhost' +SHOW GRANTS FOR 'the_user'@'localhost'; +Grants for the_user@localhost +GRANT USAGE ON *.* TO 'the_user'@'localhost' +GRANT ALL PRIVILEGES ON `test`.`t1_view` TO 'the_user'@'localhost' +GRANT ALL PRIVILEGES ON `test`.`t1_table` TO 'the_user'@'localhost' +SELECT DISTINCT table_schema,table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +table_schema table_name +test t1_table +test t1_view +RENAME TABLE test.t1_table TO db_datadict.t1_table; +RENAME TABLE test.t1_view TO db_datadict.t1_view; +ERROR HY000: Changing schema from 'test' to 'db_datadict' is not allowed. +SELECT DISTINCT table_schema,table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +table_schema table_name +test t1_table +test t1_view +SHOW GRANTS FOR 'the_user'@'localhost'; +Grants for the_user@localhost +GRANT USAGE ON *.* TO 'the_user'@'localhost' +GRANT ALL PRIVILEGES ON `test`.`t1_view` TO 'the_user'@'localhost' +GRANT ALL PRIVILEGES ON `test`.`t1_table` TO 'the_user'@'localhost' +REVOKE ALL PRIVILEGES ON test.t1_table FROM 'the_user'@'localhost'; +REVOKE ALL PRIVILEGES ON test.t1_view FROM 'the_user'@'localhost'; +DROP VIEW test.t1_view; +CREATE VIEW db_datadict.t1_view AS SELECT 1; +GRANT ALL ON db_datadict.t1_table TO 'the_user'@'localhost'; +GRANT ALL ON db_datadict.t1_view TO 'the_user'@'localhost'; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_table +t1_view +RENAME TABLE db_datadict.t1_table TO db_datadict.t1_tablex; +RENAME TABLE db_datadict.t1_view TO db_datadict.t1_viewx; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_table +t1_view +RENAME TABLE db_datadict.t1_tablex TO db_datadict.t1_table; +RENAME TABLE db_datadict.t1_viewx TO db_datadict.t1_view; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_table +t1_view +DROP TABLE db_datadict.t1_table; +DROP VIEW db_datadict.t1_view; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_table +t1_view +CREATE TABLE db_datadict.t1_table +ENGINE = AS +SELECT 1; +CREATE VIEW db_datadict.t1_view AS SELECT 1; +GRANT ALL ON db_datadict.t1_table TO 'the_user'@'localhost'; +GRANT ALL ON db_datadict.t1_view TO 'the_user'@'localhost'; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_table +t1_view +DROP DATABASE db_datadict; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_table +t1_view +DROP USER 'the_user'@'localhost'; +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA table are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT) +ENGINE = ; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT (f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; +INSERT INTO information_schema.table_privileges +SELECT * FROM information_schema.table_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.table_privileges SET table_schema = 'test' +WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.table_privileges WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.table_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx_on_tables +ON information_schema.table_privileges(table_schema); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.table_privileges ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.table_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.table_privileges +RENAME db_datadict.table_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.table_privileges +RENAME information_schema.xtable_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; diff --git a/mysql-test/suite/funcs_1/r/is_tables.result b/mysql-test/suite/funcs_1/r/is_tables.result new file mode 100644 index 00000000000..45662b2b03f --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_tables.result @@ -0,0 +1,419 @@ +SHOW TABLES FROM information_schema LIKE 'TABLES'; +Tables_in_information_schema (TABLES) +TABLES +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.TABLES; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.TABLES; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.TABLES; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.TABLES; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.12.1: INFORMATION_SCHEMA.TABLES layout +######################################################################### +DESCRIBE information_schema.TABLES; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +TABLE_TYPE varchar(64) NO +ENGINE varchar(64) YES NULL +VERSION bigint(21) YES NULL +ROW_FORMAT varchar(10) YES NULL +TABLE_ROWS bigint(21) YES NULL +AVG_ROW_LENGTH bigint(21) YES NULL +DATA_LENGTH bigint(21) YES NULL +MAX_DATA_LENGTH bigint(21) YES NULL +INDEX_LENGTH bigint(21) YES NULL +DATA_FREE bigint(21) YES NULL +AUTO_INCREMENT bigint(21) YES NULL +CREATE_TIME datetime YES NULL +UPDATE_TIME datetime YES NULL +CHECK_TIME datetime YES NULL +TABLE_COLLATION varchar(64) YES NULL +CHECKSUM bigint(21) YES NULL +CREATE_OPTIONS varchar(255) YES NULL +TABLE_COMMENT varchar(80) NO +SHOW CREATE TABLE information_schema.TABLES; +Table Create Table +TABLES CREATE TEMPORARY TABLE `TABLES` ( + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `TABLE_TYPE` varchar(64) NOT NULL default '', + `ENGINE` varchar(64) default NULL, + `VERSION` bigint(21) default NULL, + `ROW_FORMAT` varchar(10) default NULL, + `TABLE_ROWS` bigint(21) default NULL, + `AVG_ROW_LENGTH` bigint(21) default NULL, + `DATA_LENGTH` bigint(21) default NULL, + `MAX_DATA_LENGTH` bigint(21) default NULL, + `INDEX_LENGTH` bigint(21) default NULL, + `DATA_FREE` bigint(21) default NULL, + `AUTO_INCREMENT` bigint(21) default NULL, + `CREATE_TIME` datetime default NULL, + `UPDATE_TIME` datetime default NULL, + `CHECK_TIME` datetime default NULL, + `TABLE_COLLATION` varchar(64) default NULL, + `CHECKSUM` bigint(21) default NULL, + `CREATE_OPTIONS` varchar(255) default NULL, + `TABLE_COMMENT` varchar(80) NOT NULL default '' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.TABLES; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +TABLE_TYPE varchar(64) NO +ENGINE varchar(64) YES NULL +VERSION bigint(21) YES NULL +ROW_FORMAT varchar(10) YES NULL +TABLE_ROWS bigint(21) YES NULL +AVG_ROW_LENGTH bigint(21) YES NULL +DATA_LENGTH bigint(21) YES NULL +MAX_DATA_LENGTH bigint(21) YES NULL +INDEX_LENGTH bigint(21) YES NULL +DATA_FREE bigint(21) YES NULL +AUTO_INCREMENT bigint(21) YES NULL +CREATE_TIME datetime YES NULL +UPDATE_TIME datetime YES NULL +CHECK_TIME datetime YES NULL +TABLE_COLLATION varchar(64) YES NULL +CHECKSUM bigint(21) YES NULL +CREATE_OPTIONS varchar(255) YES NULL +TABLE_COMMENT varchar(80) NO +SELECT table_catalog, table_schema, table_name +FROM information_schema.tables WHERE table_catalog IS NOT NULL; +table_catalog table_schema table_name +################################################################################ +# Testcase 3.2.12.2 + 3.2.12.3: INFORMATION_SCHEMA.TABLES accessible information +################################################################################ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.* +TO 'testuser1'@'localhost' WITH GRANT OPTION; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +CREATE TABLE db_datadict.tb1 (f1 INT, f2 INT, f3 INT) +ENGINE = ; +GRANT SELECT ON db_datadict.tb1 TO 'testuser1'@'localhost'; +GRANT ALL ON db_datadict.tb1 TO 'testuser2'@'localhost' WITH GRANT OPTION; +# Establish connection testuser1 (user=testuser1) +CREATE TABLE tb2 (f1 DECIMAL) +ENGINE = ; +CREATE TABLE tb3 (f1 VARCHAR(200)) +ENGINE = ; +GRANT SELECT ON db_datadict.tb3 to 'testuser3'@'localhost'; +GRANT INSERT ON db_datadict.tb3 to 'testuser2'@'localhost'; +CREATE VIEW v3 AS SELECT * FROM tb3; +GRANT SELECT ON db_datadict.v3 to 'testuser3'@'localhost'; +SELECT * FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT +NULL db_datadict tb1 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict tb2 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict v3 VIEW #ENG# NULL #RF# NULL #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# NULL #CS# NULL VIEW +SHOW TABLES FROM db_datadict; +Tables_in_db_datadict +tb1 +tb2 +tb3 +v3 +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT +NULL db_datadict tb1 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +SHOW TABLES FROM db_datadict; +Tables_in_db_datadict +tb1 +tb3 +# Establish connection testuser3 (user=testuser3) +SELECT * FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT +NULL db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict v3 VIEW #ENG# NULL #RF# NULL #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# NULL #CS# NULL VIEW +SHOW TABLES FROM db_datadict; +Tables_in_db_datadict +tb3 +v3 +# Switch to connection default (user=root) +SELECT * FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT +NULL db_datadict tb1 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict tb2 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict tb3 BASE TABLE #ENG# 10 #RF# 0 #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# latin1_swedish_ci #CS# +NULL db_datadict v3 VIEW #ENG# NULL #RF# NULL #ARL# #DL# #MDL# #IL# #DF# NULL #CRT #UT# #CT# NULL #CS# NULL VIEW +SHOW TABLES FROM db_datadict; +Tables_in_db_datadict +tb1 +tb2 +tb3 +v3 +# Close connection testuser1, testuser2, testuser3 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE db_datadict; +######################################################################### +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLES modifications +######################################################################### +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +table_name +CREATE TABLE test.t1_my_table (f1 BIGINT) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +COMMENT = 'Initial Comment' ENGINE = ; +SELECT * FROM information_schema.tables +WHERE table_name = 't1_my_table'; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1_my_table +TABLE_TYPE BASE TABLE +ENGINE #ENG# +VERSION 10 +ROW_FORMAT #RF# +TABLE_ROWS 0 +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM #CS# +CREATE_OPTIONS +TABLE_COMMENT Initial Comment +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_table +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_tablex +SELECT table_schema,table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_schema table_name +test t1_my_tablex +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT table_schema,table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_schema table_name +db_datadict t1_my_tablex +SELECT table_name, engine FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name engine +t1_my_tablex +ALTER TABLE db_datadict.t1_my_tablex +ENGINE = ; +SELECT table_name, engine FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name engine +t1_my_tablex +SELECT table_name, table_rows FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name table_rows +t1_my_tablex 0 +INSERT INTO db_datadict.t1_my_tablex VALUES(1),(2); +SELECT table_name, table_rows FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name table_rows +t1_my_tablex 2 +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name table_collation +t1_my_tablex latin1_swedish_ci +ALTER TABLE db_datadict.t1_my_tablex DEFAULT CHARACTER SET utf8; +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name table_collation +t1_my_tablex utf8_general_ci +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name table_collation +t1_my_tablex utf8_general_ci +ALTER TABLE db_datadict.t1_my_tablex +DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci; +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name table_collation +t1_my_tablex latin1_german1_ci +SELECT table_name, TABLE_COMMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name TABLE_COMMENT +t1_my_tablex Initial Comment +ALTER TABLE db_datadict.t1_my_tablex COMMENT 'Changed Comment'; +SELECT table_name, TABLE_COMMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name TABLE_COMMENT +t1_my_tablex Changed Comment +SELECT table_name, AUTO_INCREMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name AUTO_INCREMENT +t1_my_tablex NULL +ALTER TABLE db_datadict.t1_my_tablex +ADD f2 BIGINT AUTO_INCREMENT, ADD PRIMARY KEY (f2); +SELECT table_name, AUTO_INCREMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name AUTO_INCREMENT +t1_my_tablex 3 +SELECT table_name, ROW_FORMAT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name ROW_FORMAT +t1_my_tablex Fixed +ALTER TABLE db_datadict.t1_my_tablex ROW_FORMAT = dynamic; +SELECT table_name, ROW_FORMAT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name ROW_FORMAT +t1_my_tablex Dynamic +SELECT table_name, checksum FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name checksum +t1_my_tablex NULL +ALTER TABLE db_datadict.t1_my_tablex CHECKSUM = 1; +SELECT table_name, checksum IS NOT NULL FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name checksum IS NOT NULL +t1_my_tablex 1 +SELECT UPDATE_TIME, checksum INTO @UPDATE_TIME, @checksum +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +INSERT INTO db_datadict.t1_my_tablex SET f1 = 3; +SELECT UPDATE_TIME > @UPDATE_TIME +AS "Is current UPDATE_TIME bigger than before last INSERT?" +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +Is current UPDATE_TIME bigger than before last INSERT? +1 +SELECT checksum <> @checksum +AS "Is current CHECKSUM different than before last INSERT?" +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +Is current CHECKSUM different than before last INSERT? +1 +SELECT CREATE_TIME INTO @CREATE_TIME FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +table_name +t1_my_tablex +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +table_name +CREATE TABLE test.t1_my_tablex (f1 BIGINT) +ENGINE = ; +SELECT CREATE_TIME > @CREATE_TIME +AS "Is current CREATE_TIME bigger than for the old dropped table?" +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +Is current CREATE_TIME bigger than for the old dropped table? +1 +DROP TABLE test.t1_my_tablex; +CREATE VIEW test.t1_my_tablex AS SELECT 1; +SELECT * FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1_my_tablex +TABLE_TYPE VIEW +ENGINE NULL +VERSION NULL +ROW_FORMAT NULL +TABLE_ROWS NULL +AVG_ROW_LENGTH NULL +DATA_LENGTH NULL +MAX_DATA_LENGTH NULL +INDEX_LENGTH NULL +DATA_FREE NULL +AUTO_INCREMENT NULL +CREATE_TIME NULL +UPDATE_TIME NULL +CHECK_TIME NULL +TABLE_COLLATION NULL +CHECKSUM NULL +CREATE_OPTIONS NULL +TABLE_COMMENT VIEW +DROP VIEW test.t1_my_tablex; +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name +CREATE TEMPORARY TABLE test.t1_my_tablex +ENGINE = +AS SELECT 1; +SELECT table_name, table_type FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +DROP TEMPORARY TABLE test.t1_my_tablex; +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = AS +SELECT 1; +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name +t1_my_tablex +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +table_name +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = ; +INSERT INTO information_schema.tables +SELECT * FROM information_schema.tables; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.tables SET table_schema = 'test' +WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.tables WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.tables; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx_on_tables ON information_schema.tables(table_schema); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.tables DROP PRIMARY KEY; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.tables ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.tables; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.tables RENAME db_datadict.tables; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.tables RENAME information_schema.xtables; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_tables_innodb.result b/mysql-test/suite/funcs_1/r/is_tables_innodb.result new file mode 100644 index 00000000000..fccf1cf5cb9 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_tables_innodb.result @@ -0,0 +1,1063 @@ +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +drop table if exists tb1 ; +create table tb1 ( +f1 char(0), +f2 char(0) binary, +f3 char(0) ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, +f9 blob, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal, +f34 decimal unsigned, +f35 decimal zerofill, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, +f58 numeric (64) not null DEFAULT 99 +) engine = innodb; +Warnings: +Note 1265 Data truncated for column 'f36' at row 1 +Note 1265 Data truncated for column 'f37' at row 1 +Note 1265 Data truncated for column 'f38' at row 1 +Note 1265 Data truncated for column 'f39' at row 1 +Note 1265 Data truncated for column 'f40' at row 1 +Note 1265 Data truncated for column 'f41' at row 1 +Note 1265 Data truncated for column 'f42' at row 1 +Note 1265 Data truncated for column 'f43' at row 1 +Note 1265 Data truncated for column 'f44' at row 1 +Note 1265 Data truncated for column 'f45' at row 1 +Note 1265 Data truncated for column 'f47' at row 1 +Note 1265 Data truncated for column 'f49' at row 1 +Note 1265 Data truncated for column 'f51' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = innodb; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +drop table if exists tb3 ; +create table tb3 ( +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) +) engine = innodb; +Warnings: +Note 1265 Data truncated for column 'f150' at row 1 +Note 1265 Data truncated for column 'f151' at row 1 +Note 1265 Data truncated for column 'f152' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +drop table if exists tb4; +create table tb4 ( +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f235 char(0) unicode, +f236 char(90), +f237 char(255) ascii, +f238 varchar(0), +f239 varchar(20000) binary, +f240 varchar(2000) unicode, +f241 char(100) unicode +) engine = innodb; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ; +USE test1; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = innodb; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = InnoDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb1 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb3 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb4 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test1 +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test4 +TABLE_NAME t6 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +# Establish connection testuser1 (user=testuser1) +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb1 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb3 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb4 +TABLE_TYPE BASE TABLE +ENGINE InnoDB +VERSION 10 +ROW_FORMAT Compact +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; +DROP TABLE test.tb1; +DROP TABLE test.tb2; +DROP TABLE test.tb3; +DROP TABLE test.tb4; diff --git a/mysql-test/suite/funcs_1/r/is_tables_is.result b/mysql-test/suite/funcs_1/r/is_tables_is.result new file mode 100644 index 00000000000..78193155e22 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_tables_is.result @@ -0,0 +1,771 @@ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema = 'information_schema' +AND table_name <> 'profiling' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME CHARACTER_SETS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLLATIONS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLUMNS +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLUMN_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME KEY_COLUMN_USAGE +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME ROUTINES +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME SCHEMATA +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME SCHEMA_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME STATISTICS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TABLES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TABLE_CONSTRAINTS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TABLE_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TRIGGERS +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME USER_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME VIEWS +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +# Establish connection testuser1 (user=testuser1) +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema = 'information_schema' +AND table_name <> 'profiling' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME CHARACTER_SETS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLLATIONS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLUMNS +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME COLUMN_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME KEY_COLUMN_USAGE +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME ROUTINES +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME SCHEMATA +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME SCHEMA_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME STATISTICS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TABLES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TABLE_CONSTRAINTS +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TABLE_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME TRIGGERS +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME USER_PRIVILEGES +TABLE_TYPE SYSTEM VIEW +ENGINE MEMORY +VERSION 0 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA information_schema +TABLE_NAME VIEWS +TABLE_TYPE SYSTEM VIEW +ENGINE MyISAM +VERSION 0 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_tables_memory.result b/mysql-test/suite/funcs_1/r/is_tables_memory.result new file mode 100644 index 00000000000..db3f40bf8a0 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_tables_memory.result @@ -0,0 +1,1052 @@ +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +drop table if exists tb1 ; +create table tb1 ( +f1 char, +f2 char binary, +f3 char ascii, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, +f58 numeric (64) not null DEFAULT 99 +) engine = memory; +Warnings: +Note 1265 Data truncated for column 'f33' at row 1 +Note 1265 Data truncated for column 'f34' at row 1 +Note 1265 Data truncated for column 'f35' at row 1 +Note 1265 Data truncated for column 'f36' at row 1 +Note 1265 Data truncated for column 'f37' at row 1 +Note 1265 Data truncated for column 'f38' at row 1 +Note 1265 Data truncated for column 'f39' at row 1 +Note 1265 Data truncated for column 'f40' at row 1 +Note 1265 Data truncated for column 'f41' at row 1 +Note 1265 Data truncated for column 'f42' at row 1 +Note 1265 Data truncated for column 'f43' at row 1 +Note 1265 Data truncated for column 'f44' at row 1 +Note 1265 Data truncated for column 'f45' at row 1 +Note 1265 Data truncated for column 'f47' at row 1 +Note 1265 Data truncated for column 'f49' at row 1 +Note 1265 Data truncated for column 'f51' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = memory; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +drop table if exists tb3; +create table tb3 ( +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) +) engine = memory; +Warnings: +Note 1265 Data truncated for column 'f150' at row 1 +Note 1265 Data truncated for column 'f151' at row 1 +Note 1265 Data truncated for column 'f152' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +drop table if exists tb4 ; +create table tb4 ( +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f236 char(95) unicode, +f241 char(255) unicode, +f237 char(130) binary, +f238 varchar(25000) binary, +f239 varbinary(0), +f240 varchar(1200) unicode +) engine = memory; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ; +USE test1; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set" +) engine = memory; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MEMORY; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb1 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb3 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb4 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test1 +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test4 +TABLE_NAME t6 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +# Establish connection testuser1 (user=testuser1) +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb1 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb3 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb4 +TABLE_TYPE BASE TABLE +ENGINE MEMORY +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; +DROP TABLE test.tb1; +DROP TABLE test.tb2; +DROP TABLE test.tb3; +DROP TABLE test.tb4; diff --git a/mysql-test/suite/funcs_1/r/is_tables_myisam.result b/mysql-test/suite/funcs_1/r/is_tables_myisam.result new file mode 100644 index 00000000000..27fed7591ac --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_tables_myisam.result @@ -0,0 +1,1092 @@ +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +drop table if exists tb1 ; +create table tb1 ( +f1 char, +f2 char binary, +f3 char ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, +f9 blob, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, +f58 numeric (64) not null DEFAULT 99 +) engine = myisam; +Warnings: +Note 1265 Data truncated for column 'f33' at row 1 +Note 1265 Data truncated for column 'f34' at row 1 +Note 1265 Data truncated for column 'f35' at row 1 +Note 1265 Data truncated for column 'f36' at row 1 +Note 1265 Data truncated for column 'f37' at row 1 +Note 1265 Data truncated for column 'f38' at row 1 +Note 1265 Data truncated for column 'f39' at row 1 +Note 1265 Data truncated for column 'f40' at row 1 +Note 1265 Data truncated for column 'f41' at row 1 +Note 1265 Data truncated for column 'f42' at row 1 +Note 1265 Data truncated for column 'f43' at row 1 +Note 1265 Data truncated for column 'f44' at row 1 +Note 1265 Data truncated for column 'f45' at row 1 +Note 1265 Data truncated for column 'f47' at row 1 +Note 1265 Data truncated for column 'f49' at row 1 +Note 1265 Data truncated for column 'f51' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set", +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null +) engine = myisam; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +drop table if exists tb3 ; +create table tb3 ( +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) +) Engine = myisam; +Warnings: +Note 1265 Data truncated for column 'f150' at row 1 +Note 1265 Data truncated for column 'f151' at row 1 +Note 1265 Data truncated for column 'f152' at row 1 +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +drop table if exists tb4 ; +create table tb4 ( +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f227 VARBINARY(64), +f228 VARBINARY(27), +f229 VARBINARY(64), +f230 VARBINARY(192), +f231 VARBINARY(192), +f232 VARBINARY(27), +f233 VARBINARY(64), +f234 VARBINARY(192), +f235 char(255) unicode, +f236 char(60) ascii, +f237 char(255) binary, +f238 varchar(0) binary, +f239 varbinary(1000), +f240 varchar(120) unicode, +f241 char(100) unicode, +f242 bit(30) +) engine = myisam; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ; +USE test1; +drop table if exists tb2 ; +create table tb2 ( +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", +f109 set("1set","2set") not null default "1set", +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null +) engine = myisam; +load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MyISAM; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb1 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb3 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb4 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test1 +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test4 +TABLE_NAME t6 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +# Establish connection testuser1 (user=testuser1) +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb1 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb2 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb3 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME tb4 +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; +DROP TABLE test.tb1; +DROP TABLE test.tb2; +DROP TABLE test.tb3; +DROP TABLE test.tb4; diff --git a/mysql-test/suite/funcs_1/r/is_tables_mysql.result b/mysql-test/suite/funcs_1/r/is_tables_mysql.result new file mode 100644 index 00000000000..d407f224b7d --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_tables_mysql.result @@ -0,0 +1,424 @@ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema = 'mysql' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME columns_priv +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_bin +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Column privileges +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME db +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_bin +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Database privileges +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME func +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_bin +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment User defined functions +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME help_category +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment help categories +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME help_keyword +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment help keywords +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME help_relation +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment keyword-topic relation +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME help_topic +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment help topics +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME host +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_bin +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Host privileges; Merged with database privileges +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME proc +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Stored Procedures +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME procs_priv +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_bin +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Procedure privileges +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME tables_priv +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_bin +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Table privileges +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME time_zone +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT 6 +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Time zones +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME time_zone_leap_second +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Leap seconds information for time zones +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME time_zone_name +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Time zone names +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME time_zone_transition +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Time zone transitions +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME time_zone_transition_type +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_general_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Time zone transition types +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA mysql +TABLE_NAME user +TABLE_TYPE BASE TABLE +ENGINE MyISAM +VERSION 10 +ROW_FORMAT Dynamic +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION utf8_bin +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment Users and global privileges +Separator ----------------------------------------------------- +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +# Establish connection testuser1 (user=testuser1) +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema = 'mysql' +ORDER BY table_schema,table_name; +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_tables_ndb.result b/mysql-test/suite/funcs_1/r/is_tables_ndb.result new file mode 100644 index 00000000000..5b9863a4673 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_tables_ndb.result @@ -0,0 +1,560 @@ +SET @NO_REFRESH = IF( '' = '', 0, 1); +DROP DATABASE IF EXISTS test1; +CREATE DATABASE test1; +USE test; +USE test; +USE test; +DROP TABLE IF EXISTS t1, t2, t4, t10, t11; +CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; +CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; +CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; +CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; +CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +drop TABLE if exists t3; +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = NDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +drop database if exists test4; +CREATE database test4; +use test4; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +use test; +drop TABLE if exists t7, t8; +CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = NDB; +CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = NDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +Warnings: +Warning 1265 Data truncated for column 'f3' at row 1 +Warning 1265 Data truncated for column 'f3' at row 2 +Warning 1265 Data truncated for column 'f3' at row 3 +Warning 1265 Data truncated for column 'f3' at row 4 +Warning 1265 Data truncated for column 'f3' at row 5 +Warning 1265 Data truncated for column 'f3' at row 6 +Warning 1265 Data truncated for column 'f3' at row 7 +Warning 1265 Data truncated for column 'f3' at row 8 +Warning 1265 Data truncated for column 'f3' at row 9 +Warning 1265 Data truncated for column 'f3' at row 10 +drop TABLE if exists t9; +CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = NDB; +LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test4 +TABLE_NAME t6 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +DROP USER testuser1@localhost; +CREATE USER testuser1@localhost; +GRANT SELECT ON db_datadict.* TO testuser1@localhost; +# Establish connection testuser1 (user=testuser1) +SELECT *, +LEFT( table_comment, +IF(INSTR(table_comment,'InnoDB free') = 0 +AND INSTR(table_comment,'number_of_replicas') = 0, +LENGTH(table_comment), +INSTR(table_comment,'InnoDB free') ++ INSTR(table_comment,'number_of_replicas') - 1)) +AS "user_comment", +'-----------------------------------------------------' AS "Separator" +FROM information_schema.tables +WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE' +ORDER BY table_schema,table_name; +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t1 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t10 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t11 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t2 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t3 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t4 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t7 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t8 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test +TABLE_NAME t9 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +TABLE_CATALOG NULL +TABLE_SCHEMA test4 +TABLE_NAME t6 +TABLE_TYPE BASE TABLE +ENGINE ndbcluster +VERSION 10 +ROW_FORMAT Fixed +TABLE_ROWS #TBLR# +AVG_ROW_LENGTH #ARL# +DATA_LENGTH #DL# +MAX_DATA_LENGTH #MDL# +INDEX_LENGTH #IL# +DATA_FREE #DF# +AUTO_INCREMENT NULL +CREATE_TIME #CRT# +UPDATE_TIME #UT# +CHECK_TIME #CT# +TABLE_COLLATION latin1_swedish_ci +CHECKSUM NULL +CREATE_OPTIONS #CO# +TABLE_COMMENT #TC# +user_comment +Separator ----------------------------------------------------- +# Switch to connection default and close connection testuser1 +DROP USER testuser1@localhost; +DROP DATABASE db_datadict; +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; diff --git a/mysql-test/suite/funcs_1/r/is_triggers.result b/mysql-test/suite/funcs_1/r/is_triggers.result new file mode 100644 index 00000000000..77bd2d8b670 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_triggers.result @@ -0,0 +1,212 @@ +SHOW TABLES FROM information_schema LIKE 'TRIGGERS'; +Tables_in_information_schema (TRIGGERS) +TRIGGERS +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.TRIGGERS; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.TRIGGERS; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.TRIGGERS; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.TRIGGERS; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.12.1: INFORMATION_SCHEMA.TRIGGERS layout +######################################################################### +DESCRIBE information_schema.TRIGGERS; +Field Type Null Key Default Extra +TRIGGER_CATALOG varchar(512) YES NULL +TRIGGER_SCHEMA varchar(64) NO +TRIGGER_NAME varchar(64) NO +EVENT_MANIPULATION varchar(6) NO +EVENT_OBJECT_CATALOG varchar(512) YES NULL +EVENT_OBJECT_SCHEMA varchar(64) NO +EVENT_OBJECT_TABLE varchar(64) NO +ACTION_ORDER bigint(4) NO 0 +ACTION_CONDITION longtext YES NULL +ACTION_STATEMENT longtext NO NULL +ACTION_ORIENTATION varchar(9) NO +ACTION_TIMING varchar(6) NO +ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL +ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL +ACTION_REFERENCE_OLD_ROW varchar(3) NO +ACTION_REFERENCE_NEW_ROW varchar(3) NO +CREATED datetime YES NULL +SQL_MODE longtext NO NULL +DEFINER longtext NO NULL +SHOW CREATE TABLE information_schema.TRIGGERS; +Table Create Table +TRIGGERS CREATE TEMPORARY TABLE `TRIGGERS` ( + `TRIGGER_CATALOG` varchar(512) default NULL, + `TRIGGER_SCHEMA` varchar(64) NOT NULL default '', + `TRIGGER_NAME` varchar(64) NOT NULL default '', + `EVENT_MANIPULATION` varchar(6) NOT NULL default '', + `EVENT_OBJECT_CATALOG` varchar(512) default NULL, + `EVENT_OBJECT_SCHEMA` varchar(64) NOT NULL default '', + `EVENT_OBJECT_TABLE` varchar(64) NOT NULL default '', + `ACTION_ORDER` bigint(4) NOT NULL default '0', + `ACTION_CONDITION` longtext, + `ACTION_STATEMENT` longtext NOT NULL, + `ACTION_ORIENTATION` varchar(9) NOT NULL default '', + `ACTION_TIMING` varchar(6) NOT NULL default '', + `ACTION_REFERENCE_OLD_TABLE` varchar(64) default NULL, + `ACTION_REFERENCE_NEW_TABLE` varchar(64) default NULL, + `ACTION_REFERENCE_OLD_ROW` varchar(3) NOT NULL default '', + `ACTION_REFERENCE_NEW_ROW` varchar(3) NOT NULL default '', + `CREATED` datetime default NULL, + `SQL_MODE` longtext NOT NULL, + `DEFINER` longtext NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.TRIGGERS; +Field Type Null Key Default Extra +TRIGGER_CATALOG varchar(512) YES NULL +TRIGGER_SCHEMA varchar(64) NO +TRIGGER_NAME varchar(64) NO +EVENT_MANIPULATION varchar(6) NO +EVENT_OBJECT_CATALOG varchar(512) YES NULL +EVENT_OBJECT_SCHEMA varchar(64) NO +EVENT_OBJECT_TABLE varchar(64) NO +ACTION_ORDER bigint(4) NO 0 +ACTION_CONDITION longtext YES NULL +ACTION_STATEMENT longtext NO NULL +ACTION_ORIENTATION varchar(9) NO +ACTION_TIMING varchar(6) NO +ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL +ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL +ACTION_REFERENCE_OLD_ROW varchar(3) NO +ACTION_REFERENCE_NEW_ROW varchar(3) NO +CREATED datetime YES NULL +SQL_MODE longtext NO NULL +DEFINER longtext NO NULL +SELECT * FROM information_schema.triggers +WHERE trigger_catalog IS NOT NULL OR event_object_catalog IS NOT NULL +OR action_condition IS NOT NULL OR action_reference_old_table IS NOT NULL +OR action_reference_new_table IS NOT NULL; +TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER +################################################################################## +# Testcase 3.2.18.2 + 3.2.18.3: INFORMATION_SCHEMA.TRIGGERS accessible information +################################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +DROP USER 'testuser4'@'localhost'; +CREATE USER 'testuser4'@'localhost'; +GRANT SUPER ON *.* TO 'testuser1'@'localhost'; +GRANT SUPER ON *.* TO 'testuser3'@'localhost'; +GRANT SUPER ON *.* TO 'testuser4'@'localhost'; +GRANT ALL ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +# Establish connection testuser1 (user=testuser1) +CREATE TABLE db_datadict.t1 (f1 INT, f2 INT, f3 INT) +ENGINE = ; +CREATE TRIGGER trg1 BEFORE INSERT +ON db_datadict.t1 FOR EACH ROW SET @test_before = 2, new.f1 = @test_before; +GRANT ALL ON db_datadict.t1 TO 'testuser2'@'localhost'; +GRANT SELECT ON db_datadict.t1 TO 'testuser3'@'localhost'; +SELECT * FROM information_schema.triggers +WHERE trigger_name = 'trg1'; +TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER +NULL db_datadict trg1 INSERT NULL db_datadict t1 0 NULL SET @test_before = 2, new.f1 = @test_before ROW BEFORE NULL NULL OLD NEW NULL testuser1@localhost +SHOW TRIGGERS FROM db_datadict; +Trigger Event Table Statement Timing Created sql_mode Definer +trg1 INSERT t1 SET @test_before = 2, new.f1 = @test_before BEFORE NULL testuser1@localhost +# Establish connection testuser2 (user=testuser2) +SHOW GRANTS FOR 'testuser2'@'localhost'; +Grants for testuser2@localhost +GRANT USAGE ON *.* TO 'testuser2'@'localhost' +GRANT ALL PRIVILEGES ON `db_datadict`.`t1` TO 'testuser2'@'localhost' +# No SUPER Privilege --> no result for query +SELECT * FROM information_schema.triggers +WHERE trigger_name = 'trg1'; +TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER +SHOW TRIGGERS FROM db_datadict; +Trigger Event Table Statement Timing Created sql_mode Definer +# Establish connection testuser3 (user=testuser3) +SHOW GRANTS FOR 'testuser3'@'localhost'; +Grants for testuser3@localhost +GRANT SUPER ON *.* TO 'testuser3'@'localhost' +GRANT SELECT ON `db_datadict`.`t1` TO 'testuser3'@'localhost' +# SUPER Privilege + SELECT Privilege on t1 --> result for query +SELECT * FROM information_schema.triggers +WHERE trigger_name = 'trg1'; +TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER +NULL db_datadict trg1 INSERT NULL db_datadict t1 0 NULL SET @test_before = 2, new.f1 = @test_before ROW BEFORE NULL NULL OLD NEW NULL testuser1@localhost +SHOW TRIGGERS FROM db_datadict; +Trigger Event Table Statement Timing Created sql_mode Definer +trg1 INSERT t1 SET @test_before = 2, new.f1 = @test_before BEFORE NULL testuser1@localhost +# Establish connection testuser4 (user=testuser4) +SHOW GRANTS FOR 'testuser4'@'localhost'; +Grants for testuser4@localhost +GRANT SUPER ON *.* TO 'testuser4'@'localhost' +# SUPER Privilege + no SELECT Privilege on t1 --> no result for query +SELECT * FROM information_schema.triggers +WHERE trigger_name = 'trg1'; +TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER +SHOW TRIGGERS FROM db_datadict; +Trigger Event Table Statement Timing Created sql_mode Definer +# Switch to connection default and close connections testuser1 - testuser4 +SELECT * FROM information_schema.triggers +WHERE trigger_name = 'trg1'; +TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER +NULL db_datadict trg1 INSERT NULL db_datadict t1 0 NULL SET @test_before = 2, new.f1 = @test_before ROW BEFORE NULL NULL OLD NEW NULL testuser1@localhost +SHOW TRIGGERS FROM db_datadict; +Trigger Event Table Statement Timing Created sql_mode Definer +trg1 INSERT t1 SET @test_before = 2, new.f1 = @test_before BEFORE NULL testuser1@localhost +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP USER 'testuser4'@'localhost'; +DROP DATABASE db_datadict; +######################################################################### +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TRIGGERS modifications +######################################################################### +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = ; +CREATE TRIGGER db_datadict.trg1 BEFORE INSERT +ON db_datadict.t1 FOR EACH ROW SET @test_before = 2, new.f1 = @test_before; +INSERT INTO information_schema.triggers +SELECT * FROM information_schema.triggers; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.triggers SET trigger_schema = 'test' +WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.triggers WHERE trigger_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.triggers; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx_on_triggers ON information_schema.triggers(trigger_schema); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.triggers DROP PRIMARY KEY; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.triggers ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.triggers; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.triggers RENAME db_datadict.triggers; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.triggers RENAME information_schema.xtriggers; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/is_user_privileges.result b/mysql-test/suite/funcs_1/r/is_user_privileges.result new file mode 100644 index 00000000000..f5fa1f858a1 --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_user_privileges.result @@ -0,0 +1,400 @@ +SHOW TABLES FROM information_schema LIKE 'USER_PRIVILEGES'; +Tables_in_information_schema (USER_PRIVILEGES) +USER_PRIVILEGES +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.USER_PRIVILEGES; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.USER_PRIVILEGES; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.USER_PRIVILEGES; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.USER_PRIVILEGES; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.16.1: INFORMATION_SCHEMA.USER_PRIVILEGES layout +######################################################################### +DESCRIBE information_schema.USER_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SHOW CREATE TABLE information_schema.USER_PRIVILEGES; +Table Create Table +USER_PRIVILEGES CREATE TEMPORARY TABLE `USER_PRIVILEGES` ( + `GRANTEE` varchar(81) NOT NULL default '', + `TABLE_CATALOG` varchar(512) default NULL, + `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', + `IS_GRANTABLE` varchar(3) NOT NULL default '' +) ENGINE=MEMORY DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.USER_PRIVILEGES; +Field Type Null Key Default Extra +GRANTEE varchar(81) NO +TABLE_CATALOG varchar(512) YES NULL +PRIVILEGE_TYPE varchar(64) NO +IS_GRANTABLE varchar(3) NO +SELECT grantee, table_catalog, privilege_type +FROM information_schema.user_privileges +WHERE table_catalog IS NOT NULL; +grantee table_catalog privilege_type +########################################################################## +# Testcases 3.2.16.2+3.2.16.3+3.2.16.4: INFORMATION_SCHEMA.USER_PRIVILEGES +# accessible information +########################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +GRANT SELECT ON mysql.user TO 'testuser1'@'localhost'; +GRANT INSERT ON *.* TO 'testuser2'@'localhost'; +GRANT UPDATE ON *.* TO 'testuser2'@'localhost'; +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +'testuser2'@'localhost' NULL INSERT NO +'testuser2'@'localhost' NULL UPDATE NO +'testuser3'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +# +# Add GRANT OPTION db_datadict.* to testuser1; +GRANT UPDATE ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +'testuser2'@'localhost' NULL INSERT NO +'testuser2'@'localhost' NULL UPDATE NO +'testuser3'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +SHOW GRANTS; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT, UPDATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT SELECT ON `mysql`.`user` TO 'testuser1'@'localhost' + +# Now add SELECT on *.* to testuser1; +# Switch to connection default +GRANT SELECT ON *.* TO 'testuser1'@'localhost'; +# +# Here is shown correctly for testuser1; +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL SELECT YES +'testuser2'@'localhost' NULL INSERT NO +'testuser2'@'localhost' NULL UPDATE NO +'testuser3'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +# Switch to connection testuser1 +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL SELECT YES +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +SHOW GRANTS; +Grants for testuser1@localhost +GRANT SELECT ON *.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT SELECT, UPDATE ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT SELECT ON `mysql`.`user` TO 'testuser1'@'localhost' +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser2'@'localhost' NULL INSERT NO +'testuser2'@'localhost' NULL UPDATE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'user' +SHOW GRANTS; +Grants for testuser2@localhost +GRANT INSERT, UPDATE ON *.* TO 'testuser2'@'localhost' +# Establish connection testuser3 (user=testuser3) +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser3'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +ERROR 42000: SELECT command denied to user 'testuser3'@'localhost' for table 'user' +SHOW GRANTS; +Grants for testuser3@localhost +GRANT USAGE ON *.* TO 'testuser3'@'localhost' + +# Revoke privileges from testuser1; +# Switch to connection default +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'testuser1'@'localhost'; +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +'testuser2'@'localhost' NULL INSERT NO +'testuser2'@'localhost' NULL UPDATE NO +'testuser3'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +# Switch to connection testuser1 +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'user' +SHOW GRANTS; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); +ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_55' +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'user' +SHOW GRANTS; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); +ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_66' + +# Add ALL on db_datadict.* (and select on mysql.user) to testuser1; +# Switch to connection default +GRANT ALL ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT ON mysql.user TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +'testuser2'@'localhost' NULL INSERT NO +'testuser2'@'localhost' NULL UPDATE NO +'testuser3'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +# Switch to connection testuser1 +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +SHOW GRANTS; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT SELECT ON `mysql`.`user` TO 'testuser1'@'localhost' +CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); +ERROR 42000: CREATE command denied to user 'testuser1'@'localhost' for table 'tb_56' +USE db_datadict; +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +SHOW GRANTS; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'testuser1'@'localhost' WITH GRANT OPTION +GRANT SELECT ON `mysql`.`user` TO 'testuser1'@'localhost' +CREATE TABLE tb_57 ( c1 TEXT ) +ENGINE = ; + +# Revoke privileges from testuser1; +# Switch to connection default +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'testuser1'@'localhost'; +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +'testuser2'@'localhost' NULL INSERT NO +'testuser2'@'localhost' NULL UPDATE NO +'testuser3'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections +localhost testuser1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +localhost testuser3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 +# Switch to connection testuser1 +SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 'user' +SHOW GRANTS; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +CREATE TABLE db_datadict.tb_58 ( c1 TEXT ) +ENGINE = ; +USE db_datadict; +ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'db_datadict' +CREATE TABLE db_datadict.tb_59 ( c1 TEXT ) +ENGINE = ; +# Switch to connection default and close connections testuser1,testuser2,testuser3 +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE IF EXISTS db_datadict; +######################################################################################## +# Testcases 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.USER_PRIVILEGES modifications +######################################################################################## +SELECT * FROM information_schema.user_privileges +WHERE grantee = '''testuser1''@''localhost'''; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +SHOW GRANTS FOR 'testuser1'@'localhost'; +ERROR 42000: There is no such grant defined for user 'testuser1' on host 'localhost' +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +SELECT * FROM information_schema.user_privileges +WHERE grantee = '''testuser1''@''localhost'''; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL USAGE NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT USAGE ON *.* TO 'testuser1'@'localhost' +GRANT SELECT, FILE ON *.* TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.user_privileges +WHERE grantee = '''testuser1''@''localhost'''; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +'testuser1'@'localhost' NULL SELECT NO +'testuser1'@'localhost' NULL FILE NO +SHOW GRANTS FOR 'testuser1'@'localhost'; +Grants for testuser1@localhost +GRANT SELECT, FILE ON *.* TO 'testuser1'@'localhost' +DROP USER 'testuser1'@'localhost'; +SELECT * FROM information_schema.user_privileges +WHERE grantee = '''testuser1''@''localhost'''; +GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE +SHOW GRANTS FOR 'testuser1'@'localhost'; +ERROR 42000: There is no such grant defined for user 'testuser1' on host 'localhost' +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA tables are not supported +######################################################################## +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +INSERT INTO information_schema.user_privileges +SELECT * FROM information_schema.user_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.user_privileges +SET PRIVILEGE_TYPE = 'gaming'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.user_privileges +WHERE grantee = '''testuser1''@''localhost'''; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.user_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX i1 ON information_schema.user_privileges(grantee); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.user_privileges ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.user_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.user_privileges +RENAME db_datadict.user_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.user_privileges +RENAME information_schema.xuser_privileges; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP USER 'testuser1'@'localhost'; diff --git a/mysql-test/suite/funcs_1/r/is_views.result b/mysql-test/suite/funcs_1/r/is_views.result new file mode 100644 index 00000000000..b6fe00e30ae --- /dev/null +++ b/mysql-test/suite/funcs_1/r/is_views.result @@ -0,0 +1,238 @@ +SHOW TABLES FROM information_schema LIKE 'VIEWS'; +Tables_in_information_schema (VIEWS) +VIEWS +####################################################################### +# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +####################################################################### +DROP VIEW IF EXISTS test.v1; +DROP PROCEDURE IF EXISTS test.p1; +DROP FUNCTION IF EXISTS test.f1; +CREATE VIEW test.v1 AS SELECT * FROM information_schema.VIEWS; +CREATE PROCEDURE test.p1() SELECT * FROM information_schema.VIEWS; +CREATE FUNCTION test.f1() returns BIGINT +BEGIN +DECLARE counter BIGINT DEFAULT NULL; +SELECT COUNT(*) INTO counter FROM information_schema.VIEWS; +RETURN counter; +END// +# Attention: The printing of the next result sets is disabled. +SELECT * FROM information_schema.VIEWS; +SELECT * FROM test.v1; +CALL test.p1; +SELECT test.f1(); +DROP VIEW test.v1; +DROP PROCEDURE test.p1; +DROP FUNCTION test.f1; +######################################################################### +# Testcase 3.2.13.1: INFORMATION_SCHEMA.VIEWS layout +######################################################################### +DESCRIBE information_schema.VIEWS; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +VIEW_DEFINITION longtext NO NULL +CHECK_OPTION varchar(8) NO +IS_UPDATABLE varchar(3) NO +DEFINER varchar(77) NO +SECURITY_TYPE varchar(7) NO +SHOW CREATE TABLE information_schema.VIEWS; +Table Create Table +VIEWS CREATE TEMPORARY TABLE `VIEWS` ( + `TABLE_CATALOG` varchar(512) default NULL, + `TABLE_SCHEMA` varchar(64) NOT NULL default '', + `TABLE_NAME` varchar(64) NOT NULL default '', + `VIEW_DEFINITION` longtext NOT NULL, + `CHECK_OPTION` varchar(8) NOT NULL default '', + `IS_UPDATABLE` varchar(3) NOT NULL default '', + `DEFINER` varchar(77) NOT NULL default '', + `SECURITY_TYPE` varchar(7) NOT NULL default '' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 +SHOW COLUMNS FROM information_schema.VIEWS; +Field Type Null Key Default Extra +TABLE_CATALOG varchar(512) YES NULL +TABLE_SCHEMA varchar(64) NO +TABLE_NAME varchar(64) NO +VIEW_DEFINITION longtext NO NULL +CHECK_OPTION varchar(8) NO +IS_UPDATABLE varchar(3) NO +DEFINER varchar(77) NO +SECURITY_TYPE varchar(7) NO +SELECT table_catalog, table_schema, table_name +FROM information_schema.views WHERE table_catalog IS NOT NULL; +table_catalog table_schema table_name +################################################################################ +# Testcase 3.2.13.2 + 3.2.13.3: INFORMATION_SCHEMA.VIEWS accessible information +################################################################################ +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +DROP USER 'test_no_views'@'localhost'; +CREATE USER 'test_no_views'@'localhost'; +CREATE TABLE db_datadict.t1(f1 INT, f2 INT, f3 INT) +ENGINE = ; +CREATE VIEW db_datadict.v_granted_to_1 AS SELECT * FROM db_datadict.t1; +CREATE VIEW db_datadict.v_granted_glob AS SELECT f2, f3 FROM db_datadict.t1; +GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.v_granted_to_1 TO 'testuser1'@'localhost'; +GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'testuser2'@'localhost'; +SELECT * FROM information_schema.views +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE +NULL db_datadict v_granted_glob /* ALGORITHM=UNDEFINED */ select `db_datadict`.`t1`.`f2` AS `f2`,`db_datadict`.`t1`.`f3` AS `f3` from `db_datadict`.`t1` NONE YES root@localhost DEFINER +NULL db_datadict v_granted_to_1 /* ALGORITHM=UNDEFINED */ select `db_datadict`.`t1`.`f1` AS `f1`,`db_datadict`.`t1`.`f2` AS `f2`,`db_datadict`.`t1`.`f3` AS `f3` from `db_datadict`.`t1` NONE YES root@localhost DEFINER +# Establish connection testuser1 (user=testuser1) +SELECT * FROM information_schema.views +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE +NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER +# Establish connection testuser2 (user=testuser2) +SELECT * FROM information_schema.views +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE +NULL db_datadict v_granted_glob NONE YES root@localhost DEFINER +NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER +# Establish connection test_no_views (user=test_no_views) +SELECT * FROM information_schema.views +WHERE table_schema = 'db_datadict' ORDER BY table_name; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE +# Switch to connection default and close all other connections +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'test_no_views'@'localhost'; +DROP DATABASE db_datadict; +######################################################################### +# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.VIEWS modifications +######################################################################### +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE TABLE test.t1_table (f1 BIGINT, f2 CHAR(10)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = ; +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +SELECT * FROM information_schema.views +WHERE table_name LIKE 't1_%'; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE +CREATE VIEW test.t1_view AS SELECT DISTINCT f1 FROM test.t1_table; +SELECT * FROM information_schema.views +WHERE table_name LIKE 't1_%'; +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE +NULL test t1_view /* ALGORITHM=UNDEFINED */ select distinct `test`.`t1_table`.`f1` AS `f1` from `test`.`t1_table` NONE NO root@localhost DEFINER +SELECT table_name,definer FROM information_schema.views +WHERE table_name = 't1_view'; +table_name definer +t1_view root@localhost +ALTER DEFINER = 'testuser1'@'localhost' VIEW test.t1_view AS +SELECT DISTINCT f1 FROM test.t1_table; +SELECT table_name,definer,security_type FROM information_schema.views +WHERE table_name LIKE 't1_%'; +table_name definer security_type +t1_view testuser1@localhost DEFINER +ALTER DEFINER = 'root'@'localhost' SQL SECURITY INVOKER VIEW test.t1_view AS +SELECT f1 FROM test.t1_table WITH LOCAL CHECK OPTION; +SELECT table_name,definer,security_type FROM information_schema.views +WHERE table_name LIKE 't1_%'; +table_name definer security_type +t1_view root@localhost INVOKER +SELECT table_schema,table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +table_schema table_name +test t1_view +RENAME TABLE test.t1_view TO db_datadict.t1_view; +ERROR HY000: Changing schema from 'test' to 'db_datadict' is not allowed. +DROP VIEW test.t1_view; +CREATE VIEW db_datadict.t1_view AS SELECT * FROM test.t1_table; +SELECT table_schema,table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +table_schema table_name +db_datadict t1_view +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_view +RENAME TABLE db_datadict.t1_view TO db_datadict.t1_viewx; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_viewx +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_viewx +DROP VIEW db_datadict.t1_viewx; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +CREATE VIEW db_datadict.t1_view AS SELECT * FROM test.t1_table; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_view +DROP TABLE test.t1_table; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_view +Warnings: +Warning 1356 View 'db_datadict.t1_view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them +CREATE TABLE test.t1_table (f1 BIGINT, f2 CHAR(10)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci COMMENT = 'Initial Comment' +ENGINE = ; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +t1_view +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +table_name +DROP USER 'testuser1'@'localhost'; +DROP TABLE test.t1_table; +######################################################################## +# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +# DDL on INFORMATION_SCHEMA table are not supported +######################################################################## +DROP DATABASE IF EXISTS db_datadict; +CREATE DATABASE db_datadict; +CREATE VIEW db_datadict.v1 AS SELECT 1; +INSERT INTO information_schema.views +SELECT * FROM information_schema.views; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +INSERT INTO information_schema.views(table_schema, table_name) +VALUES ('db2', 'v2'); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +UPDATE information_schema.views SET table_schema = 'test' +WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DELETE FROM information_schema.views WHERE table_name = 't1'; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +TRUNCATE information_schema.views; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +CREATE INDEX my_idx_on_views ON information_schema.views(table_schema); +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.views DROP PRIMARY KEY; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.views ADD f1 INT; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP TABLE information_schema.views; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.views RENAME db_datadict.views; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +ALTER TABLE information_schema.views RENAME information_schema.xviews; +ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' +DROP DATABASE db_datadict; diff --git a/mysql-test/suite/funcs_1/r/memory__datadict.result b/mysql-test/suite/funcs_1/r/memory__datadict.result deleted file mode 100644 index 22385d98737..00000000000 --- a/mysql-test/suite/funcs_1/r/memory__datadict.result +++ /dev/null @@ -1,12814 +0,0 @@ - -. -. It is intended that the 3 __datadict.test files are named this way to be -. sure they are - in a *full run* of the suite - the first tests done for each -. storage engine. Using two _ and the order of processing in mysql-test-run.pl -. ensures this in an easy way. -. -. If needed a restart could be implemented later between the storage engines if -. values changes in the result depending from the position where the -. *__datadict.test are started. This can be a result of showing e.g. maximum -. values of the number of rows of tables. -. -. This .result file has been checked OK with Linux 5.0.48, -. build tree ChangeSet@1.2477.6.3, 2007-07-30 -. except that the not fixed Bug#30020 causes a difference. -. --------------------------------------------------------------------------------- - -FIXME: There are subtests that are switched off due to known bugs: ------------------------------------------------------------------- -SELECT 1 AS "have_bug_11589"; -have_bug_11589 -1 - -There are some statements where the ps-protocol is switched off. -This may come from the bug listed below, ir from other problems. -Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill --------------------------------------------------------------------------------- -SET @NO_REFRESH = IF( '' = '', 0, 1); -DROP DATABASE IF EXISTS test1; -CREATE DATABASE test1; -USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb1 ; -create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, -f58 numeric (64) not null DEFAULT 99 -) engine = memory; -Warnings: -Note 1265 Data truncated for column 'f33' at row 1 -Note 1265 Data truncated for column 'f34' at row 1 -Note 1265 Data truncated for column 'f35' at row 1 -Note 1265 Data truncated for column 'f36' at row 1 -Note 1265 Data truncated for column 'f37' at row 1 -Note 1265 Data truncated for column 'f38' at row 1 -Note 1265 Data truncated for column 'f39' at row 1 -Note 1265 Data truncated for column 'f40' at row 1 -Note 1265 Data truncated for column 'f41' at row 1 -Note 1265 Data truncated for column 'f42' at row 1 -Note 1265 Data truncated for column 'f43' at row 1 -Note 1265 Data truncated for column 'f44' at row 1 -Note 1265 Data truncated for column 'f45' at row 1 -Note 1265 Data truncated for column 'f47' at row 1 -Note 1265 Data truncated for column 'f49' at row 1 -Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb2 ; -create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", -f109 set("1set","2set") not null default "1set" -) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb3; -create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) -) engine = memory; -Warnings: -Note 1265 Data truncated for column 'f150' at row 1 -Note 1265 Data truncated for column 'f151' at row 1 -Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb4 ; -create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f236 char(95) unicode, -f241 char(255) unicode, -f237 char(130) binary, -f238 varchar(25000) binary, -f239 varbinary(0), -f240 varchar(1200) unicode -) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ; -USE test1; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb2 ; -create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", -f109 set("1set","2set") not null default "1set" -) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; -USE test; -USE test; -DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; -drop TABLE if exists t3; -CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = memory; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; -drop database if exists test4; -CREATE database test4; -use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = memory; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; -use test; -drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = memory; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = memory; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 -drop TABLE if exists t9; -CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = memory; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; -use information_schema; - -root@localhost information_schema - -Testcase 3.2.1.1: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE VIEW v1 AS SELECT * FROM information_schema.tables; -CREATE OR REPLACE VIEW db_datadict.vu1 as -SELECT grantee AS u -FROM information_schema.user_privileges; -CREATE OR REPLACE VIEW db_datadict.vu as -SELECT DISTINCT u, -SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 ) -AS server, -SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3, -LENGTH( SUBSTRING( u, -LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 ) -AS Server_Clean -FROM db_datadict.vu1; -SELECT * FROM db_datadict.vu order by u; -u server Server_Clean -'root'@'127.0.0.1' 127.0.0.1' 127.0.0.1 -'root'@'' ' -'root'@'localhost' localhost' localhost -CREATE PROCEDURE db_datadict.sp_1() -BEGIN -SELECT * FROM db_datadict.v1; -END// -USE information_schema; -SHOW tables; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -select * from schemata ORDER BY 2 DESC, 1 ASC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test4 latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -SELECT * FROM tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME CHARACTER_SETS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATIONS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMNS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMN_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME KEY_COLUMN_USAGE -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME ROUTINES -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMATA -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMA_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME STATISTICS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_CONSTRAINTS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TRIGGERS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME USER_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME VIEWS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -SELECT * FROM tables -WHERE NOT( table_schema = 'information_schema') -AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME v1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME columns_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Column privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME db -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 2 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME func -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT User defined functions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME host -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Host privileges; Merged with database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME proc -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 1 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Stored Procedures -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME procs_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Procedure privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME tables_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Table privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 5 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT 6 -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_leap_second -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 22 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Leap seconds information for time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_name -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 6 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone names -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 393 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transitions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition_type -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 31 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transition types -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME user -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 3 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Users and global privileges -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t1 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t10 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t11 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t2 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t3 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t4 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t7 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t8 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t9 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb1 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb3 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb4 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test1 -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test4 -TABLE_NAME t6 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from schemata s inner join tables t -ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; -catalog_name schema_name default_character_set_name table_type engine -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -select * from columns; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL db_datadict v1 TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL db_datadict v1 TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select,insert,update,references -NULL db_datadict v1 TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select,insert,update,references -NULL db_datadict v1 TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select,insert,update,references -NULL db_datadict vu u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references -NULL db_datadict vu server 2 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references -NULL db_datadict vu Server_Clean 3 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references -NULL db_datadict vu1 u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references -NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references -NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references -NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references -NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references -NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references -NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references -NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references -NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references -NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references -NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references -NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references -NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references -NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references -NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references -NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references -NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references -NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references -NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references -NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select * from character_sets; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -latin1 latin1_swedish_ci cp1252 West European 1 -latin2 latin2_general_ci ISO 8859-2 Central European 1 -swe7 swe7_swedish_ci 7bit Swedish 1 -ascii ascii_general_ci US ASCII 1 -ujis ujis_japanese_ci EUC-JP Japanese 3 -sjis sjis_japanese_ci Shift-JIS Japanese 2 -hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 -tis620 tis620_thai_ci TIS620 Thai 1 -euckr euckr_korean_ci EUC-KR Korean 2 -koi8u koi8u_general_ci KOI8-U Ukrainian 1 -gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 -greek greek_general_ci ISO 8859-7 Greek 1 -cp1250 cp1250_general_ci Windows Central European 1 -gbk gbk_chinese_ci GBK Simplified Chinese 2 -latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 -armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 -utf8 utf8_general_ci UTF-8 Unicode 3 -ucs2 ucs2_general_ci UCS-2 Unicode 2 -cp866 cp866_general_ci DOS Russian 1 -keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 -macce macce_general_ci Mac Central European 1 -macroman macroman_general_ci Mac West European 1 -cp852 cp852_general_ci DOS Central European 1 -latin7 latin7_general_ci ISO 8859-13 Baltic 1 -cp1251 cp1251_general_ci Windows Cyrillic 1 -cp1256 cp1256_general_ci Windows Arabic 1 -cp1257 cp1257_general_ci Windows Baltic 1 -binary binary Binary pseudo charset 1 -geostd8 geostd8_general_ci GEOSTD8 Georgian 1 -cp932 cp932_japanese_ci SJIS for Windows Japanese 2 -eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 -select sum(id) from collations where collation_name <> 'utf8_general_cs'; -sum(id) -10741 -select collation_name, character_set_name into @x,@y -from collation_character_set_applicability limit 1; -select @x, @y; -@x @y -big5_chinese_ci big5 -select * from routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -select count(*) from routines; -count(*) -1 -select * from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 3 type A 1 NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 0 NULL NULL BTREE -NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE -NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE -NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE -select * from views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER -NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER -select * from user_privileges order by grantee, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * from schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -select * from table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from column_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -NULL mysql PRIMARY mysql help_keyword PRIMARY KEY -NULL mysql name mysql help_keyword UNIQUE -NULL mysql PRIMARY mysql help_relation PRIMARY KEY -NULL mysql PRIMARY mysql help_topic PRIMARY KEY -NULL mysql name mysql help_topic UNIQUE -NULL mysql PRIMARY mysql host PRIMARY KEY -NULL mysql PRIMARY mysql proc PRIMARY KEY -NULL mysql PRIMARY mysql procs_priv PRIMARY KEY -NULL mysql PRIMARY mysql tables_priv PRIMARY KEY -NULL mysql PRIMARY mysql time_zone PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_leap_second PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_name PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_transition PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_transition_type PRIMARY KEY -NULL mysql PRIMARY mysql user PRIMARY KEY -select * from key_column_usage; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL -select count(*) as max_recs from key_column_usage; -max_recs -40 -select max(cardinality) from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); -max(cardinality) -393 -select concat("View '", -table_name, "' is associated with the database '", table_schema, "'.") -AS "Who is Who for the Views" - from views; -Who is Who for the Views -View 'v1' is associated with the database 'db_datadict'. -View 'vu' is associated with the database 'db_datadict'. -View 'vu1' is associated with the database 'db_datadict'. -select concat("Table or view '", table_name, -"' is associated with the database '", table_schema, "'.") as "Who is Who" - from tables; -Who is Who -Table or view 'CHARACTER_SETS' is associated with the database 'information_schema'. -Table or view 'COLLATIONS' is associated with the database 'information_schema'. -Table or view 'COLLATION_CHARACTER_SET_APPLICABILITY' is associated with the database 'information_schema'. -Table or view 'COLUMNS' is associated with the database 'information_schema'. -Table or view 'COLUMN_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'KEY_COLUMN_USAGE' is associated with the database 'information_schema'. -Table or view 'ROUTINES' is associated with the database 'information_schema'. -Table or view 'SCHEMATA' is associated with the database 'information_schema'. -Table or view 'SCHEMA_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'STATISTICS' is associated with the database 'information_schema'. -Table or view 'TABLES' is associated with the database 'information_schema'. -Table or view 'TABLE_CONSTRAINTS' is associated with the database 'information_schema'. -Table or view 'TABLE_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'TRIGGERS' is associated with the database 'information_schema'. -Table or view 'USER_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'VIEWS' is associated with the database 'information_schema'. -Table or view 'v1' is associated with the database 'db_datadict'. -Table or view 'vu' is associated with the database 'db_datadict'. -Table or view 'vu1' is associated with the database 'db_datadict'. -Table or view 'columns_priv' is associated with the database 'mysql'. -Table or view 'db' is associated with the database 'mysql'. -Table or view 'func' is associated with the database 'mysql'. -Table or view 'help_category' is associated with the database 'mysql'. -Table or view 'help_keyword' is associated with the database 'mysql'. -Table or view 'help_relation' is associated with the database 'mysql'. -Table or view 'help_topic' is associated with the database 'mysql'. -Table or view 'host' is associated with the database 'mysql'. -Table or view 'proc' is associated with the database 'mysql'. -Table or view 'procs_priv' is associated with the database 'mysql'. -Table or view 'tables_priv' is associated with the database 'mysql'. -Table or view 'time_zone' is associated with the database 'mysql'. -Table or view 'time_zone_leap_second' is associated with the database 'mysql'. -Table or view 'time_zone_name' is associated with the database 'mysql'. -Table or view 'time_zone_transition' is associated with the database 'mysql'. -Table or view 'time_zone_transition_type' is associated with the database 'mysql'. -Table or view 'user' is associated with the database 'mysql'. -Table or view 't1' is associated with the database 'test'. -Table or view 't10' is associated with the database 'test'. -Table or view 't11' is associated with the database 'test'. -Table or view 't2' is associated with the database 'test'. -Table or view 't3' is associated with the database 'test'. -Table or view 't4' is associated with the database 'test'. -Table or view 't7' is associated with the database 'test'. -Table or view 't8' is associated with the database 'test'. -Table or view 't9' is associated with the database 'test'. -Table or view 'tb1' is associated with the database 'test'. -Table or view 'tb2' is associated with the database 'test'. -Table or view 'tb3' is associated with the database 'test'. -Table or view 'tb4' is associated with the database 'test'. -Table or view 'tb2' is associated with the database 'test1'. -Table or view 't6' is associated with the database 'test4'. -select grantee as "user's having select privilege", -substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 ) -from user_privileges where privilege_type = 'select' - order by grantee; -user's having select privilege substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 ) -'root'@'127.0.0.1' '127.0.0.1' -'root'@'' '' -'root'@'localhost' 'localhost' -select all table_schema from schema_privileges limit 0,5; -table_schema -test -test -test -test -test -select distinct(privilege_type) from table_privileges; -privilege_type -select * from column_privileges -group by table_schema having table_schema = 'db_datadict'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from table_constraints limit 0,5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select count(*) as max_recs from key_column_usage limit 0,5; -max_recs -40 -select information_schema.tables.table_name as "table name", -count(distinct(column_name)) as "no of columns in the table" - from information_schema.tables left outer join information_schema.columns on -information_schema.tables.table_name = information_schema.columns.table_name -group by information_schema.tables.table_name; -table name no of columns in the table -CHARACTER_SETS 4 -COLLATIONS 6 -COLLATION_CHARACTER_SET_APPLICABILITY 2 -COLUMNS 19 -columns_priv 7 -COLUMN_PRIVILEGES 7 -db 20 -func 4 -help_category 4 -help_keyword 2 -help_relation 2 -help_topic 6 -host 19 -KEY_COLUMN_USAGE 12 -proc 16 -procs_priv 8 -ROUTINES 20 -SCHEMATA 5 -SCHEMA_PRIVILEGES 5 -STATISTICS 15 -t1 6 -t10 6 -t11 6 -t2 6 -t3 3 -t4 6 -t6 6 -t7 4 -t8 4 -t9 3 -TABLES 21 -tables_priv 8 -TABLE_CONSTRAINTS 6 -TABLE_PRIVILEGES 6 -tb1 50 -tb2 51 -tb3 52 -tb4 57 -time_zone 2 -time_zone_leap_second 2 -time_zone_name 2 -time_zone_transition 3 -time_zone_transition_type 5 -TRIGGERS 19 -user 37 -USER_PRIVILEGES 4 -v1 21 -VIEWS 8 -vu 3 -vu1 1 - -root: simple select to check all - and never forget some - tables ------------------------------------------------------------------ -SELECT * FROM schemata LIMIT 1; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -SELECT * FROM tables LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL utf8_general_ci NULL #CO# -SELECT * FROM columns LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -SELECT * FROM character_sets LIMIT 1; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -SELECT * FROM collations where collation_name <> 'utf8_general_cs' LIMIT 1; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -SELECT * FROM collation_character_set_applicability where collation_name <> 'utf8_general_cs' LIMIT 1; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -SELECT * FROM routines LIMIT 1; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost -SELECT * FROM statistics LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -SELECT * FROM views LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -SELECT * FROM user_privileges LIMIT 1; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'localhost' NULL SELECT YES -SELECT * FROM schema_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -SELECT * FROM table_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM column_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM table_constraints LIMIT 1; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -SELECT * FROM key_column_usage LIMIT 1; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -SELECT * FROM triggers LIMIT 1; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -SELECT * FROM parameters LIMIT 1; -ERROR 42S02: Unknown table 'parameters' in information_schema -SELECT * FROM referential_constraints LIMIT 1; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema -use db_datadict; -select * from schemata; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -select * from tables; -ERROR 42S02: Table 'db_datadict.tables' doesn't exist -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from schemata s inner join tables t -ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -select * from columns limit 0, 5; -ERROR 42S02: Table 'db_datadict.columns' doesn't exist -select * from character_sets limit 0, 5; -ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist -select * from collations limit 0, 5; -ERROR 42S02: Table 'db_datadict.collations' doesn't exist -select * from collation_character_set_applicability limit 0, 5; -ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist -select * from routines limit 0, 5; -ERROR 42S02: Table 'db_datadict.routines' doesn't exist -select * from statistics limit 0, 5; -ERROR 42S02: Table 'db_datadict.statistics' doesn't exist -select * from views limit 0, 5; -ERROR 42S02: Table 'db_datadict.views' doesn't exist -select * from user_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist -select * from schema_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist -select * from table_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist -select * from column_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist -select * from table_constraints limit 0, 5; -ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist -select * from key_column_usage limit 0, 5; -ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist - -will fail due to missing database name --------------------------------------- - -known error 1146: ------------------ -SELECT * FROM schemata ; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * FROM tables ; -ERROR 42S02: Table 'db_datadict.tables' doesn't exist -SELECT * FROM columns ; -ERROR 42S02: Table 'db_datadict.columns' doesn't exist -SELECT * FROM character_sets ; -ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist -SELECT * FROM collations ; -ERROR 42S02: Table 'db_datadict.collations' doesn't exist -SELECT * FROM collation_character_set_applicability ; -ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist -SELECT * FROM routines ; -ERROR 42S02: Table 'db_datadict.routines' doesn't exist -SELECT * FROM statistics ; -ERROR 42S02: Table 'db_datadict.statistics' doesn't exist -SELECT * FROM views ; -ERROR 42S02: Table 'db_datadict.views' doesn't exist -SELECT * FROM user_privileges ; -ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist -SELECT * FROM schema_privileges ; -ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist -SELECT * FROM table_privileges ; -ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist -SELECT * FROM column_privileges ; -ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist -SELECT * FROM table_constraints ; -ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist -SELECT * FROM key_column_usage ; -ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist -SELECT * FROM triggers ; -ERROR 42S02: Table 'db_datadict.triggers' doesn't exist -select * from information_schema.schemata ORDER BY 2 DESC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test4 latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME CHARACTER_SETS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATIONS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMNS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMN_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME KEY_COLUMN_USAGE -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME ROUTINES -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMATA -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMA_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME STATISTICS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_CONSTRAINTS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TRIGGERS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME USER_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME VIEWS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema') -AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME v1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME columns_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Column privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME db -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 2 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME func -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT User defined functions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME host -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Host privileges; Merged with database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME proc -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 1 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Stored Procedures -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME procs_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Procedure privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME tables_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Table privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 5 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT 6 -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_leap_second -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 22 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Leap seconds information for time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_name -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 6 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone names -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 393 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transitions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition_type -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 31 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transition types -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME user -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 3 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Users and global privileges -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t1 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t10 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t11 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t2 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t3 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t4 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t7 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t8 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t9 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb1 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb3 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb4 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test1 -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test4 -TABLE_NAME t6 -TABLE_TYPE BASE TABLE -ENGINE MEMORY -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from information_schema.schemata s inner join information_schema.tables t -ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; -catalog_name schema_name default_character_set_name table_type engine -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MEMORY -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MEMORY -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MEMORY -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MEMORY -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MEMORY -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MEMORY -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -select * from information_schema.columns limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -select * from information_schema.character_sets limit 0, 5; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -select * from information_schema.collations limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -big5_bin big5 84 Yes 1 -dec8_swedish_ci dec8 3 Yes 0 -dec8_bin dec8 69 0 -cp850_general_ci cp850 4 Yes 0 -select * from information_schema.collation_character_set_applicability limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -select * from information_schema.routines limit 0, 5; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -select * from information_schema.statistics limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -select * from information_schema.views limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER -NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER -select * from information_schema.user_privileges limit 0, 5; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL UPDATE YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL CREATE YES -select * from information_schema.schema_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -select * from information_schema.table_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from information_schema.column_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from information_schema.table_constraints limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select * from information_schema.key_column_usage limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -select count(*) as max_recs from information_schema.key_column_usage limit 0, 5; -max_recs -40 - -root: check with db name ------------------------- -SELECT COUNT(*) FROM information_schema. schemata ; -COUNT(*) -6 -SELECT COUNT(*) FROM information_schema. tables ; -COUNT(*) -51 -SELECT COUNT(*) FROM information_schema. columns ; -COUNT(*) -642 -SELECT COUNT(*) FROM information_schema. character_sets ; -COUNT(*) -36 -SELECT COUNT(*) FROM information_schema. collations where collation_name <> 'utf8_general_cs' ; -COUNT(*) -126 -SELECT COUNT(*) FROM information_schema. collation_character_set_applicability where collation_name <> 'utf8_general_cs' ; -COUNT(*) -126 -SELECT COUNT(*) FROM information_schema. routines ; -COUNT(*) -1 -SELECT COUNT(*) FROM information_schema. statistics ; -COUNT(*) -43 -SELECT COUNT(*) FROM information_schema. views ; -COUNT(*) -3 -SELECT COUNT(*) FROM information_schema. user_privileges ; -COUNT(*) -75 -SELECT COUNT(*) FROM information_schema. schema_privileges ; -COUNT(*) -28 -SELECT COUNT(*) FROM information_schema. table_privileges ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. column_privileges ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. table_constraints ; -COUNT(*) -20 -SELECT COUNT(*) FROM information_schema. key_column_usage ; -COUNT(*) -40 -SELECT COUNT(*) FROM information_schema. triggers ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. parameters ; -ERROR 42S02: Unknown table 'parameters' in information_schema -SELECT COUNT(*) FROM information_schema. referential_constraints ; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema -USE db_datadict; -DROP VIEW v1, vu1, vu; -DROP PROCEDURE db_datadict.sp_1; -USE information_schema; - -Testcase 3.2.1.2: --------------------------------------------------------------------------------- -select catalog_name, schema_name, default_character_set_name -from schemata where schema_name like '%s%'; -catalog_name schema_name default_character_set_name -NULL information_schema utf8 -NULL mysql latin1 -NULL test latin1 -NULL test1 latin1 -NULL test4 latin1 -select count(*) as tot_tabs from tables; -tot_tabs -48 -select count(*) as the_cols from columns; -the_cols -617 -select max(maxlen) as the_max from character_sets; -the_max -3 -select * from collations order by id asc limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -latin2_czech_cs latin2 2 Yes 4 -dec8_swedish_ci dec8 3 Yes 0 -cp850_general_ci cp850 4 Yes 0 -latin1_german1_ci latin1 5 Yes 1 -select * from collation_character_set_applicability -order by character_set_name desc, collation_name limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME -utf8_bin utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_esperanto_ci utf8 -utf8_estonian_ci utf8 -select routine_definition from routines; -routine_definition -select * from statistics where table_name not like 'help_%' -group by index_name asc limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -select concat(table_schema, ', ', table_name, ', ', view_definition) view_info -from views; -view_info -select concat(table_schema, ', ', table_name) "Table_info" - from tables ORDER BY 1; -Table_info -information_schema, CHARACTER_SETS -information_schema, COLLATIONS -information_schema, COLLATION_CHARACTER_SET_APPLICABILITY -information_schema, COLUMNS -information_schema, COLUMN_PRIVILEGES -information_schema, KEY_COLUMN_USAGE -information_schema, ROUTINES -information_schema, SCHEMATA -information_schema, SCHEMA_PRIVILEGES -information_schema, STATISTICS -information_schema, TABLES -information_schema, TABLE_CONSTRAINTS -information_schema, TABLE_PRIVILEGES -information_schema, TRIGGERS -information_schema, USER_PRIVILEGES -information_schema, VIEWS -mysql, columns_priv -mysql, db -mysql, func -mysql, help_category -mysql, help_keyword -mysql, help_relation -mysql, help_topic -mysql, host -mysql, proc -mysql, procs_priv -mysql, tables_priv -mysql, time_zone -mysql, time_zone_leap_second -mysql, time_zone_name -mysql, time_zone_transition -mysql, time_zone_transition_type -mysql, user -test, t1 -test, t10 -test, t11 -test, t2 -test, t3 -test, t4 -test, t7 -test, t8 -test, t9 -test, tb1 -test, tb2 -test, tb3 -test, tb4 -test1, tb2 -test4, t6 -select distinct grantee from user_privileges order by grantee, privilege_type; -grantee -'root'@'127.0.0.1' -'root'@'' -'root'@'localhost' -select * from schema_privileges where table_catalog is null limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -select * from table_privileges where grantee like '%r%' limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from column_privileges where table_catalog is not null limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select HIGH_PRIORITY * from table_constraints -group by constraint_name desc limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select sum(ordinal_position) from key_column_usage; -sum(ordinal_position) -77 -select * from schemata limit 0,5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -select * from schemata limit 0,5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -select distinct grantee from user_privileges; -grantee -'root'@'127.0.0.1' -'root'@'' -'root'@'localhost' -select all grantee from user_privileges order by grantee, privilege_type; -grantee -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -select id , character_set_name from collations order by id asc limit 10; -id character_set_name -1 big5 -2 latin2 -3 dec8 -4 cp850 -5 latin1 -6 hp8 -7 koi8r -8 latin1 -9 latin2 -10 swe7 -select table_catalog from columns -union all -select table_catalog from tables limit 0,5; -table_catalog -NULL -NULL -NULL -NULL -NULL -select table_catalog from columns -union -select table_catalog from tables limit 0,5; -table_catalog -NULL -select all schema_name from information_schema.schemata; -schema_name -information_schema -db_datadict -mysql -test -test1 -test4 -SELECT * -INTO OUTFILE '../tmp/out.memory.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -USE test; -SELECT * -INTO OUTFILE '../tmp/out.memory.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CREATE USER user_3212@localhost; -GRANT ALL ON db_datadict.* TO user_3212@localhost; -GRANT FILE ON *.* TO user_3212@localhost; -connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -user_3212@localhost db_datadict -SELECT * -INTO OUTFILE '../tmp/out.memory.user.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * -FROM schemata LIMIT 0, 5; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * -INTO OUTFILE '../tmp/out.memory.user.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -SELECT * -FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -USE information_schema; -SELECT * -INTO OUTFILE '../tmp/out.memory.user_2.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -SELECT * -FROM schemata LIMIT 0, 5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -SELECT * -INTO OUTFILE '../tmp/out.memory.user_2.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -SELECT * -FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -USE information_schema; - -root@localhost information_schema -use db_datadict; -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from information_schema.columns -union -select table_catalog, table_schema, table_name, -concat( "*** type = ", table_type ) -from information_schema.tables -order by 3, 4 desc, 1, 2 limit 30; -1 2 3 4 -NULL information_schema CHARACTER_SETS MAXLEN -NULL information_schema CHARACTER_SETS DESCRIPTION -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME -NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW -NULL information_schema COLLATIONS SORTLEN -NULL information_schema COLLATIONS IS_DEFAULT -NULL information_schema COLLATIONS IS_COMPILED -NULL information_schema COLLATIONS ID -NULL information_schema COLLATIONS COLLATION_NAME -NULL information_schema COLLATIONS CHARACTER_SET_NAME -NULL information_schema COLLATIONS *** type = SYSTEM VIEW -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW -NULL information_schema COLUMNS TABLE_SCHEMA -NULL information_schema COLUMNS TABLE_NAME -NULL information_schema COLUMNS TABLE_CATALOG -NULL information_schema COLUMNS PRIVILEGES -NULL information_schema COLUMNS ORDINAL_POSITION -NULL information_schema COLUMNS NUMERIC_SCALE -NULL information_schema COLUMNS NUMERIC_PRECISION -NULL information_schema COLUMNS IS_NULLABLE -NULL information_schema COLUMNS EXTRA -NULL information_schema COLUMNS DATA_TYPE -NULL information_schema COLUMNS COLUMN_TYPE -NULL information_schema COLUMNS COLUMN_NAME -NULL information_schema COLUMNS COLUMN_KEY -NULL information_schema COLUMNS COLUMN_DEFAULT -NULL information_schema COLUMNS COLUMN_COMMENT -use information_schema; -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from columns -union -select table_catalog, table_schema, table_name, -concat( "*** type = ", table_type ) -from tables -order by 3, 4 desc, 1, 2 limit 30; -1 2 3 4 -NULL information_schema CHARACTER_SETS MAXLEN -NULL information_schema CHARACTER_SETS DESCRIPTION -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME -NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW -NULL information_schema COLLATIONS SORTLEN -NULL information_schema COLLATIONS IS_DEFAULT -NULL information_schema COLLATIONS IS_COMPILED -NULL information_schema COLLATIONS ID -NULL information_schema COLLATIONS COLLATION_NAME -NULL information_schema COLLATIONS CHARACTER_SET_NAME -NULL information_schema COLLATIONS *** type = SYSTEM VIEW -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW -NULL information_schema COLUMNS TABLE_SCHEMA -NULL information_schema COLUMNS TABLE_NAME -NULL information_schema COLUMNS TABLE_CATALOG -NULL information_schema COLUMNS PRIVILEGES -NULL information_schema COLUMNS ORDINAL_POSITION -NULL information_schema COLUMNS NUMERIC_SCALE -NULL information_schema COLUMNS NUMERIC_PRECISION -NULL information_schema COLUMNS IS_NULLABLE -NULL information_schema COLUMNS EXTRA -NULL information_schema COLUMNS DATA_TYPE -NULL information_schema COLUMNS COLUMN_TYPE -NULL information_schema COLUMNS COLUMN_NAME -NULL information_schema COLUMNS COLUMN_KEY -NULL information_schema COLUMNS COLUMN_DEFAULT -NULL information_schema COLUMNS COLUMN_COMMENT -DROP USER user_3212@localhost; - -Testcase 3.2.1.3: --------------------------------------------------------------------------------- -insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path) -values ('null', 'db1', 'latin1', 'null'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into tables (table_schema, table_name)values('db_datadict', 't1'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into columns (table_name, column_name)values('t3', 'f2'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into character_sets (character_set_name, default_collate_name, description, maxlen) -values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen) -values ('cp1251_bin', 'cp1251', 50, '', '', 0); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into collation_character_set_applicability (collation_name, character_set_name) -values (' big5_chinese_ci', 'big6'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into routines(routine_name, routine_type ) values ('p2', 'procedure'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into statistics(table_schema, table_name, index_name) -values ('mysql', 'db', 'primary'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into views(table_schema, table_name) values ('db2', 'v2'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into table_privileges (able_schema, table_name, privilege_type) -values('db2', 'v2', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into column_privileges (table_name, column_name, privilege_type) -values ('t3', 'f3', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into table_constraints ( constraint_schema, constraint_name, table_schema) -values ('primary', 'mysql', 'user'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into key_column_usage (constraint_schema, constraint_name, table_name) -values ('mysql', 'primary', 'db'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_3; -create procedure db_datadict.sp_4_1_3() -begin -insert into information_schema.schema_privileges (table_schema,privilege_type) -values('db2','insert'); -end// -SELECT table_schema, privilege_type FROM information_schema.schema_privileges -WHERE table_schema LIKE 'db%'; -table_schema privilege_type -call db_datadict.sp_4_1_3(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -SELECT table_schema, privilege_type FROM information_schema.schema_privileges -WHERE table_schema LIKE 'db%'; -table_schema privilege_type -drop procedure db_datadict.sp_4_1_3; -CREATE USER user_4_1_3@localhost; -connect(localhost,user_4_1_3,,test,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_3@localhost test -use information_schema; -insert into table_constraints ( constraint_schema, constraint_name, table_schema) -values ('primary', 'mysql', 'user'); -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema - -Testcase 3.2.1.4: --------------------------------------------------------------------------------- -use information_schema; - -root@localhost information_schema -update schemata set schema_name = 'db5' where default_character_set_name = 'latin1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update tables set table_schema = 'db_datadict1' where table_name = 't1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update character_sets set character_set_name = 'cp1252' where maxlen = 1; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update collations set collation_name = 'cp1253_bin' - where character_set_name = 'cp1251'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update collation_character_set_applicability set collation_name = 'big6_chinese_ci' - where character_set_name = 'big6'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update routines set routine_name = p2 where routine_body = 'sql'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update statistics set table_schema = 'mysql1' where table_name = 'db'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update views set table_schema = 'db3' where table_name = 'v1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update schema_privileges set table_schema = 'db2' where privilege_type = 'select'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update table_privileges set table_name = 'v3' where privilege_type = 'select'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update column_privileges set table_name = 't4' where column_name = 'f3'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update table_constraints set constraint_schema = 'primary' - where table_schema = 'proc'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update key_column_usage set table_name = 'db1' where constraint_name = 'primary'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_4; -create procedure db_datadict.sp_4_1_4() -begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end// -select * from information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -call db_datadict.sp_4_1_4(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -select * from information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -drop procedure db_datadict.sp_4_1_4; -use information_schema; - -user_4_1_3@localhost information_schema -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema - -Testcase 3.2.1.5: --------------------------------------------------------------------------------- -use information_schema; - -root: DELETE FROM any table in IS ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DELETE FROM schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from schemata where schema_name = 'mysql'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from tables where table_name = 'abc'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from columns; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from character_sets; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from collations; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from collation_character_set_applicability; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from routines; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from statistics; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from views; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from user_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from schema_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from table_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from column_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from table_constraints; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from key_column_usage; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_5; -create procedure db_datadict.sp_4_1_5() -begin -delete from information_schema.column_privileges; -end// -call db_datadict.sp_4_1_5(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure db_datadict.sp_4_1_5; -use information_schema; - -user_4_1_3@localhost information_schema -delete from tables where table_name = 'abc'; -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_3@localhost; - -Testcase 3.2.1.6: --------------------------------------------------------------------------------- -use information_schema; - -root: create a table with a name of an IS table directly in IS --------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE schemata ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE tables ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE columns ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE collations ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE routines ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE statistics ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE views ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE triggers ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create table t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -use db_datadict; - -root: create a table with a name of an IS table from other db -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE information_schema. schemata ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. tables ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. columns ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collations ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. routines ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. statistics ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. views ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. triggers ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create table information_schema.t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -CREATE USER user_4_1_6@localhost; -grant all on *.* to user_4_1_6@localhost; -FLUSH PRIVILEGES; -SHOW GRANTS FOR user_4_1_6@localhost; -Grants for user_4_1_6@localhost -GRANT ALL PRIVILEGES ON *.* TO 'user_4_1_6'@'localhost' -connect(localhost,user_4_1_6,,information_schema,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_6@localhost information_schema -use information_schema; - -user: create a table with a name of an IS table directly in IS --------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE schemata ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE tables ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE columns ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE collations ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE routines ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE statistics ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE views ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE triggers ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -create table t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -use test; - -user: create a table with a name of an IS table from other db -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE information_schema. schemata ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. tables ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. columns ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collations ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. routines ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. statistics ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. views ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. triggers ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -create table information_schema.t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema - -root@localhost db_datadict -DROP USER user_4_1_6@localhost; - -Testcase 3.2.1.7: --------------------------------------------------------------------------------- -use information_schema; - -root: create a view with a name of an IS table directly in IS -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW schemata AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW tables AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW columns AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW character_sets AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW collations AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW collation_character_set_applicability AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW routines AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW statistics AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW views AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW user_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW schema_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW table_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW column_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW table_constraints AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW key_column_usage AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW triggers AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW v1 AS SELECT * FROM information_schema.schemata; -ERROR 42S02: Unknown table 'v1' in information_schema -USE db_datadict; - -root: create a view with a name of an IS table from other db ------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW information_schema. schemata AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. tables AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. columns AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. character_sets AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collations AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. routines AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. statistics AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. views AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. user_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. schema_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. column_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_constraints AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. key_column_usage AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. triggers AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW v1 AS SELECT * FROM information_schema.columns; -SELECT * FROM v1 LIMIT 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -CREATE USER user_4_1_7@localhost; -GRANT ALL ON db_datadict.* TO user_4_1_7@localhost; -GRANT ALL ON information_schema.* TO user_4_1_7@localhost; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,user_4_1_7,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_7@localhost information_schema - -user: create a view with a name of an IS table directly in IS -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW schemata AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW tables AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW columns AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW character_sets AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW collations AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW collation_character_set_applicability AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW routines AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW statistics AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW views AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW user_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW schema_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW table_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW column_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW table_constraints AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW key_column_usage AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW triggers AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -create view v1 as select * from table_privileges; -ERROR 42S02: Unknown table 'v1' in information_schema -use db_datadict; - -user: create a view with a name of an IS table from other db ------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW information_schema. schemata AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. tables AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. columns AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. character_sets AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collations AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. routines AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. statistics AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. views AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. user_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. schema_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. column_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_constraints AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. key_column_usage AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. triggers AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' - -root@localhost db_datadict -DROP USER user_4_1_7@localhost; -DROP VIEW db_datadict.v1; - -Testcase 3.2.1.8: --------------------------------------------------------------------------------- -use information_schema; -create index i1 on schemata(schema_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i2 on tables(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i3 on columns(table_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i4 on character_sets(character_set_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i6 on collation_character_set_applicability(collation_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i7 on routines(routine_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i8 on statistics(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i9 on views(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i10 on user_privileges(privilege_type); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i11 on schema_privileges(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i12 on table_privileges(able_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i13 on column_privileges(table_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i14 on table_constraints(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i15 on key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i16 on triggers(trigger_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use db_datadict; -create index i15 on information_schema.key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; -CREATE USER user_4_1_8@localhost; -grant select, index on *.* to user_4_1_8@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_8,,test,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_8@localhost test -use information_schema; -create index i1 on schemata(schema_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i2 on tables(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i3 on columns(table_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i4 on character_sets(character_set_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i6 on collation_character_set_applicability(collation_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i7 on routines(routine_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i8 on statistics(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i9 on views(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i10 on user_privileges(privilege_type); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i11 on schema_privileges(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i12 on table_privileges(able_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i13 on column_privileges(table_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i14 on table_constraints(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i15 on key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i16 on triggers(trigger_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -use db_datadict; -create index i15 on information_schema.key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_8@localhost; - -Testcase 3.2.1.9: --------------------------------------------------------------------------------- - -root: alter a table from other db ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; - -root: alter a table from directly ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE schemata ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE tables ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE columns ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE collations ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE routines ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE statistics ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE views ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE triggers ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table schemata add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table tables drop primary key; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table columns add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table character_sets disable keys; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table collations enable keys; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table collation_character_set_applicability add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table routines discard tablespace; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table statistics import tablespace; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table views drop column table_name; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table user_privileges drop index privilege_type; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table schema_privileges drop column is_grantable; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table table_privileges order by constraint_type; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table column_privileges rename to aaxyz; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table table_constraints order by schema_name; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table key_column_usage rename to information_schema.aabxyz; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table triggers rename to information_schema.sql_mode; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE USER user_4_1_9@localhost; -grant select, alter, create, insert on *.* to user_4_1_9@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_9,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_9@localhost db_datadict -use db_datadict; - -user: alter a table from other db ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -use information_schema; - -user: alter a table from directly ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE schemata ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE tables ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE columns ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE collations ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE routines ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE statistics ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE views ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE triggers ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_9@localhost; - -Testcase 3.2.1.10: --------------------------------------------------------------------------------- -use information_schema; - -root: drop a table from IS --------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use db_datadict; - -root: drop a table from other db --------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE information_schema. schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; -CREATE USER user_4_1_10@localhost; -GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_10,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_10@localhost information_schema - -user: drop a table from IS --------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE schemata ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE tables ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE columns ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE character_sets ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE collations ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE collation_character_set_applicability ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE routines ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE statistics ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE views ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE user_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE schema_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE table_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE column_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE table_constraints ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE key_column_usage ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE triggers ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -use db_datadict; - -user: drop a table from other db --------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE information_schema. schemata ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. tables ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. columns ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. character_sets ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collations ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. routines ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. statistics ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. views ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. user_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. column_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_constraints ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. triggers ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_10@localhost; -CREATE USER user_4_1_11@localhost; -GRANT SUPER ON *.* TO user_4_1_11@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_11,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_11@localhost information_schema -drop table routines; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -alter table collations enable keys; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name ); -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -create view v1 as select * from schemata; -ERROR 42S02: Unknown table 'v1' in information_schema -delete from columns; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -insert into collations ( collation_name, character_set_name, id, is_default, -is_compiled, sortlen) -values ('cp1251_bin', 'cp1251', 50, '', '', 0); -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_11@localhost; - -Testcase 3.2.1.11: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'u_6_401011'@'localhost'; -GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost'; -FLUSH PRIVILEGES; -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' - -root: move table to other DB ----------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -connect(localhost,u_6_401011,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; - -u_6_401011@localhost information_schema -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' - -user: move table to other DB ----------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP TABLE IF EXISTS db_datadict.schemata; -DROP USER 'u_6_401011'@'localhost'; - -Testcase 3.2.1.12: --------------------------------------------------------------------------------- - -root: delete from IS tables ---------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DELETE FROM information_schema. schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.tables SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.columns SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.statistics SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.views SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.table_privileges SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.column_privileges SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.table_constraints SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.key_column_usage SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.schemata SET catalog_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.character_sets SET description = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.collations SET character_set_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.collation_character_set_applicability -SET character_set_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.routines SET routine_type = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.user_privileges SET grantee = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.schema_privileges SET grantee = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.triggers SET sql_mode = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE USER 'u_6_401012'@'localhost'; -connect(localhost,u_6_401012,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; -insert into information_schema.schemata (catalog_name, schema_name, -default_character_set_name, sql_path) -values (null, information_schema1, utf16, null); -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.schemata rename db_datadict1.schemata; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.tables drop column checksum; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.statistics modify packed int; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.routines modify created int not null; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.key_column_usage drop column ordinal_position; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.table_privileges -change privilege_type rights_approved varchar(32); -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -delete from information_schema.collations; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' - -root@localhost information_schema -drop table if exists db_datadict1.schemata; -DROP USER 'u_6_401012'@'localhost'; - -Testcase 3.2.1.13: --------------------------------------------------------------------------------- -use information_schema; - -first check status >before< creating the objects ... ----------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401013(f1 char(10), f2 char(25), f3 int) -engine = memory; -create view res_v_401013 as select * from res_t_401013; -CREATE USER u_6_401013@localhost; -create procedure sp_6_401013() select 'db_datadict'; -create function fn_6_401013() returns int return 0; -create index i_6_401013 on res_t_401013(f3); -use information_schema; - -now check whether all new objects exists in IS ... --------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MEMORY -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL db_datadict res_t_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references -NULL db_datadict res_v_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL db_datadict res_v_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401013 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401013 FUNCTION DEFINER -sp_6_401013 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -res_t_401013 db_datadict i_6_401013 HASH -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -'u_6_401013'@'localhost' NULL USAGE NO -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop index i_6_401013 on res_t_401013; -drop table db_datadict.res_t_401013; -drop view db_datadict.res_v_401013; -DROP USER u_6_401013@localhost; -drop procedure sp_6_401013; -drop function fn_6_401013; -drop database db_datadict; -use information_schema; - -and now check whether all objects are removed from IS ... ---------------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER - -Testcase 3.2.1.14: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401014(f1 char(10), f2 varchar(25), f3 int); -create view res_v_401014 as select * from res_t_401014; -create procedure sp_6_401014() select 'db_datadict'; -create function fn_6_401014() returns int return 0; - -show existing objects >before< changing them ... ------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_t_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict res_v_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_v_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401014 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401014 FUNCTION DEFINER -sp_6_401014 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -alter table res_t_401014 change f1 ff1 int; -alter table res_t_401014 engine = MyISAM; -alter table res_t_401014 change f3 f3_new bigint; -alter view res_v_401014 as select ff1 from res_t_401014; -alter procedure sp_6_401014 sql security invoker; -alter function fn_6_401014 comment 'updated comments'; -alter database db_datadict character set utf8; - -now check whether the changes are visible in IS ... ---------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict utf8 utf8_general_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_t_401014 f3_new 3 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL db_datadict res_v_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401014 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401014 FUNCTION DEFINER -sp_6_401014 PROCEDURE INVOKER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop table db_datadict.res_t_401014; -drop view db_datadict.res_v_401014; -drop procedure sp_6_401014; -drop function fn_6_401014; -drop database db_datadict; - -Testcase 3.2.1.15: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401015(f1 char(10), f2 text(25), f3 int); -create view res_v_401015 as select * from res_t_401015; -CREATE USER u_6_401015@localhost; -create procedure sp_6_401015() select 'test'; -create function fn_6_401015() returns int return 0; -create index i_6_401015 on res_t_401015(f3); - -show existing objects >before< dropping them ... ------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL db_datadict res_t_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references -NULL db_datadict res_v_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL db_datadict res_v_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401015 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401015 FUNCTION DEFINER -sp_6_401015 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -res_t_401015 db_datadict i_6_401015 BTREE -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -'u_6_401015'@'localhost' NULL USAGE NO -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop index i_6_401015 on res_t_401015; -drop table db_datadict.res_t_401015; -drop view db_datadict.res_v_401015; -DROP USER u_6_401015@localhost; -drop procedure sp_6_401015; -drop function fn_6_401015; - -now check they are really gone ... ----------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER - -Testcase 3.2.1.16: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE DATABASE db_hidden; -USE db_hidden; -CREATE TABLE tb_hidden ( c1 TEXT ); -USE db_datadict; -CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int); -CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int); -CREATE USER 'u_6_401016'@'localhost'; -GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,u_6_401016,,test,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SELECT table_schema, table_name, engine -FROM TABLES; -table_schema table_name engine -information_schema CHARACTER_SETS MEMORY -information_schema COLLATIONS MEMORY -information_schema COLLATION_CHARACTER_SET_APPLICABILITY MEMORY -information_schema COLUMNS MyISAM -information_schema COLUMN_PRIVILEGES MEMORY -information_schema KEY_COLUMN_USAGE MEMORY -information_schema ROUTINES MyISAM -information_schema SCHEMATA MEMORY -information_schema SCHEMA_PRIVILEGES MEMORY -information_schema STATISTICS MEMORY -information_schema TABLES MEMORY -information_schema TABLE_CONSTRAINTS MEMORY -information_schema TABLE_PRIVILEGES MEMORY -information_schema TRIGGERS MyISAM -information_schema USER_PRIVILEGES MEMORY -information_schema VIEWS MyISAM -db_datadict res_t_401016 MyISAM -test t1 MEMORY -test t10 MEMORY -test t11 MEMORY -test t2 MEMORY -test t3 MEMORY -test t4 MEMORY -test t7 MEMORY -test t8 MEMORY -test t9 MEMORY -test tb1 MEMORY -test tb2 MEMORY -test tb3 MEMORY -test tb4 MEMORY -SHOW TABLES; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL - -root@localhost db_datadict -grant usage on information_schema.* to 'u_6_401016'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,u_6_401016,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SHOW TABLES; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -use db_datadict; - -root@localhost db_datadict -DROP USER 'u_6_401016'@'localhost'; -drop table res_t_401016; -drop table res_t_401016_1; -DROP DATABASE db_hidden; - -Testcase 3.2.1.17: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401017'@'localhost'; -grant select on information_schema.* to u_6_401017@localhost; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; -select * from collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -cp850_bin cp850 -hp8_english_ci hp8 -hp8_bin hp8 -koi8r_general_ci koi8r -koi8r_bin koi8r -latin1_german1_ci latin1 -latin1_swedish_ci latin1 -latin1_danish_ci latin1 -latin1_german2_ci latin1 -latin1_bin latin1 -latin1_general_ci latin1 -latin1_general_cs latin1 -latin1_spanish_ci latin1 -latin2_czech_cs latin2 -latin2_general_ci latin2 -latin2_hungarian_ci latin2 -latin2_croatian_ci latin2 -latin2_bin latin2 -swe7_swedish_ci swe7 -swe7_bin swe7 -ascii_general_ci ascii -ascii_bin ascii -ujis_japanese_ci ujis -ujis_bin ujis -sjis_japanese_ci sjis -sjis_bin sjis -hebrew_general_ci hebrew -hebrew_bin hebrew -tis620_thai_ci tis620 -tis620_bin tis620 -euckr_korean_ci euckr -euckr_bin euckr -koi8u_general_ci koi8u -koi8u_bin koi8u -gb2312_chinese_ci gb2312 -gb2312_bin gb2312 -greek_general_ci greek -greek_bin greek -cp1250_general_ci cp1250 -cp1250_czech_cs cp1250 -cp1250_croatian_ci cp1250 -cp1250_bin cp1250 -gbk_chinese_ci gbk -gbk_bin gbk -latin5_turkish_ci latin5 -latin5_bin latin5 -armscii8_general_ci armscii8 -armscii8_bin armscii8 -utf8_general_ci utf8 -utf8_bin utf8 -utf8_unicode_ci utf8 -utf8_icelandic_ci utf8 -utf8_latvian_ci utf8 -utf8_romanian_ci utf8 -utf8_slovenian_ci utf8 -utf8_polish_ci utf8 -utf8_estonian_ci utf8 -utf8_spanish_ci utf8 -utf8_swedish_ci utf8 -utf8_turkish_ci utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_lithuanian_ci utf8 -utf8_slovak_ci utf8 -utf8_spanish2_ci utf8 -utf8_roman_ci utf8 -utf8_persian_ci utf8 -utf8_esperanto_ci utf8 -utf8_hungarian_ci utf8 -ucs2_general_ci ucs2 -ucs2_bin ucs2 -ucs2_unicode_ci ucs2 -ucs2_icelandic_ci ucs2 -ucs2_latvian_ci ucs2 -ucs2_romanian_ci ucs2 -ucs2_slovenian_ci ucs2 -ucs2_polish_ci ucs2 -ucs2_estonian_ci ucs2 -ucs2_spanish_ci ucs2 -ucs2_swedish_ci ucs2 -ucs2_turkish_ci ucs2 -ucs2_czech_ci ucs2 -ucs2_danish_ci ucs2 -ucs2_lithuanian_ci ucs2 -ucs2_slovak_ci ucs2 -ucs2_spanish2_ci ucs2 -ucs2_roman_ci ucs2 -ucs2_persian_ci ucs2 -ucs2_esperanto_ci ucs2 -ucs2_hungarian_ci ucs2 -cp866_general_ci cp866 -cp866_bin cp866 -keybcs2_general_ci keybcs2 -keybcs2_bin keybcs2 -macce_general_ci macce -macce_bin macce -macroman_general_ci macroman -macroman_bin macroman -cp852_general_ci cp852 -cp852_bin cp852 -latin7_estonian_cs latin7 -latin7_general_ci latin7 -latin7_general_cs latin7 -latin7_bin latin7 -cp1251_bulgarian_ci cp1251 -cp1251_ukrainian_ci cp1251 -cp1251_bin cp1251 -cp1251_general_ci cp1251 -cp1251_general_cs cp1251 -cp1256_general_ci cp1256 -cp1256_bin cp1256 -cp1257_lithuanian_ci cp1257 -cp1257_bin cp1257 -cp1257_general_ci cp1257 -binary binary -geostd8_general_ci geostd8 -geostd8_bin geostd8 -cp932_japanese_ci cp932 -cp932_bin cp932 -eucjpms_japanese_ci eucjpms -eucjpms_bin eucjpms -select * from schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL -select table_name from tables; -table_name -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -t1 -t10 -t11 -t2 -t3 -t4 -t7 -t8 -t9 -tb1 -tb2 -tb3 -tb4 -select table_name, column_name, column_type from columns; -table_name column_name column_type -CHARACTER_SETS CHARACTER_SET_NAME varchar(64) -CHARACTER_SETS DEFAULT_COLLATE_NAME varchar(64) -CHARACTER_SETS DESCRIPTION varchar(60) -CHARACTER_SETS MAXLEN bigint(3) -COLLATIONS COLLATION_NAME varchar(64) -COLLATIONS CHARACTER_SET_NAME varchar(64) -COLLATIONS ID bigint(11) -COLLATIONS IS_DEFAULT varchar(3) -COLLATIONS IS_COMPILED varchar(3) -COLLATIONS SORTLEN bigint(3) -COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar(64) -COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar(64) -COLUMNS TABLE_CATALOG varchar(4096) -COLUMNS TABLE_SCHEMA varchar(64) -COLUMNS TABLE_NAME varchar(64) -COLUMNS COLUMN_NAME varchar(64) -COLUMNS ORDINAL_POSITION bigint(21) -COLUMNS COLUMN_DEFAULT longtext -COLUMNS IS_NULLABLE varchar(3) -COLUMNS DATA_TYPE varchar(64) -COLUMNS CHARACTER_MAXIMUM_LENGTH bigint(21) -COLUMNS CHARACTER_OCTET_LENGTH bigint(21) -COLUMNS NUMERIC_PRECISION bigint(21) -COLUMNS NUMERIC_SCALE bigint(21) -COLUMNS CHARACTER_SET_NAME varchar(64) -COLUMNS COLLATION_NAME varchar(64) -COLUMNS COLUMN_TYPE longtext -COLUMNS COLUMN_KEY varchar(3) -COLUMNS EXTRA varchar(20) -COLUMNS PRIVILEGES varchar(80) -COLUMNS COLUMN_COMMENT varchar(255) -COLUMN_PRIVILEGES GRANTEE varchar(81) -COLUMN_PRIVILEGES TABLE_CATALOG varchar(4096) -COLUMN_PRIVILEGES TABLE_SCHEMA varchar(64) -COLUMN_PRIVILEGES TABLE_NAME varchar(64) -COLUMN_PRIVILEGES COLUMN_NAME varchar(64) -COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar(64) -COLUMN_PRIVILEGES IS_GRANTABLE varchar(3) -KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar(4096) -KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar(64) -KEY_COLUMN_USAGE CONSTRAINT_NAME varchar(64) -KEY_COLUMN_USAGE TABLE_CATALOG varchar(4096) -KEY_COLUMN_USAGE TABLE_SCHEMA varchar(64) -KEY_COLUMN_USAGE TABLE_NAME varchar(64) -KEY_COLUMN_USAGE COLUMN_NAME varchar(64) -KEY_COLUMN_USAGE ORDINAL_POSITION bigint(10) -KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint(10) -KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar(64) -KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar(64) -KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar(64) -ROUTINES SPECIFIC_NAME varchar(64) -ROUTINES ROUTINE_CATALOG varchar(4096) -ROUTINES ROUTINE_SCHEMA varchar(64) -ROUTINES ROUTINE_NAME varchar(64) -ROUTINES ROUTINE_TYPE varchar(9) -ROUTINES DTD_IDENTIFIER varchar(64) -ROUTINES ROUTINE_BODY varchar(8) -ROUTINES ROUTINE_DEFINITION longtext -ROUTINES EXTERNAL_NAME varchar(64) -ROUTINES EXTERNAL_LANGUAGE varchar(64) -ROUTINES PARAMETER_STYLE varchar(8) -ROUTINES IS_DETERMINISTIC varchar(3) -ROUTINES SQL_DATA_ACCESS varchar(64) -ROUTINES SQL_PATH varchar(64) -ROUTINES SECURITY_TYPE varchar(7) -ROUTINES CREATED datetime -ROUTINES LAST_ALTERED datetime -ROUTINES SQL_MODE longtext -ROUTINES ROUTINE_COMMENT varchar(64) -ROUTINES DEFINER varchar(77) -SCHEMATA CATALOG_NAME varchar(4096) -SCHEMATA SCHEMA_NAME varchar(64) -SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar(64) -SCHEMATA DEFAULT_COLLATION_NAME varchar(64) -SCHEMATA SQL_PATH varchar(4096) -SCHEMA_PRIVILEGES GRANTEE varchar(81) -SCHEMA_PRIVILEGES TABLE_CATALOG varchar(4096) -SCHEMA_PRIVILEGES TABLE_SCHEMA varchar(64) -SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar(64) -SCHEMA_PRIVILEGES IS_GRANTABLE varchar(3) -STATISTICS TABLE_CATALOG varchar(4096) -STATISTICS TABLE_SCHEMA varchar(64) -STATISTICS TABLE_NAME varchar(64) -STATISTICS NON_UNIQUE bigint(1) -STATISTICS INDEX_SCHEMA varchar(64) -STATISTICS INDEX_NAME varchar(64) -STATISTICS SEQ_IN_INDEX bigint(2) -STATISTICS COLUMN_NAME varchar(64) -STATISTICS COLLATION varchar(1) -STATISTICS CARDINALITY bigint(21) -STATISTICS SUB_PART bigint(3) -STATISTICS PACKED varchar(10) -STATISTICS NULLABLE varchar(3) -STATISTICS INDEX_TYPE varchar(16) -STATISTICS COMMENT varchar(16) -TABLES TABLE_CATALOG varchar(4096) -TABLES TABLE_SCHEMA varchar(64) -TABLES TABLE_NAME varchar(64) -TABLES TABLE_TYPE varchar(64) -TABLES ENGINE varchar(64) -TABLES VERSION bigint(21) -TABLES ROW_FORMAT varchar(10) -TABLES TABLE_ROWS bigint(21) -TABLES AVG_ROW_LENGTH bigint(21) -TABLES DATA_LENGTH bigint(21) -TABLES MAX_DATA_LENGTH bigint(21) -TABLES INDEX_LENGTH bigint(21) -TABLES DATA_FREE bigint(21) -TABLES AUTO_INCREMENT bigint(21) -TABLES CREATE_TIME datetime -TABLES UPDATE_TIME datetime -TABLES CHECK_TIME datetime -TABLES TABLE_COLLATION varchar(64) -TABLES CHECKSUM bigint(21) -TABLES CREATE_OPTIONS varchar(255) -TABLES TABLE_COMMENT varchar(80) -TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar(4096) -TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar(64) -TABLE_CONSTRAINTS CONSTRAINT_NAME varchar(64) -TABLE_CONSTRAINTS TABLE_SCHEMA varchar(64) -TABLE_CONSTRAINTS TABLE_NAME varchar(64) -TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar(64) -TABLE_PRIVILEGES GRANTEE varchar(81) -TABLE_PRIVILEGES TABLE_CATALOG varchar(4096) -TABLE_PRIVILEGES TABLE_SCHEMA varchar(64) -TABLE_PRIVILEGES TABLE_NAME varchar(64) -TABLE_PRIVILEGES PRIVILEGE_TYPE varchar(64) -TABLE_PRIVILEGES IS_GRANTABLE varchar(3) -TRIGGERS TRIGGER_CATALOG varchar(4096) -TRIGGERS TRIGGER_SCHEMA varchar(64) -TRIGGERS TRIGGER_NAME varchar(64) -TRIGGERS EVENT_MANIPULATION varchar(6) -TRIGGERS EVENT_OBJECT_CATALOG varchar(4096) -TRIGGERS EVENT_OBJECT_SCHEMA varchar(64) -TRIGGERS EVENT_OBJECT_TABLE varchar(64) -TRIGGERS ACTION_ORDER bigint(4) -TRIGGERS ACTION_CONDITION longtext -TRIGGERS ACTION_STATEMENT longtext -TRIGGERS ACTION_ORIENTATION varchar(9) -TRIGGERS ACTION_TIMING varchar(6) -TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar(64) -TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar(64) -TRIGGERS ACTION_REFERENCE_OLD_ROW varchar(3) -TRIGGERS ACTION_REFERENCE_NEW_ROW varchar(3) -TRIGGERS CREATED datetime -TRIGGERS SQL_MODE longtext -TRIGGERS DEFINER longtext -USER_PRIVILEGES GRANTEE varchar(81) -USER_PRIVILEGES TABLE_CATALOG varchar(4096) -USER_PRIVILEGES PRIVILEGE_TYPE varchar(64) -USER_PRIVILEGES IS_GRANTABLE varchar(3) -VIEWS TABLE_CATALOG varchar(4096) -VIEWS TABLE_SCHEMA varchar(64) -VIEWS TABLE_NAME varchar(64) -VIEWS VIEW_DEFINITION longtext -VIEWS CHECK_OPTION varchar(8) -VIEWS IS_UPDATABLE varchar(3) -VIEWS DEFINER varchar(77) -VIEWS SECURITY_TYPE varchar(7) -t1 f1 char(20) -t1 f2 char(25) -t1 f3 date -t1 f4 int(11) -t1 f5 char(25) -t1 f6 int(11) -t10 f1 char(20) -t10 f2 char(25) -t10 f3 date -t10 f4 int(11) -t10 f5 char(25) -t10 f6 int(11) -t11 f1 char(20) -t11 f2 char(25) -t11 f3 date -t11 f4 int(11) -t11 f5 char(25) -t11 f6 int(11) -t2 f1 char(20) -t2 f2 char(25) -t2 f3 date -t2 f4 int(11) -t2 f5 char(25) -t2 f6 int(11) -t3 f1 char(20) -t3 f2 char(20) -t3 f3 int(11) -t4 f1 char(20) -t4 f2 char(25) -t4 f3 date -t4 f4 int(11) -t4 f5 char(25) -t4 f6 int(11) -t7 f1 char(20) -t7 f2 char(25) -t7 f3 date -t7 f4 int(11) -t8 f1 char(20) -t8 f2 char(25) -t8 f3 date -t8 f4 int(11) -t9 f1 int(11) -t9 f2 char(25) -t9 f3 int(11) -tb1 f1 char(1) -tb1 f2 char(1) -tb1 f3 char(1) -tb1 f12 binary(1) -tb1 f13 tinyint(4) -tb1 f14 tinyint(3) unsigned -tb1 f15 tinyint(3) unsigned zerofill -tb1 f16 tinyint(3) unsigned zerofill -tb1 f17 smallint(6) -tb1 f18 smallint(5) unsigned -tb1 f19 smallint(5) unsigned zerofill -tb1 f20 smallint(5) unsigned zerofill -tb1 f21 mediumint(9) -tb1 f22 mediumint(8) unsigned -tb1 f23 mediumint(8) unsigned zerofill -tb1 f24 mediumint(8) unsigned zerofill -tb1 f25 int(11) -tb1 f26 int(10) unsigned -tb1 f27 int(10) unsigned zerofill -tb1 f28 int(10) unsigned zerofill -tb1 f29 bigint(20) -tb1 f30 bigint(20) unsigned -tb1 f31 bigint(20) unsigned zerofill -tb1 f32 bigint(20) unsigned zerofill -tb1 f33 decimal(10,0) -tb1 f34 decimal(10,0) unsigned -tb1 f35 decimal(10,0) unsigned zerofill -tb1 f36 decimal(10,0) unsigned zerofill -tb1 f37 decimal(10,0) -tb1 f38 decimal(64,0) -tb1 f39 decimal(10,0) unsigned -tb1 f40 decimal(64,0) unsigned -tb1 f41 decimal(10,0) unsigned zerofill -tb1 f42 decimal(64,0) unsigned zerofill -tb1 f43 decimal(10,0) unsigned zerofill -tb1 f44 decimal(64,0) unsigned zerofill -tb1 f45 decimal(10,0) -tb1 f46 decimal(63,30) -tb1 f47 decimal(10,0) unsigned -tb1 f48 decimal(63,30) unsigned -tb1 f49 decimal(10,0) unsigned zerofill -tb1 f50 decimal(63,30) unsigned zerofill -tb1 f51 decimal(10,0) unsigned zerofill -tb1 f52 decimal(63,30) unsigned zerofill -tb1 f53 decimal(10,0) -tb1 f54 decimal(10,0) unsigned -tb1 f55 decimal(10,0) unsigned zerofill -tb1 f56 decimal(10,0) unsigned zerofill -tb1 f57 decimal(10,0) -tb1 f58 decimal(64,0) -tb2 f59 decimal(10,0) unsigned -tb2 f60 decimal(64,0) unsigned -tb2 f61 decimal(10,0) unsigned zerofill -tb2 f62 decimal(64,0) unsigned zerofill -tb2 f63 decimal(10,0) unsigned zerofill -tb2 f64 decimal(64,0) unsigned zerofill -tb2 f65 decimal(10,0) -tb2 f66 decimal(63,30) -tb2 f67 decimal(10,0) unsigned -tb2 f68 decimal(63,30) unsigned -tb2 f69 decimal(10,0) unsigned zerofill -tb2 f70 decimal(63,30) unsigned zerofill -tb2 f71 decimal(10,0) unsigned zerofill -tb2 f72 decimal(63,30) unsigned zerofill -tb2 f73 double -tb2 f74 double unsigned -tb2 f75 double unsigned zerofill -tb2 f76 double unsigned zerofill -tb2 f77 double -tb2 f78 double unsigned -tb2 f79 double unsigned zerofill -tb2 f80 double unsigned zerofill -tb2 f81 float -tb2 f82 float unsigned -tb2 f83 float unsigned zerofill -tb2 f84 float unsigned zerofill -tb2 f85 float -tb2 f86 float -tb2 f87 float unsigned -tb2 f88 float unsigned -tb2 f89 float unsigned zerofill -tb2 f90 float unsigned zerofill -tb2 f91 float unsigned zerofill -tb2 f92 float unsigned zerofill -tb2 f93 float -tb2 f94 double -tb2 f95 float unsigned -tb2 f96 double unsigned -tb2 f97 float unsigned zerofill -tb2 f98 double unsigned zerofill -tb2 f99 float unsigned zerofill -tb2 f100 double unsigned zerofill -tb2 f101 date -tb2 f102 time -tb2 f103 datetime -tb2 f104 timestamp -tb2 f105 year(4) -tb2 f106 year(4) -tb2 f107 year(4) -tb2 f108 enum('1enum','2enum') -tb2 f109 set('1set','2set') -tb3 f118 char(1) -tb3 f119 char(1) -tb3 f120 char(1) -tb3 f121 char(50) -tb3 f122 char(50) -tb3 f129 binary(1) -tb3 f130 tinyint(4) -tb3 f131 tinyint(3) unsigned -tb3 f132 tinyint(3) unsigned zerofill -tb3 f133 tinyint(3) unsigned zerofill -tb3 f134 smallint(6) -tb3 f135 smallint(5) unsigned -tb3 f136 smallint(5) unsigned zerofill -tb3 f137 smallint(5) unsigned zerofill -tb3 f138 mediumint(9) -tb3 f139 mediumint(8) unsigned -tb3 f140 mediumint(8) unsigned zerofill -tb3 f141 mediumint(8) unsigned zerofill -tb3 f142 int(11) -tb3 f143 int(10) unsigned -tb3 f144 int(10) unsigned zerofill -tb3 f145 int(10) unsigned zerofill -tb3 f146 bigint(20) -tb3 f147 bigint(20) unsigned -tb3 f148 bigint(20) unsigned zerofill -tb3 f149 bigint(20) unsigned zerofill -tb3 f150 decimal(10,0) -tb3 f151 decimal(10,0) unsigned -tb3 f152 decimal(10,0) unsigned zerofill -tb3 f153 decimal(10,0) unsigned zerofill -tb3 f154 decimal(10,0) -tb3 f155 decimal(64,0) -tb3 f156 decimal(10,0) unsigned -tb3 f157 decimal(64,0) unsigned -tb3 f158 decimal(10,0) unsigned zerofill -tb3 f159 decimal(64,0) unsigned zerofill -tb3 f160 decimal(10,0) unsigned zerofill -tb3 f161 decimal(64,0) unsigned zerofill -tb3 f162 decimal(10,0) -tb3 f163 decimal(63,30) -tb3 f164 decimal(10,0) unsigned -tb3 f165 decimal(63,30) unsigned -tb3 f166 decimal(10,0) unsigned zerofill -tb3 f167 decimal(63,30) unsigned zerofill -tb3 f168 decimal(10,0) unsigned zerofill -tb3 f169 decimal(63,30) unsigned zerofill -tb3 f170 decimal(10,0) -tb3 f171 decimal(10,0) unsigned -tb3 f172 decimal(10,0) unsigned zerofill -tb3 f173 decimal(10,0) unsigned zerofill -tb3 f174 decimal(10,0) -tb3 f175 decimal(64,0) -tb4 f176 decimal(10,0) unsigned -tb4 f177 decimal(64,0) unsigned -tb4 f178 decimal(10,0) unsigned zerofill -tb4 f179 decimal(64,0) unsigned zerofill -tb4 f180 decimal(10,0) unsigned zerofill -tb4 f181 decimal(64,0) unsigned zerofill -tb4 f182 decimal(10,0) -tb4 f183 decimal(63,30) -tb4 f184 decimal(10,0) unsigned -tb4 f185 decimal(63,30) unsigned -tb4 f186 decimal(10,0) unsigned zerofill -tb4 f187 decimal(63,30) unsigned zerofill -tb4 f188 decimal(10,0) unsigned zerofill -tb4 f189 decimal(63,30) unsigned zerofill -tb4 f190 double -tb4 f191 double unsigned -tb4 f192 double unsigned zerofill -tb4 f193 double unsigned zerofill -tb4 f194 double -tb4 f195 double unsigned -tb4 f196 double unsigned zerofill -tb4 f197 double unsigned zerofill -tb4 f198 float -tb4 f199 float unsigned -tb4 f200 float unsigned zerofill -tb4 f201 float unsigned zerofill -tb4 f202 float -tb4 f203 float -tb4 f204 float unsigned -tb4 f205 float unsigned -tb4 f206 float unsigned zerofill -tb4 f207 float unsigned zerofill -tb4 f208 float unsigned zerofill -tb4 f209 float unsigned zerofill -tb4 f210 float -tb4 f211 double -tb4 f212 float unsigned -tb4 f213 double unsigned -tb4 f214 float unsigned zerofill -tb4 f215 double unsigned zerofill -tb4 f216 float unsigned zerofill -tb4 f217 double unsigned zerofill -tb4 f218 date -tb4 f219 time -tb4 f220 datetime -tb4 f221 timestamp -tb4 f222 year(4) -tb4 f223 year(4) -tb4 f224 year(4) -tb4 f225 enum('1enum','2enum') -tb4 f226 set('1set','2set') -tb4 f236 char(95) -tb4 f241 char(255) -tb4 f237 char(130) -tb4 f238 varchar(25000) -tb4 f239 varbinary(0) -tb4 f240 varchar(1200) -select character_set_name from character_sets; -character_set_name -big5 -dec8 -cp850 -hp8 -koi8r -latin1 -latin2 -swe7 -ascii -ujis -sjis -hebrew -tis620 -euckr -koi8u -gb2312 -greek -cp1250 -gbk -latin5 -armscii8 -utf8 -ucs2 -cp866 -keybcs2 -macce -macroman -cp852 -latin7 -cp1251 -cp1256 -cp1257 -binary -geostd8 -cp932 -eucjpms -select collation_name from collations where collation_name <> 'utf8_general_cs'; -collation_name -big5_chinese_ci -big5_bin -dec8_swedish_ci -dec8_bin -cp850_general_ci -cp850_bin -hp8_english_ci -hp8_bin -koi8r_general_ci -koi8r_bin -latin1_german1_ci -latin1_swedish_ci -latin1_danish_ci -latin1_german2_ci -latin1_bin -latin1_general_ci -latin1_general_cs -latin1_spanish_ci -latin2_czech_cs -latin2_general_ci -latin2_hungarian_ci -latin2_croatian_ci -latin2_bin -swe7_swedish_ci -swe7_bin -ascii_general_ci -ascii_bin -ujis_japanese_ci -ujis_bin -sjis_japanese_ci -sjis_bin -hebrew_general_ci -hebrew_bin -tis620_thai_ci -tis620_bin -euckr_korean_ci -euckr_bin -koi8u_general_ci -koi8u_bin -gb2312_chinese_ci -gb2312_bin -greek_general_ci -greek_bin -cp1250_general_ci -cp1250_czech_cs -cp1250_croatian_ci -cp1250_bin -gbk_chinese_ci -gbk_bin -latin5_turkish_ci -latin5_bin -armscii8_general_ci -armscii8_bin -utf8_general_ci -utf8_bin -utf8_unicode_ci -utf8_icelandic_ci -utf8_latvian_ci -utf8_romanian_ci -utf8_slovenian_ci -utf8_polish_ci -utf8_estonian_ci -utf8_spanish_ci -utf8_swedish_ci -utf8_turkish_ci -utf8_czech_ci -utf8_danish_ci -utf8_lithuanian_ci -utf8_slovak_ci -utf8_spanish2_ci -utf8_roman_ci -utf8_persian_ci -utf8_esperanto_ci -utf8_hungarian_ci -ucs2_general_ci -ucs2_bin -ucs2_unicode_ci -ucs2_icelandic_ci -ucs2_latvian_ci -ucs2_romanian_ci -ucs2_slovenian_ci -ucs2_polish_ci -ucs2_estonian_ci -ucs2_spanish_ci -ucs2_swedish_ci -ucs2_turkish_ci -ucs2_czech_ci -ucs2_danish_ci -ucs2_lithuanian_ci -ucs2_slovak_ci -ucs2_spanish2_ci -ucs2_roman_ci -ucs2_persian_ci -ucs2_esperanto_ci -ucs2_hungarian_ci -cp866_general_ci -cp866_bin -keybcs2_general_ci -keybcs2_bin -macce_general_ci -macce_bin -macroman_general_ci -macroman_bin -cp852_general_ci -cp852_bin -latin7_estonian_cs -latin7_general_ci -latin7_general_cs -latin7_bin -cp1251_bulgarian_ci -cp1251_ukrainian_ci -cp1251_bin -cp1251_general_ci -cp1251_general_cs -cp1256_general_ci -cp1256_bin -cp1257_lithuanian_ci -cp1257_bin -cp1257_general_ci -binary -geostd8_general_ci -geostd8_bin -cp932_japanese_ci -cp932_bin -eucjpms_japanese_ci -eucjpms_bin -select routine_name, routine_type from routines; -routine_name routine_type -select table_name, index_name from statistics; -table_name index_name -select table_name from views; -table_name -select privilege_type from user_privileges; -privilege_type -USAGE -select grantee, privilege_type from schema_privileges; -grantee privilege_type -select * from table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select column_name, privilege_type from column_privileges; -column_name privilege_type -select table_name,constraint_type from table_constraints; -table_name constraint_type -select table_schema, table_name, column_name from key_column_usage; -table_schema table_name column_name - -root@localhost db_datadict -DROP USER 'u_6_401017'@'localhost'; - -Testcase 3.2.1.18: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401018'@'localhost'; -GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost'; -SHOW GRANTS FOR 'u_6_401018'@'localhost'; -Grants for u_6_401018@localhost -GRANT USAGE ON *.* TO 'u_6_401018'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'u_6_401018'@'localhost' -FLUSH PRIVILEGES; -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -connect(localhost,u_6_401018,,test,MYSQL_PORT,MYSQL_SOCK); -USE db_datadict; -create view db_datadict.v_401018 as -select * from information_schema.schemata; -SELECT * FROM v_401018 ORDER BY 2 DESC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL - -root@localhost NULL -DROP USER 'u_6_401018'@'localhost'; -DROP DATABASE db_datadict; - -Testcase 3.2.1.19: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401019'@'localhost'; -grant alter on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant alter routine on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create routine on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create temporary tables -on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant delete on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant drop on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant execute on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant index on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant insert on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant lock tables on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant update on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -SELECT * FROM information_schema.table_privileges -WHERE table_schema = "information_schema"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM information_schema.column_privileges -WHERE table_schema = "information_schema"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -DROP USER 'u_6_401019'@'localhost'; - -Testcase 3.2.1.20: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401020'@'localhost'; -connect(localhost,u_6_401020,,test,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL -CREATE TABLE tb_not_allowed ( col TEXT ); -ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema -create view res_v1 as select * from information_schema.schemata; -ERROR 42S02: Unknown table 'res_v1' in information_schema -alter table schemata modify catalog_name varchar(255); -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' -update schemata set catalog_name = 'abc' - where schema_name = 'information_schema'; -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' -CREATE PROCEDURE sp_3_2_1_20() -BEGIN -INSERT INTO information_schema.schema_privileges (table_schema,privilege_type) -VALUES('db2','insert'); -END// -ERROR 42000: Unknown database 'information_schema' -DELETE FROM schemata WHERE schema_name = 'information_schema'; -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' - -root@localhost NULL -DROP USER 'u_6_401020'@'localhost'; - -Testcase 3.2.2.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC character_sets; -Field Type Null Key Default Extra -CHARACTER_SET_NAME varchar(64) NO -DEFAULT_COLLATE_NAME varchar(64) NO -DESCRIPTION varchar(60) NO -MAXLEN bigint(3) NO 0 -SHOW CREATE TABLE character_sets; -Table Create Table -CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` ( - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '', - `DESCRIPTION` varchar(60) NOT NULL default '', - `MAXLEN` bigint(3) NOT NULL default '0' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'character_sets' -ORDER BY ordinal_position; -COUNT(*) -4 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'character_sets' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select - -Testcase 3.2.2.2: --------------------------------------------------------------------------------- - -root@localhost information_schema -SELECT * FROM information_schema.character_sets; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -latin1 latin1_swedish_ci cp1252 West European 1 -latin2 latin2_general_ci ISO 8859-2 Central European 1 -swe7 swe7_swedish_ci 7bit Swedish 1 -ascii ascii_general_ci US ASCII 1 -ujis ujis_japanese_ci EUC-JP Japanese 3 -sjis sjis_japanese_ci Shift-JIS Japanese 2 -hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 -tis620 tis620_thai_ci TIS620 Thai 1 -euckr euckr_korean_ci EUC-KR Korean 2 -koi8u koi8u_general_ci KOI8-U Ukrainian 1 -gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 -greek greek_general_ci ISO 8859-7 Greek 1 -cp1250 cp1250_general_ci Windows Central European 1 -gbk gbk_chinese_ci GBK Simplified Chinese 2 -latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 -armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 -utf8 utf8_general_ci UTF-8 Unicode 3 -ucs2 ucs2_general_ci UCS-2 Unicode 2 -cp866 cp866_general_ci DOS Russian 1 -keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 -macce macce_general_ci Mac Central European 1 -macroman macroman_general_ci Mac West European 1 -cp852 cp852_general_ci DOS Central European 1 -latin7 latin7_general_ci ISO 8859-13 Baltic 1 -cp1251 cp1251_general_ci Windows Cyrillic 1 -cp1256 cp1256_general_ci Windows Arabic 1 -cp1257 cp1257_general_ci Windows Baltic 1 -binary binary Binary pseudo charset 1 -geostd8 geostd8_general_ci GEOSTD8 Georgian 1 -cp932 cp932_japanese_ci SJIS for Windows Japanese 2 -eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 - -Testcase 3.2.2.3: --------------------------------------------------------------------------------- - -Testcase 3.2.3.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC collations; -Field Type Null Key Default Extra -COLLATION_NAME varchar(64) NO -CHARACTER_SET_NAME varchar(64) NO -ID bigint(11) NO 0 -IS_DEFAULT varchar(3) NO -IS_COMPILED varchar(3) NO -SORTLEN bigint(3) NO 0 -SHOW CREATE TABLE collations; -Table Create Table -COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` ( - `COLLATION_NAME` varchar(64) NOT NULL default '', - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `ID` bigint(11) NOT NULL default '0', - `IS_DEFAULT` varchar(3) NOT NULL default '', - `IS_COMPILED` varchar(3) NOT NULL default '', - `SORTLEN` bigint(3) NOT NULL default '0' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collations' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collations' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select - -Testcase 3.2.3.2: --------------------------------------------------------------------------------- -SELECT * FROM collations where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -big5_bin big5 84 Yes 1 -dec8_swedish_ci dec8 3 Yes 0 -dec8_bin dec8 69 0 -cp850_general_ci cp850 4 Yes 0 -cp850_bin cp850 80 0 -hp8_english_ci hp8 6 Yes 0 -hp8_bin hp8 72 0 -koi8r_general_ci koi8r 7 Yes 0 -koi8r_bin koi8r 74 0 -latin1_german1_ci latin1 5 Yes 1 -latin1_swedish_ci latin1 8 Yes Yes 1 -latin1_danish_ci latin1 15 Yes 1 -latin1_german2_ci latin1 31 Yes 2 -latin1_bin latin1 47 Yes 1 -latin1_general_ci latin1 48 Yes 1 -latin1_general_cs latin1 49 Yes 1 -latin1_spanish_ci latin1 94 Yes 1 -latin2_czech_cs latin2 2 Yes 4 -latin2_general_ci latin2 9 Yes Yes 1 -latin2_hungarian_ci latin2 21 Yes 1 -latin2_croatian_ci latin2 27 Yes 1 -latin2_bin latin2 77 Yes 1 -swe7_swedish_ci swe7 10 Yes 0 -swe7_bin swe7 82 0 -ascii_general_ci ascii 11 Yes 0 -ascii_bin ascii 65 0 -ujis_japanese_ci ujis 12 Yes Yes 1 -ujis_bin ujis 91 Yes 1 -sjis_japanese_ci sjis 13 Yes Yes 1 -sjis_bin sjis 88 Yes 1 -hebrew_general_ci hebrew 16 Yes 0 -hebrew_bin hebrew 71 0 -tis620_thai_ci tis620 18 Yes Yes 4 -tis620_bin tis620 89 Yes 1 -euckr_korean_ci euckr 19 Yes Yes 1 -euckr_bin euckr 85 Yes 1 -koi8u_general_ci koi8u 22 Yes 0 -koi8u_bin koi8u 75 0 -gb2312_chinese_ci gb2312 24 Yes Yes 1 -gb2312_bin gb2312 86 Yes 1 -greek_general_ci greek 25 Yes 0 -greek_bin greek 70 0 -cp1250_general_ci cp1250 26 Yes Yes 1 -cp1250_czech_cs cp1250 34 Yes 2 -cp1250_croatian_ci cp1250 44 Yes 1 -cp1250_bin cp1250 66 Yes 1 -gbk_chinese_ci gbk 28 Yes Yes 1 -gbk_bin gbk 87 Yes 1 -latin5_turkish_ci latin5 30 Yes 0 -latin5_bin latin5 78 0 -armscii8_general_ci armscii8 32 Yes 0 -armscii8_bin armscii8 64 0 -utf8_general_ci utf8 33 Yes Yes 1 -utf8_bin utf8 83 Yes 1 -utf8_unicode_ci utf8 192 Yes 8 -utf8_icelandic_ci utf8 193 Yes 8 -utf8_latvian_ci utf8 194 Yes 8 -utf8_romanian_ci utf8 195 Yes 8 -utf8_slovenian_ci utf8 196 Yes 8 -utf8_polish_ci utf8 197 Yes 8 -utf8_estonian_ci utf8 198 Yes 8 -utf8_spanish_ci utf8 199 Yes 8 -utf8_swedish_ci utf8 200 Yes 8 -utf8_turkish_ci utf8 201 Yes 8 -utf8_czech_ci utf8 202 Yes 8 -utf8_danish_ci utf8 203 Yes 8 -utf8_lithuanian_ci utf8 204 Yes 8 -utf8_slovak_ci utf8 205 Yes 8 -utf8_spanish2_ci utf8 206 Yes 8 -utf8_roman_ci utf8 207 Yes 8 -utf8_persian_ci utf8 208 Yes 8 -utf8_esperanto_ci utf8 209 Yes 8 -utf8_hungarian_ci utf8 210 Yes 8 -ucs2_general_ci ucs2 35 Yes Yes 1 -ucs2_bin ucs2 90 Yes 1 -ucs2_unicode_ci ucs2 128 Yes 8 -ucs2_icelandic_ci ucs2 129 Yes 8 -ucs2_latvian_ci ucs2 130 Yes 8 -ucs2_romanian_ci ucs2 131 Yes 8 -ucs2_slovenian_ci ucs2 132 Yes 8 -ucs2_polish_ci ucs2 133 Yes 8 -ucs2_estonian_ci ucs2 134 Yes 8 -ucs2_spanish_ci ucs2 135 Yes 8 -ucs2_swedish_ci ucs2 136 Yes 8 -ucs2_turkish_ci ucs2 137 Yes 8 -ucs2_czech_ci ucs2 138 Yes 8 -ucs2_danish_ci ucs2 139 Yes 8 -ucs2_lithuanian_ci ucs2 140 Yes 8 -ucs2_slovak_ci ucs2 141 Yes 8 -ucs2_spanish2_ci ucs2 142 Yes 8 -ucs2_roman_ci ucs2 143 Yes 8 -ucs2_persian_ci ucs2 144 Yes 8 -ucs2_esperanto_ci ucs2 145 Yes 8 -ucs2_hungarian_ci ucs2 146 Yes 8 -cp866_general_ci cp866 36 Yes 0 -cp866_bin cp866 68 0 -keybcs2_general_ci keybcs2 37 Yes 0 -keybcs2_bin keybcs2 73 0 -macce_general_ci macce 38 Yes 0 -macce_bin macce 43 0 -macroman_general_ci macroman 39 Yes 0 -macroman_bin macroman 53 0 -cp852_general_ci cp852 40 Yes 0 -cp852_bin cp852 81 0 -latin7_estonian_cs latin7 20 0 -latin7_general_ci latin7 41 Yes 0 -latin7_general_cs latin7 42 0 -latin7_bin latin7 79 0 -cp1251_bulgarian_ci cp1251 14 0 -cp1251_ukrainian_ci cp1251 23 0 -cp1251_bin cp1251 50 0 -cp1251_general_ci cp1251 51 Yes 0 -cp1251_general_cs cp1251 52 0 -cp1256_general_ci cp1256 57 Yes 0 -cp1256_bin cp1256 67 0 -cp1257_lithuanian_ci cp1257 29 0 -cp1257_bin cp1257 58 0 -cp1257_general_ci cp1257 59 Yes 0 -binary binary 63 Yes Yes 1 -geostd8_general_ci geostd8 92 Yes 0 -geostd8_bin geostd8 93 0 -cp932_japanese_ci cp932 95 Yes Yes 1 -cp932_bin cp932 96 Yes 1 -eucjpms_japanese_ci eucjpms 97 Yes Yes 1 -eucjpms_bin eucjpms 98 Yes 1 - -Testcase 3.2.3.3: --------------------------------------------------------------------------------- - -Testcase 3.2.4.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC collation_character_set_applicability; -Field Type Null Key Default Extra -COLLATION_NAME varchar(64) NO -CHARACTER_SET_NAME varchar(64) NO -SHOW CREATE TABLE collation_character_set_applicability; -Table Create Table -COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` ( - `COLLATION_NAME` varchar(64) NOT NULL default '', - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collation_character_set_applicability' -ORDER BY ordinal_position; -COUNT(*) -2 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collation_character_set_applicability' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.4.2: --------------------------------------------------------------------------------- -SELECT * FROM collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -cp850_bin cp850 -hp8_english_ci hp8 -hp8_bin hp8 -koi8r_general_ci koi8r -koi8r_bin koi8r -latin1_german1_ci latin1 -latin1_swedish_ci latin1 -latin1_danish_ci latin1 -latin1_german2_ci latin1 -latin1_bin latin1 -latin1_general_ci latin1 -latin1_general_cs latin1 -latin1_spanish_ci latin1 -latin2_czech_cs latin2 -latin2_general_ci latin2 -latin2_hungarian_ci latin2 -latin2_croatian_ci latin2 -latin2_bin latin2 -swe7_swedish_ci swe7 -swe7_bin swe7 -ascii_general_ci ascii -ascii_bin ascii -ujis_japanese_ci ujis -ujis_bin ujis -sjis_japanese_ci sjis -sjis_bin sjis -hebrew_general_ci hebrew -hebrew_bin hebrew -tis620_thai_ci tis620 -tis620_bin tis620 -euckr_korean_ci euckr -euckr_bin euckr -koi8u_general_ci koi8u -koi8u_bin koi8u -gb2312_chinese_ci gb2312 -gb2312_bin gb2312 -greek_general_ci greek -greek_bin greek -cp1250_general_ci cp1250 -cp1250_czech_cs cp1250 -cp1250_croatian_ci cp1250 -cp1250_bin cp1250 -gbk_chinese_ci gbk -gbk_bin gbk -latin5_turkish_ci latin5 -latin5_bin latin5 -armscii8_general_ci armscii8 -armscii8_bin armscii8 -utf8_general_ci utf8 -utf8_bin utf8 -utf8_unicode_ci utf8 -utf8_icelandic_ci utf8 -utf8_latvian_ci utf8 -utf8_romanian_ci utf8 -utf8_slovenian_ci utf8 -utf8_polish_ci utf8 -utf8_estonian_ci utf8 -utf8_spanish_ci utf8 -utf8_swedish_ci utf8 -utf8_turkish_ci utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_lithuanian_ci utf8 -utf8_slovak_ci utf8 -utf8_spanish2_ci utf8 -utf8_roman_ci utf8 -utf8_persian_ci utf8 -utf8_esperanto_ci utf8 -utf8_hungarian_ci utf8 -ucs2_general_ci ucs2 -ucs2_bin ucs2 -ucs2_unicode_ci ucs2 -ucs2_icelandic_ci ucs2 -ucs2_latvian_ci ucs2 -ucs2_romanian_ci ucs2 -ucs2_slovenian_ci ucs2 -ucs2_polish_ci ucs2 -ucs2_estonian_ci ucs2 -ucs2_spanish_ci ucs2 -ucs2_swedish_ci ucs2 -ucs2_turkish_ci ucs2 -ucs2_czech_ci ucs2 -ucs2_danish_ci ucs2 -ucs2_lithuanian_ci ucs2 -ucs2_slovak_ci ucs2 -ucs2_spanish2_ci ucs2 -ucs2_roman_ci ucs2 -ucs2_persian_ci ucs2 -ucs2_esperanto_ci ucs2 -ucs2_hungarian_ci ucs2 -cp866_general_ci cp866 -cp866_bin cp866 -keybcs2_general_ci keybcs2 -keybcs2_bin keybcs2 -macce_general_ci macce -macce_bin macce -macroman_general_ci macroman -macroman_bin macroman -cp852_general_ci cp852 -cp852_bin cp852 -latin7_estonian_cs latin7 -latin7_general_ci latin7 -latin7_general_cs latin7 -latin7_bin latin7 -cp1251_bulgarian_ci cp1251 -cp1251_ukrainian_ci cp1251 -cp1251_bin cp1251 -cp1251_general_ci cp1251 -cp1251_general_cs cp1251 -cp1256_general_ci cp1256 -cp1256_bin cp1256 -cp1257_lithuanian_ci cp1257 -cp1257_bin cp1257 -cp1257_general_ci cp1257 -binary binary -geostd8_general_ci geostd8 -geostd8_bin geostd8 -cp932_japanese_ci cp932 -cp932_bin cp932 -eucjpms_japanese_ci eucjpms -eucjpms_bin eucjpms - -Testcase 3.2.4.3: --------------------------------------------------------------------------------- - -Testcase 3.2.5.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC column_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE column_privileges; -Table Create Table -COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'column_privileges' -ORDER BY ordinal_position; -COUNT(*) -7 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'column_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT); -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost'; -GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost'; -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION; -GRANT ALL ON db_datadict.* TO 'user_3'@'localhost'; -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT NO -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE NO -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES - -FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has -------------------------------------------------------------------------------------- -GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION; -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES ---------------------------------------------------------------------------------- -SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 SELECT YES -'user_3'@'localhost' NULL db_datadict res_t40502 INSERT YES -SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict SELECT NO -'user_3'@'localhost' NULL db_datadict INSERT NO -'user_3'@'localhost' NULL db_datadict UPDATE NO -'user_3'@'localhost' NULL db_datadict DELETE NO -'user_3'@'localhost' NULL db_datadict CREATE NO -'user_3'@'localhost' NULL db_datadict DROP NO -'user_3'@'localhost' NULL db_datadict REFERENCES NO -'user_3'@'localhost' NULL db_datadict INDEX NO -'user_3'@'localhost' NULL db_datadict ALTER NO -'user_3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO -'user_3'@'localhost' NULL db_datadict LOCK TABLES NO -'user_3'@'localhost' NULL db_datadict EXECUTE NO -'user_3'@'localhost' NULL db_datadict CREATE VIEW NO -'user_3'@'localhost' NULL db_datadict SHOW VIEW NO -'user_3'@'localhost' NULL db_datadict CREATE ROUTINE NO -'user_3'@'localhost' NULL db_datadict ALTER ROUTINE NO -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; - -FIXME: check whether it is intended that *my* grants to others are *NOT* shown here ------------------------------------------------------------------------------------ -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES - -user_2@localhost db_datadict -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO - -root@localhost db_datadict -DROP TABLE IF EXISTS db_datadict.res_t40502; -DROP DATABASE IF EXISTS db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; - -Testcase 3.2.6.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC columns; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -ORDINAL_POSITION bigint(21) NO 0 -COLUMN_DEFAULT longtext YES NULL -IS_NULLABLE varchar(3) NO -DATA_TYPE varchar(64) NO -CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL -CHARACTER_OCTET_LENGTH bigint(21) YES NULL -NUMERIC_PRECISION bigint(21) YES NULL -NUMERIC_SCALE bigint(21) YES NULL -CHARACTER_SET_NAME varchar(64) YES NULL -COLLATION_NAME varchar(64) YES NULL -COLUMN_TYPE longtext NO NULL -COLUMN_KEY varchar(3) NO -EXTRA varchar(20) NO -PRIVILEGES varchar(80) NO -COLUMN_COMMENT varchar(255) NO -SHOW CREATE TABLE columns; -Table Create Table -COLUMNS CREATE TEMPORARY TABLE `COLUMNS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `ORDINAL_POSITION` bigint(21) NOT NULL default '0', - `COLUMN_DEFAULT` longtext, - `IS_NULLABLE` varchar(3) NOT NULL default '', - `DATA_TYPE` varchar(64) NOT NULL default '', - `CHARACTER_MAXIMUM_LENGTH` bigint(21) default NULL, - `CHARACTER_OCTET_LENGTH` bigint(21) default NULL, - `NUMERIC_PRECISION` bigint(21) default NULL, - `NUMERIC_SCALE` bigint(21) default NULL, - `CHARACTER_SET_NAME` varchar(64) default NULL, - `COLLATION_NAME` varchar(64) default NULL, - `COLUMN_TYPE` longtext NOT NULL, - `COLUMN_KEY` varchar(3) NOT NULL default '', - `EXTRA` varchar(20) NOT NULL default '', - `PRIVILEGES` varchar(80) NOT NULL default '', - `COLUMN_COMMENT` varchar(255) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'columns' -ORDER BY ordinal_position; -COUNT(*) -19 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'columns' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select - -Testcase 3.2.6.2 + 3.2.6.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int); -grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost'; -create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int); -GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL db_datadict t_6_406001 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL db_datadict t_6_406001 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL db_datadict t_6_406002 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL db_datadict t_6_406002 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references -NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references -NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references -NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references -NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references -NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references -NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references -NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references -NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references -NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references -NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references -NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references -NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references -NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references -NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references -NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references -NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references -NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references -NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select -NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references -NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references -NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) insert -NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f12 4 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 5 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 6 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 7 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 8 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 9 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 10 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 11 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 12 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 13 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 14 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 15 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 16 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 17 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 18 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 19 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 20 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 21 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 22 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 25 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 26 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 27 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 28 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 29 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 30 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 31 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 32 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 33 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 34 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 36 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 38 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 40 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 42 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 44 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 45 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 46 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 47 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 48 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 49 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 50 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f122 5 NULL YES char 50 50 NULL NULL latin1 latin1_swedish_ci char(50) select,insert,update,references -NULL test tb3 f129 6  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 7 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 8 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 9 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 10 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 11 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 12 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 13 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 14 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 15 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 16 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 17 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 18 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 19 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 20 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 21 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 22 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 23 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 24 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 25 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 26 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 27 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 28 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 29 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 30 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 31 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 32 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 33 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 34 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 35 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 36 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 40 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 42 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 44 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 48 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 50 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 52 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f236 52 NULL YES char 95 190 NULL NULL ucs2 ucs2_general_ci char(95) select,insert,update,references -NULL test tb4 f241 53 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f237 54 NULL YES char 130 130 NULL NULL latin1 latin1_bin char(130) select,insert,update,references -NULL test tb4 f238 55 NULL YES varchar 25000 25000 NULL NULL latin1 latin1_bin varchar(25000) select,insert,update,references -NULL test tb4 f239 56 NULL YES varbinary 0 0 NULL NULL NULL NULL varbinary(0) select,insert,update,references -NULL test tb4 f240 57 NULL YES varchar 1200 2400 NULL NULL ucs2 ucs2_general_ci varchar(1200) select,insert,update,references - -root@localhost db_datadict - -Show the quotient of COL and CML for all COLUMNS ------------------------------------------------- -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -1.0000 binary NULL NULL -1.0000 blob NULL NULL -1.0000 longblob NULL NULL -1.0000 char latin1 latin1_bin -1.0000 varchar latin1 latin1_bin -1.0000 char latin1 latin1_swedish_ci -1.0000 enum latin1 latin1_swedish_ci -1.0000 set latin1 latin1_swedish_ci -1.0000 text latin1 latin1_swedish_ci -1.0000 longtext utf8 utf8_general_ci -1.0000 text utf8 utf8_general_ci -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -2.0000 char ucs2 ucs2_general_ci -2.0000 varchar ucs2 ucs2_general_ci -3.0000 char utf8 utf8_bin -3.0000 enum utf8 utf8_bin -3.0000 char utf8 utf8_general_ci -3.0000 enum utf8 utf8_general_ci -3.0000 set utf8 utf8_general_ci -3.0000 varchar utf8 utf8_general_ci -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -NULL bigint NULL NULL -NULL date NULL NULL -NULL datetime NULL NULL -NULL decimal NULL NULL -NULL double NULL NULL -NULL double unsigned NULL NULL -NULL double unsigned zerofill NULL NULL -NULL float NULL NULL -NULL float unsigned NULL NULL -NULL float unsigned zerofill NULL NULL -NULL int NULL NULL -NULL mediumint NULL NULL -NULL smallint NULL NULL -NULL time NULL NULL -NULL timestamp NULL NULL -NULL tinyint NULL NULL -NULL varbinary NULL NULL -NULL year NULL NULL ---> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values ---> are 0, which is intended behavior, and the result of 0 / 0 IS NULL -SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -TABLE_SCHEMA, -TABLE_NAME, -COLUMN_NAME, -DATA_TYPE, -CHARACTER_MAXIMUM_LENGTH, -CHARACTER_OCTET_LENGTH, -CHARACTER_SET_NAME, -COLLATION_NAME, -COLUMN_TYPE -FROM information_schema.columns -ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; -COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE -1.0000 db_datadict t_6_406001 f1 char 10 10 latin1 latin1_swedish_ci char(10) -1.0000 db_datadict t_6_406001 f2 text 65535 65535 latin1 latin1_swedish_ci text -NULL db_datadict t_6_406001 f3 date NULL NULL NULL NULL date -NULL db_datadict t_6_406001 f4 int NULL NULL NULL NULL int(11) -1.0000 db_datadict t_6_406002 f1 char 10 10 latin1 latin1_swedish_ci char(10) -1.0000 db_datadict t_6_406002 f2 text 65535 65535 latin1 latin1_swedish_ci text -NULL db_datadict t_6_406002 f3 date NULL NULL NULL NULL date -NULL db_datadict t_6_406002 f4 int NULL NULL NULL NULL int(11) -3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60) -NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11) -3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3) -NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) -1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20) -3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80) -3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255) -3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10) -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9) -3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8) -1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8) -3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) -NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime -NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime -1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) -3.0000 information_schema SCHEMATA CATALOG_NAME varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA SQL_PATH varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema STATISTICS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1) -3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2) -3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1) -NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21) -NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10) -3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16) -3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16) -3.0000 information_schema TABLES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10) -NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime -NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime -NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime -3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255) -3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6) -3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4) -1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9) -3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) -NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime -1.0000 information_schema TRIGGERS SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -1.0000 information_schema TRIGGERS DEFINER longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema VIEWS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8) -3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) -3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) -3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64) -NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') -3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql db User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql func name char 64 192 utf8 utf8_bin char(64) -NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1) -3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128) -3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate') -NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -3.0000 mysql help_category url char 128 384 utf8 utf8_general_ci char(128) -NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text -1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text -3.0000 mysql help_topic url char 128 384 utf8 utf8_general_ci char(128) -3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') -3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL') -3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') -3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO') -3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER') -1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob -3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64) -1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob -3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77) -NULL mysql proc created timestamp NULL NULL NULL NULL timestamp -NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp -3.0000 mysql proc sql_mode set 431 1293 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') -3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE') -3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77) -3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant') -NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77) -NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql tables_priv Table_priv set 90 270 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') -3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') -NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N') -NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20) -NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11) -3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20) -NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11) -NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned -3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8) -3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql user User char 16 48 utf8 utf8_bin char(16) -1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41) -3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') -1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob -1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob -1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob -NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned -1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t1 f3 date NULL NULL NULL NULL date -NULL test t1 f4 int NULL NULL NULL NULL int(11) -1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t1 f6 int NULL NULL NULL NULL int(11) -1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t10 f3 date NULL NULL NULL NULL date -NULL test t10 f4 int NULL NULL NULL NULL int(11) -1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t10 f6 int NULL NULL NULL NULL int(11) -1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t11 f3 date NULL NULL NULL NULL date -NULL test t11 f4 int NULL NULL NULL NULL int(11) -1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t11 f6 int NULL NULL NULL NULL int(11) -1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t2 f3 date NULL NULL NULL NULL date -NULL test t2 f4 int NULL NULL NULL NULL int(11) -1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t2 f6 int NULL NULL NULL NULL int(11) -1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20) -NULL test t3 f3 int NULL NULL NULL NULL int(11) -1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t4 f3 date NULL NULL NULL NULL date -NULL test t4 f4 int NULL NULL NULL NULL int(11) -1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t4 f6 int NULL NULL NULL NULL int(11) -1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t7 f3 date NULL NULL NULL NULL date -NULL test t7 f4 int NULL NULL NULL NULL int(11) -1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t8 f3 date NULL NULL NULL NULL date -NULL test t8 f4 int NULL NULL NULL NULL int(11) -NULL test t9 f1 int NULL NULL NULL NULL int(11) -1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t9 f3 int NULL NULL NULL NULL int(11) -1.0000 test tb1 f1 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb1 f2 char 1 1 latin1 latin1_bin char(1) -1.0000 test tb1 f3 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1) -NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4) -NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned -NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6) -NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned -NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9) -NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned -NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb1 f25 int NULL NULL NULL NULL int(11) -NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned -NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20) -NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned -NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb2 f73 double NULL NULL NULL NULL double -NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f77 double NULL NULL NULL NULL double -NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f81 float NULL NULL NULL NULL float -NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f85 float NULL NULL NULL NULL float -NULL test tb2 f86 float NULL NULL NULL NULL float -NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f93 float NULL NULL NULL NULL float -NULL test tb2 f94 double NULL NULL NULL NULL double -NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f101 date NULL NULL NULL NULL date -NULL test tb2 f102 time NULL NULL NULL NULL time -NULL test tb2 f103 datetime NULL NULL NULL NULL datetime -NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp -NULL test tb2 f105 year NULL NULL NULL NULL year(4) -NULL test tb2 f106 year NULL NULL NULL NULL year(4) -NULL test tb2 f107 year NULL NULL NULL NULL year(4) -1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1) -1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb3 f121 char 50 50 latin1 latin1_swedish_ci char(50) -1.0000 test tb3 f122 char 50 50 latin1 latin1_swedish_ci char(50) -1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1) -NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4) -NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned -NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6) -NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned -NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9) -NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned -NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb3 f142 int NULL NULL NULL NULL int(11) -NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned -NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20) -NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned -NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb4 f190 double NULL NULL NULL NULL double -NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f194 double NULL NULL NULL NULL double -NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f198 float NULL NULL NULL NULL float -NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f202 float NULL NULL NULL NULL float -NULL test tb4 f203 float NULL NULL NULL NULL float -NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f210 float NULL NULL NULL NULL float -NULL test tb4 f211 double NULL NULL NULL NULL double -NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f218 date NULL NULL NULL NULL date -NULL test tb4 f219 time NULL NULL NULL NULL time -NULL test tb4 f220 datetime NULL NULL NULL NULL datetime -NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp -NULL test tb4 f222 year NULL NULL NULL NULL year(4) -NULL test tb4 f223 year NULL NULL NULL NULL year(4) -NULL test tb4 f224 year NULL NULL NULL NULL year(4) -1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -2.0000 test tb4 f236 char 95 190 ucs2 ucs2_general_ci char(95) -2.0000 test tb4 f241 char 255 510 ucs2 ucs2_general_ci char(255) -1.0000 test tb4 f237 char 130 130 latin1 latin1_bin char(130) -1.0000 test tb4 f238 varchar 25000 25000 latin1 latin1_bin varchar(25000) -NULL test tb4 f239 varbinary 0 0 NULL NULL varbinary(0) -2.0000 test tb4 f240 varchar 1200 2400 ucs2 ucs2_general_ci varchar(1200) -NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) -NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) -NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test1 tb2 f73 double NULL NULL NULL NULL double -NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f77 double NULL NULL NULL NULL double -NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f81 float NULL NULL NULL NULL float -NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f85 float NULL NULL NULL NULL float -NULL test1 tb2 f86 float NULL NULL NULL NULL float -NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f93 float NULL NULL NULL NULL float -NULL test1 tb2 f94 double NULL NULL NULL NULL double -NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f101 date NULL NULL NULL NULL date -NULL test1 tb2 f102 time NULL NULL NULL NULL time -NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime -NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp -NULL test1 tb2 f105 year NULL NULL NULL NULL year(4) -NULL test1 tb2 f106 year NULL NULL NULL NULL year(4) -NULL test1 tb2 f107 year NULL NULL NULL NULL year(4) -1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test4 t6 f3 date NULL NULL NULL NULL date -NULL test4 t6 f4 int NULL NULL NULL NULL int(11) -1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test4 t6 f6 int NULL NULL NULL NULL int(11) -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE IF EXISTS t_6_406001; -DROP TABLE IF EXISTS t_6_406002; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.7.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC key_column_usage; -Field Type Null Key Default Extra -CONSTRAINT_CATALOG varchar(4096) YES NULL -CONSTRAINT_SCHEMA varchar(64) NO -CONSTRAINT_NAME varchar(64) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -ORDINAL_POSITION bigint(10) NO 0 -POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL -REFERENCED_TABLE_SCHEMA varchar(64) YES NULL -REFERENCED_TABLE_NAME varchar(64) YES NULL -REFERENCED_COLUMN_NAME varchar(64) YES NULL -SHOW CREATE TABLE key_column_usage; -Table Create Table -KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` ( - `CONSTRAINT_CATALOG` varchar(4096) default NULL, - `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', - `CONSTRAINT_NAME` varchar(64) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `ORDINAL_POSITION` bigint(10) NOT NULL default '0', - `POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) default NULL, - `REFERENCED_TABLE_SCHEMA` varchar(64) default NULL, - `REFERENCED_TABLE_NAME` varchar(64) default NULL, - `REFERENCED_COLUMN_NAME` varchar(64) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'key_column_usage' -ORDER BY ordinal_position; -COUNT(*) -12 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'key_column_usage' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.7.2 + 3.2.7.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -CREATE TABLE t_40701 ( -f1 INT NOT NULL, PRIMARY KEY(f1), -f2 INT, INDEX f2_ind(f2) -); -GRANT SELECT ON t_40701 to 'user_1'@'localhost'; -CREATE TABLE t_40702 ( -f1 INT NOT NULL, PRIMARY KEY(f1), -f2 INT, INDEX f2_ind(f2) -); -GRANT SELECT ON t_40702 to 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL -NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE t_40701; -DROP TABLE t_40702; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.8.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC routines; -Field Type Null Key Default Extra -SPECIFIC_NAME varchar(64) NO -ROUTINE_CATALOG varchar(4096) YES NULL -ROUTINE_SCHEMA varchar(64) NO -ROUTINE_NAME varchar(64) NO -ROUTINE_TYPE varchar(9) NO -DTD_IDENTIFIER varchar(64) YES NULL -ROUTINE_BODY varchar(8) NO -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 -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 longtext NO NULL -ROUTINE_COMMENT varchar(64) NO -DEFINER varchar(77) NO -SHOW CREATE TABLE routines; -Table Create Table -ROUTINES CREATE TEMPORARY TABLE `ROUTINES` ( - `SPECIFIC_NAME` varchar(64) NOT NULL default '', - `ROUTINE_CATALOG` varchar(4096) default NULL, - `ROUTINE_SCHEMA` varchar(64) NOT NULL default '', - `ROUTINE_NAME` varchar(64) NOT NULL default '', - `ROUTINE_TYPE` varchar(9) NOT NULL default '', - `DTD_IDENTIFIER` varchar(64) default NULL, - `ROUTINE_BODY` varchar(8) NOT NULL default '', - `ROUTINE_DEFINITION` longtext, - `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` longtext NOT NULL, - `ROUTINE_COMMENT` varchar(64) NOT NULL default '', - `DEFINER` varchar(77) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'routines' -ORDER BY ordinal_position; -COUNT(*) -20 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'routines' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select - -Testcase 3.2.8.2 + 3.2.8.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); -INSERT INTO res_6_408002_1(f1, f2, f3, f4) -VALUES('abc', 'xyz', '1989-11-09', 0815); -DROP PROCEDURE IF EXISTS sp_6_408002_1; -CREATE PROCEDURE sp_6_408002_1() -BEGIN -SELECT * FROM db_datadict.res_6_408002_1; -END// -CREATE DATABASE db_datadict_2; -USE db_datadict_2; -CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); -INSERT INTO res_6_408002_2(f1, f2, f3, f4) -VALUES('abc', 'xyz', '1990-10-03', 4711); -DROP PROCEDURE IF EXISTS sp_6_408002_2; -CREATE PROCEDURE sp_6_408002_2() -BEGIN -SELECT * FROM db_datadict_2.res_6_408002_2; -END// -GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost'; -GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost'; -GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_6_408002_1 NULL db_datadict sp_6_408002_1 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER - -root@localhost db_datadict_2 -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -use db_datadict; -DROP TABLE res_6_408002_1; -DROP PROCEDURE sp_6_408002_1; -USE db_datadict_2; -DROP TABLE res_6_408002_2; -DROP PROCEDURE sp_6_408002_2; -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; - -Testcase 3.2.8.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); -insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10); -drop procedure if exists sp_6_408004; -create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); -insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10); - -Checking the max. possible length of (currently) 4 GByte is not possible in this environment here. --------------------------------------------------------------------------------------------------- -create procedure sp_6_408004 () -begin -declare done integer default 0; -declare variable_number_1 longtext; -declare variable_number_2 mediumint; -declare variable_number_3 longblob; -declare variable_number_4 real; -declare variable_number_5 year; -declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10; -declare continue handler for sqlstate '02000' set done = 1; -begin -open cursor_number_1; -while done <> 1 do -fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, -variable_number_4, variable_number_5); -end if; -end while; -begin -begin -set done = 0; -open cursor_number_2; -while done <> 1 do -fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -set done = 0; -open cursor_number_3; -while done <> 1 do -fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -end; -begin -set done = 0; -open cursor_number_4; -while done <> 1 do -fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -begin -set done = 0; -open cursor_number_5; -while done <> 1 do -fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -end// -call sp_6_408004 (); -@a -test row -@a -test row -@a -test row -@a -test row -@a -test row -@a -test row -select * from res_6_408004_2; -f1 f2 f3 f4 f5 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -SELECT *, LENGTH(routine_definition) -FROM information_schema.routines -WHERE routine_schema = 'db_datadict'; -SPECIFIC_NAME sp_6_408004 -ROUTINE_CATALOG NULL -ROUTINE_SCHEMA db_datadict -ROUTINE_NAME sp_6_408004 -ROUTINE_TYPE PROCEDURE -DTD_IDENTIFIER NULL -ROUTINE_BODY SQL -ROUTINE_DEFINITION begin -declare done integer default 0; -declare variable_number_1 longtext; -declare variable_number_2 mediumint; -declare variable_number_3 longblob; -declare variable_number_4 real; -declare variable_number_5 year; -declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10; -declare continue handler for sqlstate '02000' set done = 1; -begin -open cursor_number_1; -while done <> 1 do -fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, -variable_number_4, variable_number_5); -end if; -end while; -begin -begin -set done = 0; -open cursor_number_2; -while done <> 1 do -fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -set done = 0; -open cursor_number_3; -while done <> 1 do -fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -end; -begin -set done = 0; -open cursor_number_4; -while done <> 1 do -fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -begin -set done = 0; -open cursor_number_5; -while done <> 1 do -fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -end -EXTERNAL_NAME NULL -EXTERNAL_LANGUAGE NULL -PARAMETER_STYLE SQL -IS_DETERMINISTIC NO -SQL_DATA_ACCESS CONTAINS SQL -SQL_PATH NULL -SECURITY_TYPE DEFINER -CREATED YYYY-MM-DD hh:mm:ss -LAST_ALTERED YYYY-MM-DD hh:mm:ss -SQL_MODE -ROUTINE_COMMENT -DEFINER root@localhost -LENGTH(routine_definition) 2549 -use db_datadict; -drop procedure sp_6_408004; -drop table res_6_408004_1; -drop table res_6_408004_2; -use test; -drop database db_datadict; - -Testcase 3.2.9.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC schemata; -Field Type Null Key Default Extra -CATALOG_NAME varchar(4096) YES NULL -SCHEMA_NAME varchar(64) NO -DEFAULT_CHARACTER_SET_NAME varchar(64) NO -DEFAULT_COLLATION_NAME varchar(64) NO -SQL_PATH varchar(4096) YES NULL -SHOW CREATE TABLE schemata; -Table Create Table -SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` ( - `CATALOG_NAME` varchar(4096) default NULL, - `SCHEMA_NAME` varchar(64) NOT NULL default '', - `DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `DEFAULT_COLLATION_NAME` varchar(64) NOT NULL default '', - `SQL_PATH` varchar(4096) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schemata' -ORDER BY ordinal_position; -COUNT(*) -5 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schemata' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select - -Testcase 3.2.9.2 + 3.2.9.3: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict_1; -CREATE DATABASE db_datadict_2; -GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict_1,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -3 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict_1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -3 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict_2 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -2 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL - -root@localhost information_schema -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE db_datadict_1; -DROP DATABASE db_datadict_2; - -Testcase 3.2.10.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC table_constraints; -Field Type Null Key Default Extra -CONSTRAINT_CATALOG varchar(4096) YES NULL -CONSTRAINT_SCHEMA varchar(64) NO -CONSTRAINT_NAME varchar(64) NO -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -CONSTRAINT_TYPE varchar(64) NO -SHOW CREATE TABLE table_constraints; -Table Create Table -TABLE_CONSTRAINTS CREATE TEMPORARY TABLE `TABLE_CONSTRAINTS` ( - `CONSTRAINT_CATALOG` varchar(4096) default NULL, - `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', - `CONSTRAINT_NAME` varchar(64) NOT NULL default '', - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `CONSTRAINT_TYPE` varchar(64) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_constraints' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_constraints' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.10.2 + 3.2.10.3: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; -USE db_datadict; -CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); -USE db_datadict_2; -CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); -GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL db_datadict PRIMARY db_datadict res_6_401003_1 PRIMARY KEY -SELECT COUNT(*) FROM information_schema.table_constraints; -COUNT(*) -1 -connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL db_datadict_2 PRIMARY db_datadict_2 res_6_401003_2 PRIMARY KEY -SELECT COUNT(*) FROM information_schema.table_constraints; -COUNT(*) -1 -use db_datadict; - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE res_6_401003_1; -USE db_datadict_2; -DROP TABLE res_6_401003_2; -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; - -Testcase 3.2.11.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC table_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE table_privileges; -Table Create Table -TABLE_PRIVILEGES CREATE TEMPORARY TABLE `TABLE_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_privileges' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -create database db_datadict; -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -use db_datadict; -create table tb1(f1 int, f2 int, f3 int); -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; -SELECT * FROM information_schema.table_privileges -WHERE table_name LIKE 'tb%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict tb1 SELECT NO -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict tb1 SELECT YES -'user_2'@'localhost' NULL db_datadict tb1 INSERT YES -'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES -'user_2'@'localhost' NULL db_datadict tb1 DELETE YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE YES -'user_2'@'localhost' NULL db_datadict tb1 DROP YES -'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES -'user_2'@'localhost' NULL db_datadict tb1 INDEX YES -'user_2'@'localhost' NULL db_datadict tb1 ALTER YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES -'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES -SELECT USER(), COUNT(*) -FROM information_schema.table_privileges -WHERE grantee = USER(); -USER() COUNT(*) -user_2@localhost 0 -SELECT USER(), COUNT(*) -FROM information_schema.table_privileges -WHERE grantee = "'user_2'@'localhost'"; -USER() COUNT(*) -user_2@localhost 11 -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict tb3 SELECT NO - -root@localhost db_datadict -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict tb1 SELECT YES -'user_2'@'localhost' NULL db_datadict tb1 INSERT YES -'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES -'user_2'@'localhost' NULL db_datadict tb1 DELETE YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE YES -'user_2'@'localhost' NULL db_datadict tb1 DROP YES -'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES -'user_2'@'localhost' NULL db_datadict tb1 INDEX YES -'user_2'@'localhost' NULL db_datadict tb1 ALTER YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES -'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES -'user_1'@'localhost' NULL db_datadict tb1 SELECT NO -'user_3'@'localhost' NULL db_datadict tb3 SELECT NO - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -drop table db_datadict.tb1; -drop table db_datadict.tb3; -use test; -drop database db_datadict; - -Testcase 3.2.12.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC tables; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -TABLE_TYPE varchar(64) NO -ENGINE varchar(64) YES NULL -VERSION bigint(21) YES NULL -ROW_FORMAT varchar(10) YES NULL -TABLE_ROWS bigint(21) YES NULL -AVG_ROW_LENGTH bigint(21) YES NULL -DATA_LENGTH bigint(21) YES NULL -MAX_DATA_LENGTH bigint(21) YES NULL -INDEX_LENGTH bigint(21) YES NULL -DATA_FREE bigint(21) YES NULL -AUTO_INCREMENT bigint(21) YES NULL -CREATE_TIME datetime YES NULL -UPDATE_TIME datetime YES NULL -CHECK_TIME datetime YES NULL -TABLE_COLLATION varchar(64) YES NULL -CHECKSUM bigint(21) YES NULL -CREATE_OPTIONS varchar(255) YES NULL -TABLE_COMMENT varchar(80) NO -SHOW CREATE TABLE tables; -Table Create Table -TABLES CREATE TEMPORARY TABLE `TABLES` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `TABLE_TYPE` varchar(64) NOT NULL default '', - `ENGINE` varchar(64) default NULL, - `VERSION` bigint(21) default NULL, - `ROW_FORMAT` varchar(10) default NULL, - `TABLE_ROWS` bigint(21) default NULL, - `AVG_ROW_LENGTH` bigint(21) default NULL, - `DATA_LENGTH` bigint(21) default NULL, - `MAX_DATA_LENGTH` bigint(21) default NULL, - `INDEX_LENGTH` bigint(21) default NULL, - `DATA_FREE` bigint(21) default NULL, - `AUTO_INCREMENT` bigint(21) default NULL, - `CREATE_TIME` datetime default NULL, - `UPDATE_TIME` datetime default NULL, - `CHECK_TIME` datetime default NULL, - `TABLE_COLLATION` varchar(64) default NULL, - `CHECKSUM` bigint(21) default NULL, - `CREATE_OPTIONS` varchar(255) default NULL, - `TABLE_COMMENT` varchar(80) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'tables' -ORDER BY ordinal_position; -COUNT(*) -21 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'tables' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select - -Testcase 3.2.12.2 + 3.2.12.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -create database db_datadict; -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.* -TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -use db_datadict; -create table tb1(f1 int, f2 int, f3 int); -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -CREATE TABLE tb2 (f1 DECIMAL); -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; -GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost'; -CREATE VIEW v3 AS SELECT * FROM tb3; -GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost'; -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL - -root@localhost db_datadict -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL mysql columns_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Column privileges -NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Database privileges -NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions -NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges -NULL mysql proc BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Stored Procedures -NULL mysql procs_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Procedure privileges -NULL mysql tables_priv BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Table privileges -NULL mysql time_zone BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# 6 YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zones -NULL mysql time_zone_leap_second BASE TABLE MyISAM 10 Fixed 22 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Leap seconds information for time zones -NULL mysql time_zone_name BASE TABLE MyISAM 10 Fixed 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone names -NULL mysql time_zone_transition BASE TABLE MyISAM 10 Fixed 393 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transitions -NULL mysql time_zone_transition_type BASE TABLE MyISAM 10 Fixed 31 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transition types -NULL mysql user BASE TABLE MyISAM 10 Dynamic 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Users and global privileges -NULL test t1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test1 tb2 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test4 t6 BASE TABLE MEMORY 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP TABLE db_datadict.tb1; -DROP TABLE db_datadict.tb3; -DROP VIEW db_datadict.v3; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.13.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC views; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -VIEW_DEFINITION longtext NO NULL -CHECK_OPTION varchar(8) NO -IS_UPDATABLE varchar(3) NO -DEFINER varchar(77) NO -SECURITY_TYPE varchar(7) NO -SHOW CREATE TABLE views; -Table Create Table -VIEWS CREATE TEMPORARY TABLE `VIEWS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `VIEW_DEFINITION` longtext NOT NULL, - `CHECK_OPTION` varchar(8) NOT NULL default '', - `IS_UPDATABLE` varchar(3) NOT NULL default '', - `DEFINER` varchar(77) NOT NULL default '', - `SECURITY_TYPE` varchar(7) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'views' -ORDER BY ordinal_position; -COUNT(*) -8 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'views' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select - -Testcase 3.2.13.2 + 3.2.13.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_no_views'@'localhost'; -USE db_datadict; -CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT); -CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302; -CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302; -GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost'; -GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_glob /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER -NULL db_datadict v_granted_to_1 /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f1` AS `f1`,`db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER -connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER -connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_glob NONE YES root@localhost DEFINER -NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER -connect(localhost,user_no_views,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE - -root@localhost db_datadict -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_no_views'@'localhost'; -DROP VIEW v_granted_to_1; -DROP TABLE tb_401302; -DROP VIEW v_granted_glob; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.14.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC statistics; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -NON_UNIQUE bigint(1) NO 0 -INDEX_SCHEMA varchar(64) NO -INDEX_NAME varchar(64) NO -SEQ_IN_INDEX bigint(2) NO 0 -COLUMN_NAME varchar(64) NO -COLLATION varchar(1) YES NULL -CARDINALITY bigint(21) YES NULL -SUB_PART bigint(3) YES NULL -PACKED varchar(10) YES NULL -NULLABLE varchar(3) NO -INDEX_TYPE varchar(16) NO -COMMENT varchar(16) YES NULL -SHOW CREATE TABLE statistics; -Table Create Table -STATISTICS CREATE TEMPORARY TABLE `STATISTICS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `NON_UNIQUE` bigint(1) NOT NULL default '0', - `INDEX_SCHEMA` varchar(64) NOT NULL default '', - `INDEX_NAME` varchar(64) NOT NULL default '', - `SEQ_IN_INDEX` bigint(2) NOT NULL default '0', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `COLLATION` varchar(1) default NULL, - `CARDINALITY` bigint(21) default NULL, - `SUB_PART` bigint(3) default NULL, - `PACKED` varchar(10) default NULL, - `NULLABLE` varchar(3) NOT NULL default '', - `INDEX_TYPE` varchar(16) NOT NULL default '', - `COMMENT` varchar(16) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'statistics' -ORDER BY ordinal_position; -COUNT(*) -15 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'statistics' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select - -Testcase 3.2.14.2 + 3.2.14.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION; -USE db_datadict_2; -create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT - -root@localhost db_datadict_2 -REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost'; -SELECT * FROM information_schema.statistics -WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict tb_6_401402_2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_2 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_2 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_2 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 3 type A 0 NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 2 NULL NULL BTREE -NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE -NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE -NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 2 User A 5 NULL NULL BTREE - -user_1@localhost test -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE - -user_2@localhost test -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT - -root@localhost db_datadict_2 -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE tb_6_401402_1; -DROP TABLE tb_6_401402_2; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.15.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC schema_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE schema_privileges; -Table Create Table -SCHEMA_PRIVILEGES CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schema_privileges' -ORDER BY ordinal_position; -COUNT(*) -5 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schema_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.15.2: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -create database db_datadict; -create database db_datadict_2; -CREATE USER 'u_6_401502'@'localhost'; -use db_datadict; -create table res_6_401502(f1 int, f2 int, f3 int); -grant insert on db_datadict.* to 'u_6_401502'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401502'@'localhost' NULL db_datadict INSERT NO -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -connect(localhost,u_6_401502,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401502'@'localhost' NULL db_datadict INSERT NO -use db_datadict; - -root@localhost db_datadict -DROP USER 'u_6_401502'@'localhost'; -drop table res_6_401502; -use test; -drop database db_datadict; -drop database db_datadict_2; - -Testcase 3.2.15.3 + 3.2.15.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -create database db_datadict; -create database db_datadict_2; -CREATE USER 'u_6_401503_1'@'localhost'; -CREATE USER 'u_6_401503_2'@'localhost'; -CREATE USER 'u_6_401503_3'@'localhost'; -use db_datadict; -create table res_6_401503_1(f1 int, f2 int, f3 int); -use db_datadict_2; -create table res_6_401503_2(f1 int, f2 int, f3 int); -grant update on db_datadict.* to 'u_6_401503_1'@'localhost'; -grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO -'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -connect(localhost,u_6_401503_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO -connect(localhost,u_6_401503_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO -connect(localhost,u_6_401503_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE - -root@localhost db_datadict_2 -use db_datadict; -DROP USER 'u_6_401503_1'@'localhost'; -DROP USER 'u_6_401503_2'@'localhost'; -DROP USER 'u_6_401503_3'@'localhost'; -drop table res_6_401503_1; -use db_datadict_2; -drop table res_6_401503_2; -use test; -drop database db_datadict; -drop database db_datadict_2; - -Testcase 3.2.16.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC user_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE user_privileges; -Table Create Table -USER_PRIVILEGES CREATE TEMPORARY TABLE `USER_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'user_privileges' -ORDER BY ordinal_position; -COUNT(*) -4 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'user_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; -GRANT INSERT ON *.* TO 'user_2'@'localhost'; -GRANT UPDATE ON *.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; - -FIXME (see Bug 12269) Here we expect more than only for user_1 ----------------------------------------------------------------------- -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -add GRANT OPTION db_datadict.* to user_1 ----------------------------------------- -GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; - -FIXME (see Bug 12269) Here the is missing for the GRANT OPTION for user_1 -------------------------------------------------------------------------------- -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' - -Now add SELECT on *.* to user_1 -------------------------------- - -root@localhost information_schema -GRANT SELECT ON *.* TO 'user_1'@'localhost'; - -Here is shown correctly for user_1 ------------------------------------------------ -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -FLUSH PRIVILEGES; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_2@localhost -GRANT INSERT, UPDATE ON *.* TO 'user_2'@'localhost' -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_3'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_3@localhost -GRANT USAGE ON *.* TO 'user_3'@'localhost' - -revoke privileges from user_1 ------------------------------ - -root@localhost information_schema -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' - -user_1@localhost db_datadict -CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_55' - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_66' - -add ALL on db_datadict.* (and select on mysql.user) to user_1 -------------------------------------------------------------- - -root@localhost information_schema -GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_56' -USE db_datadict; - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -CREATE TABLE tb_57 ( c1 TEXT ); - -revoke privileges from user_1 ------------------------------ - -root@localhost information_schema -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_58 ( c1 TEXT ); -USE db_datadict; -ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_datadict' -CREATE TABLE db_datadict.tb_59 ( c1 TEXT ); - -root@localhost information_schema -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.17: Checks on Performance - not here in this script! --------------------------------------------------------------------------------- - -Testcase 3.2.18.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC triggers; -Field Type Null Key Default Extra -TRIGGER_CATALOG varchar(4096) YES NULL -TRIGGER_SCHEMA varchar(64) NO -TRIGGER_NAME varchar(64) NO -EVENT_MANIPULATION varchar(6) NO -EVENT_OBJECT_CATALOG varchar(4096) YES NULL -EVENT_OBJECT_SCHEMA varchar(64) NO -EVENT_OBJECT_TABLE varchar(64) NO -ACTION_ORDER bigint(4) NO 0 -ACTION_CONDITION longtext YES NULL -ACTION_STATEMENT longtext NO NULL -ACTION_ORIENTATION varchar(9) NO -ACTION_TIMING varchar(6) NO -ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL -ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL -ACTION_REFERENCE_OLD_ROW varchar(3) NO -ACTION_REFERENCE_NEW_ROW varchar(3) NO -CREATED datetime YES NULL -SQL_MODE longtext NO NULL -DEFINER longtext NO NULL -SHOW CREATE TABLE triggers; -Table Create Table -TRIGGERS CREATE TEMPORARY TABLE `TRIGGERS` ( - `TRIGGER_CATALOG` varchar(4096) default NULL, - `TRIGGER_SCHEMA` varchar(64) NOT NULL default '', - `TRIGGER_NAME` varchar(64) NOT NULL default '', - `EVENT_MANIPULATION` varchar(6) NOT NULL default '', - `EVENT_OBJECT_CATALOG` varchar(4096) default NULL, - `EVENT_OBJECT_SCHEMA` varchar(64) NOT NULL default '', - `EVENT_OBJECT_TABLE` varchar(64) NOT NULL default '', - `ACTION_ORDER` bigint(4) NOT NULL default '0', - `ACTION_CONDITION` longtext, - `ACTION_STATEMENT` longtext NOT NULL, - `ACTION_ORIENTATION` varchar(9) NOT NULL default '', - `ACTION_TIMING` varchar(6) NOT NULL default '', - `ACTION_REFERENCE_OLD_TABLE` varchar(64) default NULL, - `ACTION_REFERENCE_NEW_TABLE` varchar(64) default NULL, - `ACTION_REFERENCE_OLD_ROW` varchar(3) NOT NULL default '', - `ACTION_REFERENCE_NEW_ROW` varchar(3) NOT NULL default '', - `CREATED` datetime default NULL, - `SQL_MODE` longtext NOT NULL, - `DEFINER` longtext NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'triggers' -ORDER BY ordinal_position; -COUNT(*) -19 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'triggers' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select - -Testcase 3.2.18.2 + 3.2.18.3: --------------------------------------------------------------------------------- - -Testcase 3.2.19.1: --------------------------------------------------------------------------------- - -checking a table that will be implemented later ------------------------------------------------ -DESC parameters; -ERROR 42S02: Unknown table 'parameters' in information_schema - -Testcase 3.2.20.1: --------------------------------------------------------------------------------- - -checking a table that will be implemented later ------------------------------------------------ -DESC referential_constraints; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema - -*** End of Data Dictionary Tests *** --------------------------------------------------------------------------------- -DROP TABLE IF EXISTS test.tb1; -DROP TABLE IF EXISTS test.tb2; -DROP TABLE IF EXISTS test.tb3; -DROP TABLE IF EXISTS test.tb4; -DROP TABLE IF EXISTS test.t1; -DROP TABLE IF EXISTS test.t2; -DROP TABLE IF EXISTS test.t3; -DROP TABLE IF EXISTS test.t4; -DROP TABLE IF EXISTS test.t7; -DROP TABLE IF EXISTS test.t8; -DROP TABLE IF EXISTS test.t9; -DROP TABLE IF EXISTS test.t10; -DROP TABLE IF EXISTS test.t11; -DROP DATABASE IF EXISTS test1; -DROP DATABASE IF EXISTS test4; -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; diff --git a/mysql-test/suite/funcs_1/r/memory__load.result b/mysql-test/suite/funcs_1/r/memory__load.result deleted file mode 100644 index c1b9c89b257..00000000000 --- a/mysql-test/suite/funcs_1/r/memory__load.result +++ /dev/null @@ -1 +0,0 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); diff --git a/mysql-test/suite/funcs_1/r/memory_bitdata.result b/mysql-test/suite/funcs_1/r/memory_bitdata.result index 2b98475d6d2..917157fcdae 100644 --- a/mysql-test/suite/funcs_1/r/memory_bitdata.result +++ b/mysql-test/suite/funcs_1/r/memory_bitdata.result @@ -1,68 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb4 ; -create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f236 char(95) unicode, -f241 char(255) unicode, -f237 char(130) binary, -f238 varchar(25000) binary, -f239 varbinary(0), -f240 varchar(1200) unicode -) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ; NOT YET IMPLEMENTED: bitdata tests -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_cursors.result b/mysql-test/suite/funcs_1/r/memory_cursors.result index 3221e05cc4f..9f20e51204b 100644 --- a/mysql-test/suite/funcs_1/r/memory_cursors.result +++ b/mysql-test/suite/funcs_1/r/memory_cursors.result @@ -1,78 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb1 ; -create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, -f58 numeric (64) not null DEFAULT 99 -) engine = memory; -Warnings: -Note 1265 Data truncated for column 'f33' at row 1 -Note 1265 Data truncated for column 'f34' at row 1 -Note 1265 Data truncated for column 'f35' at row 1 -Note 1265 Data truncated for column 'f36' at row 1 -Note 1265 Data truncated for column 'f37' at row 1 -Note 1265 Data truncated for column 'f38' at row 1 -Note 1265 Data truncated for column 'f39' at row 1 -Note 1265 Data truncated for column 'f40' at row 1 -Note 1265 Data truncated for column 'f41' at row 1 -Note 1265 Data truncated for column 'f42' at row 1 -Note 1265 Data truncated for column 'f43' at row 1 -Note 1265 Data truncated for column 'f44' at row 1 -Note 1265 Data truncated for column 'f45' at row 1 -Note 1265 Data truncated for column 'f47' at row 1 -Note 1265 Data truncated for column 'f49' at row 1 -Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ; NOT YET IMPLEMENTED: cursor tests -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result index 731d5c4a8cf..fd31aa76ab9 100755 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result index 6ee2d712e73..c982691daad 100755 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_06.result b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result index a627de4b534..890498e1966 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result index 34e5ff76f29..0980ca84a8c 100755 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result index 712d9ae933f..e3f9556a082 100755 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result index 89c2fb736eb..7f9946218e9 100755 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_trig_0102.result b/mysql-test/suite/funcs_1/r/memory_trig_0102.result index e7fec297ca7..a9477604425 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_0102.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_0102.result @@ -1,7 +1,4 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb3; create table tb3 ( f118 char not null DEFAULT 'a', @@ -358,3 +355,4 @@ select @test_var1, @test_var2, @test_var3; trig1_b trig1_a trig2 drop database trig_db1; drop database trig_db2; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_03.result b/mysql-test/suite/funcs_1/r/memory_trig_03.result index 7309e403cff..e5813236213 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_03.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_03.result @@ -1,7 +1,4 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb3; create table tb3 ( f118 char not null DEFAULT 'a', @@ -745,3 +742,4 @@ drop database if exists priv_db; drop user test_yesprivs@localhost; drop user test_noprivs@localhost; drop user test_noprivs; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_0407.result b/mysql-test/suite/funcs_1/r/memory_trig_0407.result index 588039983e2..14974428ecf 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_0407.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_0407.result @@ -1,7 +1,4 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb3; create table tb3 ( f118 char not null DEFAULT 'a', @@ -474,3 +471,4 @@ Testcase 3.5.7.17 (see Testcase 3.5.1.1) drop user test_general@localhost; drop user test_general; drop user test_super@localhost; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_08.result b/mysql-test/suite/funcs_1/r/memory_trig_08.result index a842bbc3ac7..a703de751c2 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_08.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_08.result @@ -1,7 +1,4 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb3; create table tb3 ( f118 char not null DEFAULT 'a', @@ -493,3 +490,4 @@ Testcase 3.5.8.7: (Disabled as a result of bug _____) drop user test_general@localhost; drop user test_general; drop user test_super@localhost; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_09.result b/mysql-test/suite/funcs_1/r/memory_trig_09.result index 3dbe64958e3..da8b15901d9 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_09.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_09.result @@ -1,7 +1,4 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb3; create table tb3 ( f118 char not null DEFAULT 'a', @@ -265,3 +262,4 @@ drop trigger trg6c; Testcase 3.5.9.14: (implied in previous tests) ---------------------------------------------- +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result index b93c67e894b..8fc9178f494 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result @@ -1,7 +1,4 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb3; create table tb3 ( f118 char not null DEFAULT 'a', @@ -400,3 +397,4 @@ drop table t1; drop table t2; drop table t3; drop table t4; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/memory_views.result b/mysql-test/suite/funcs_1/r/memory_views.result index 5fae2f8700a..04841ff7111 100644 --- a/mysql-test/suite/funcs_1/r/memory_views.result +++ b/mysql-test/suite/funcs_1/r/memory_views.result @@ -1,7 +1,4 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb2 ; create table tb2 ( f59 numeric (0) unsigned, @@ -60,8 +57,6 @@ load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table t DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test1; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; drop table if exists tb2 ; create table tb2 ( f59 numeric (0) unsigned, @@ -11457,4 +11452,5 @@ DROP VIEW IF EXISTS v1_secondview; DROP VIEW IF EXISTS v2; DROP DATABASE IF EXISTS test2; DROP DATABASE IF EXISTS test3; -DROP DATABASE IF EXISTS test1; +DROP DATABASE test1; +DROP TABLE test.tb2; diff --git a/mysql-test/suite/funcs_1/r/myisam__datadict.result b/mysql-test/suite/funcs_1/r/myisam__datadict.result deleted file mode 100644 index fd194de46d6..00000000000 --- a/mysql-test/suite/funcs_1/r/myisam__datadict.result +++ /dev/null @@ -1,13068 +0,0 @@ - -. -. It is intended that the 3 __datadict.test files are named this way to be -. sure they are - in a *full run* of the suite - the first tests done for each -. storage engine. Using two _ and the order of processing in mysql-test-run.pl -. ensures this in an easy way. -. -. If needed a restart could be implemented later between the storage engines if -. values changes in the result depending from the position where the -. *__datadict.test are started. This can be a result of showing e.g. maximum -. values of the number of rows of tables. -. -. This .result file has been checked OK with Linux 5.0.48, -. build tree ChangeSet@1.2477.6.3, 2007-07-30 -. except that the not fixed Bug#30020 causes a difference. -. --------------------------------------------------------------------------------- - -FIXME: There are subtests that are switched off due to known bugs: ------------------------------------------------------------------- -SELECT 1 AS "have_bug_11589"; -have_bug_11589 -1 - -There are some statements where the ps-protocol is switched off. -This may come from the bug listed below, ir from other problems. -Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill --------------------------------------------------------------------------------- -SET @NO_REFRESH = IF( '' = '', 0, 1); -DROP DATABASE IF EXISTS test1; -CREATE DATABASE test1; -USE test; -drop table if exists tb1 ; -create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, -f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, -f58 numeric (64) not null DEFAULT 99 -) engine = myisam; -Warnings: -Note 1265 Data truncated for column 'f33' at row 1 -Note 1265 Data truncated for column 'f34' at row 1 -Note 1265 Data truncated for column 'f35' at row 1 -Note 1265 Data truncated for column 'f36' at row 1 -Note 1265 Data truncated for column 'f37' at row 1 -Note 1265 Data truncated for column 'f38' at row 1 -Note 1265 Data truncated for column 'f39' at row 1 -Note 1265 Data truncated for column 'f40' at row 1 -Note 1265 Data truncated for column 'f41' at row 1 -Note 1265 Data truncated for column 'f42' at row 1 -Note 1265 Data truncated for column 'f43' at row 1 -Note 1265 Data truncated for column 'f44' at row 1 -Note 1265 Data truncated for column 'f45' at row 1 -Note 1265 Data truncated for column 'f47' at row 1 -Note 1265 Data truncated for column 'f49' at row 1 -Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ; -drop table if exists tb2 ; -create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", -f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null -) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; -drop table if exists tb3 ; -create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) -) Engine = myisam; -Warnings: -Note 1265 Data truncated for column 'f150' at row 1 -Note 1265 Data truncated for column 'f151' at row 1 -Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; -drop table if exists tb4 ; -create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f227 VARBINARY(64), -f228 VARBINARY(27), -f229 VARBINARY(64), -f230 VARBINARY(192), -f231 VARBINARY(192), -f232 VARBINARY(27), -f233 VARBINARY(64), -f234 VARBINARY(192), -f235 char(255) unicode, -f236 char(60) ascii, -f237 char(255) binary, -f238 varchar(0) binary, -f239 varbinary(1000), -f240 varchar(120) unicode, -f241 char(100) unicode, -f242 bit(30) -) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ; -USE test1; -drop table if exists tb2 ; -create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", -f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null -) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; -USE test; -USE test; -DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; -drop TABLE if exists t3; -CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = myisam; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; -drop database if exists test4; -CREATE database test4; -use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = myisam; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; -use test; -drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = myisam; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = myisam; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; -Warnings: -Warning 1265 Data truncated for column 'f3' at row 1 -Warning 1265 Data truncated for column 'f3' at row 2 -Warning 1265 Data truncated for column 'f3' at row 3 -Warning 1265 Data truncated for column 'f3' at row 4 -Warning 1265 Data truncated for column 'f3' at row 5 -Warning 1265 Data truncated for column 'f3' at row 6 -Warning 1265 Data truncated for column 'f3' at row 7 -Warning 1265 Data truncated for column 'f3' at row 8 -Warning 1265 Data truncated for column 'f3' at row 9 -Warning 1265 Data truncated for column 'f3' at row 10 -drop TABLE if exists t9; -CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = myisam; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; -use information_schema; - -root@localhost information_schema - -Testcase 3.2.1.1: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE VIEW v1 AS SELECT * FROM information_schema.tables; -CREATE OR REPLACE VIEW db_datadict.vu1 as -SELECT grantee AS u -FROM information_schema.user_privileges; -CREATE OR REPLACE VIEW db_datadict.vu as -SELECT DISTINCT u, -SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3 ) -AS server, -SUBSTRING( u, LENGTH(SUBSTRING_INDEX(u,_utf8'@',1))+3, -LENGTH( SUBSTRING( u, -LENGTH( SUBSTRING_INDEX(u, _utf8'@',1)) +3 )) - 1 ) -AS Server_Clean -FROM db_datadict.vu1; -SELECT * FROM db_datadict.vu order by u; -u server Server_Clean -'root'@'127.0.0.1' 127.0.0.1' 127.0.0.1 -'root'@'' ' -'root'@'localhost' localhost' localhost -CREATE PROCEDURE db_datadict.sp_1() -BEGIN -SELECT * FROM db_datadict.v1; -END// -USE information_schema; -SHOW tables; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -select * from schemata ORDER BY 2 DESC, 1 ASC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test4 latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -SELECT * FROM tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME CHARACTER_SETS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATIONS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMNS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMN_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME KEY_COLUMN_USAGE -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME ROUTINES -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMATA -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMA_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME STATISTICS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_CONSTRAINTS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TRIGGERS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME USER_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME VIEWS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -SELECT * FROM tables -WHERE NOT( table_schema = 'information_schema') -AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME v1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME columns_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Column privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME db -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 2 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME func -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT User defined functions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME host -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Host privileges; Merged with database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME proc -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 1 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Stored Procedures -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME procs_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Procedure privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME tables_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Table privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 5 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT 6 -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_leap_second -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 22 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Leap seconds information for time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_name -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 6 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone names -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 393 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transitions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition_type -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 31 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transition types -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME user -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 3 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Users and global privileges -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t1 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t10 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t11 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t2 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t3 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t4 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t7 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t8 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t9 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb1 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb3 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb4 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test1 -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test4 -TABLE_NAME t6 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from schemata s inner join tables t -ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; -catalog_name schema_name default_character_set_name table_type engine -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -select * from columns; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL db_datadict v1 TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select,insert,update,references -NULL db_datadict v1 TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select,insert,update,references -NULL db_datadict v1 TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL db_datadict v1 TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references -NULL db_datadict v1 CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select,insert,update,references -NULL db_datadict v1 CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select,insert,update,references -NULL db_datadict v1 TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select,insert,update,references -NULL db_datadict vu u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references -NULL db_datadict vu server 2 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references -NULL db_datadict vu Server_Clean 3 NO varchar 243 729 NULL NULL utf8 utf8_general_ci varchar(243) select,insert,update,references -NULL db_datadict vu1 u 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select,insert,update,references -NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references -NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references -NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references -NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references -NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references -NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references -NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references -NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references -NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references -NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references -NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references -NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references -NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references -NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references -NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references -NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references -NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references -NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references -NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references -NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references -NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references -NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references -NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test1 tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test1 tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test1 tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test1 tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test1 tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test1 tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test1 tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test1 tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select * from character_sets; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -latin1 latin1_swedish_ci cp1252 West European 1 -latin2 latin2_general_ci ISO 8859-2 Central European 1 -swe7 swe7_swedish_ci 7bit Swedish 1 -ascii ascii_general_ci US ASCII 1 -ujis ujis_japanese_ci EUC-JP Japanese 3 -sjis sjis_japanese_ci Shift-JIS Japanese 2 -hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 -tis620 tis620_thai_ci TIS620 Thai 1 -euckr euckr_korean_ci EUC-KR Korean 2 -koi8u koi8u_general_ci KOI8-U Ukrainian 1 -gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 -greek greek_general_ci ISO 8859-7 Greek 1 -cp1250 cp1250_general_ci Windows Central European 1 -gbk gbk_chinese_ci GBK Simplified Chinese 2 -latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 -armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 -utf8 utf8_general_ci UTF-8 Unicode 3 -ucs2 ucs2_general_ci UCS-2 Unicode 2 -cp866 cp866_general_ci DOS Russian 1 -keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 -macce macce_general_ci Mac Central European 1 -macroman macroman_general_ci Mac West European 1 -cp852 cp852_general_ci DOS Central European 1 -latin7 latin7_general_ci ISO 8859-13 Baltic 1 -cp1251 cp1251_general_ci Windows Cyrillic 1 -cp1256 cp1256_general_ci Windows Arabic 1 -cp1257 cp1257_general_ci Windows Baltic 1 -binary binary Binary pseudo charset 1 -geostd8 geostd8_general_ci GEOSTD8 Georgian 1 -cp932 cp932_japanese_ci SJIS for Windows Japanese 2 -eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 -select sum(id) from collations where collation_name <> 'utf8_general_cs'; -sum(id) -10741 -select collation_name, character_set_name into @x,@y -from collation_character_set_applicability limit 1; -select @x, @y; -@x @y -big5_chinese_ci big5 -select * from routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -select count(*) from routines; -count(*) -1 -select * from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 3 type A 1 NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 0 NULL NULL BTREE -NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE -NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE -NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 2 User A 3 NULL NULL BTREE -select * from views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER -NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER -select * from user_privileges order by grantee, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * from schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -select * from table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from column_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -NULL mysql PRIMARY mysql help_keyword PRIMARY KEY -NULL mysql name mysql help_keyword UNIQUE -NULL mysql PRIMARY mysql help_relation PRIMARY KEY -NULL mysql PRIMARY mysql help_topic PRIMARY KEY -NULL mysql name mysql help_topic UNIQUE -NULL mysql PRIMARY mysql host PRIMARY KEY -NULL mysql PRIMARY mysql proc PRIMARY KEY -NULL mysql PRIMARY mysql procs_priv PRIMARY KEY -NULL mysql PRIMARY mysql tables_priv PRIMARY KEY -NULL mysql PRIMARY mysql time_zone PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_leap_second PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_name PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_transition PRIMARY KEY -NULL mysql PRIMARY mysql time_zone_transition_type PRIMARY KEY -NULL mysql PRIMARY mysql user PRIMARY KEY -select * from key_column_usage; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL -select count(*) as max_recs from key_column_usage; -max_recs -40 -select max(cardinality) from statistics -where not (table_schema = 'mysql' and table_name like 'help_%'); -max(cardinality) -393 -select concat("View '", -table_name, "' is associated with the database '", table_schema, "'.") -AS "Who is Who for the Views" - from views; -Who is Who for the Views -View 'v1' is associated with the database 'db_datadict'. -View 'vu' is associated with the database 'db_datadict'. -View 'vu1' is associated with the database 'db_datadict'. -select concat("Table or view '", table_name, -"' is associated with the database '", table_schema, "'.") as "Who is Who" - from tables; -Who is Who -Table or view 'CHARACTER_SETS' is associated with the database 'information_schema'. -Table or view 'COLLATIONS' is associated with the database 'information_schema'. -Table or view 'COLLATION_CHARACTER_SET_APPLICABILITY' is associated with the database 'information_schema'. -Table or view 'COLUMNS' is associated with the database 'information_schema'. -Table or view 'COLUMN_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'KEY_COLUMN_USAGE' is associated with the database 'information_schema'. -Table or view 'ROUTINES' is associated with the database 'information_schema'. -Table or view 'SCHEMATA' is associated with the database 'information_schema'. -Table or view 'SCHEMA_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'STATISTICS' is associated with the database 'information_schema'. -Table or view 'TABLES' is associated with the database 'information_schema'. -Table or view 'TABLE_CONSTRAINTS' is associated with the database 'information_schema'. -Table or view 'TABLE_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'TRIGGERS' is associated with the database 'information_schema'. -Table or view 'USER_PRIVILEGES' is associated with the database 'information_schema'. -Table or view 'VIEWS' is associated with the database 'information_schema'. -Table or view 'v1' is associated with the database 'db_datadict'. -Table or view 'vu' is associated with the database 'db_datadict'. -Table or view 'vu1' is associated with the database 'db_datadict'. -Table or view 'columns_priv' is associated with the database 'mysql'. -Table or view 'db' is associated with the database 'mysql'. -Table or view 'func' is associated with the database 'mysql'. -Table or view 'help_category' is associated with the database 'mysql'. -Table or view 'help_keyword' is associated with the database 'mysql'. -Table or view 'help_relation' is associated with the database 'mysql'. -Table or view 'help_topic' is associated with the database 'mysql'. -Table or view 'host' is associated with the database 'mysql'. -Table or view 'proc' is associated with the database 'mysql'. -Table or view 'procs_priv' is associated with the database 'mysql'. -Table or view 'tables_priv' is associated with the database 'mysql'. -Table or view 'time_zone' is associated with the database 'mysql'. -Table or view 'time_zone_leap_second' is associated with the database 'mysql'. -Table or view 'time_zone_name' is associated with the database 'mysql'. -Table or view 'time_zone_transition' is associated with the database 'mysql'. -Table or view 'time_zone_transition_type' is associated with the database 'mysql'. -Table or view 'user' is associated with the database 'mysql'. -Table or view 't1' is associated with the database 'test'. -Table or view 't10' is associated with the database 'test'. -Table or view 't11' is associated with the database 'test'. -Table or view 't2' is associated with the database 'test'. -Table or view 't3' is associated with the database 'test'. -Table or view 't4' is associated with the database 'test'. -Table or view 't7' is associated with the database 'test'. -Table or view 't8' is associated with the database 'test'. -Table or view 't9' is associated with the database 'test'. -Table or view 'tb1' is associated with the database 'test'. -Table or view 'tb2' is associated with the database 'test'. -Table or view 'tb3' is associated with the database 'test'. -Table or view 'tb4' is associated with the database 'test'. -Table or view 'tb2' is associated with the database 'test1'. -Table or view 't6' is associated with the database 'test4'. -select grantee as "user's having select privilege", -substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 ) -from user_privileges where privilege_type = 'select' - order by grantee; -user's having select privilege substring( grantee, length(SUBSTRING_INDEX(grantee,_utf8'@',1))+2 ) -'root'@'127.0.0.1' '127.0.0.1' -'root'@'' '' -'root'@'localhost' 'localhost' -select all table_schema from schema_privileges limit 0,5; -table_schema -test -test -test -test -test -select distinct(privilege_type) from table_privileges; -privilege_type -select * from column_privileges -group by table_schema having table_schema = 'db_datadict'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from table_constraints limit 0,5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select count(*) as max_recs from key_column_usage limit 0,5; -max_recs -40 -select information_schema.tables.table_name as "table name", -count(distinct(column_name)) as "no of columns in the table" - from information_schema.tables left outer join information_schema.columns on -information_schema.tables.table_name = information_schema.columns.table_name -group by information_schema.tables.table_name; -table name no of columns in the table -CHARACTER_SETS 4 -COLLATIONS 6 -COLLATION_CHARACTER_SET_APPLICABILITY 2 -COLUMNS 19 -columns_priv 7 -COLUMN_PRIVILEGES 7 -db 20 -func 4 -help_category 4 -help_keyword 2 -help_relation 2 -help_topic 6 -host 19 -KEY_COLUMN_USAGE 12 -proc 16 -procs_priv 8 -ROUTINES 20 -SCHEMATA 5 -SCHEMA_PRIVILEGES 5 -STATISTICS 15 -t1 6 -t10 6 -t11 6 -t2 6 -t3 3 -t4 6 -t6 6 -t7 4 -t8 4 -t9 3 -TABLES 21 -tables_priv 8 -TABLE_CONSTRAINTS 6 -TABLE_PRIVILEGES 6 -tb1 58 -tb2 59 -tb3 58 -tb4 67 -time_zone 2 -time_zone_leap_second 2 -time_zone_name 2 -time_zone_transition 3 -time_zone_transition_type 5 -TRIGGERS 19 -user 37 -USER_PRIVILEGES 4 -v1 21 -VIEWS 8 -vu 3 -vu1 1 - -root: simple select to check all - and never forget some - tables ------------------------------------------------------------------ -SELECT * FROM schemata LIMIT 1; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -SELECT * FROM tables LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL utf8_general_ci NULL #CO# -SELECT * FROM columns LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -SELECT * FROM character_sets LIMIT 1; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -SELECT * FROM collations where collation_name <> 'utf8_general_cs' LIMIT 1; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -SELECT * FROM collation_character_set_applicability where collation_name <> 'utf8_general_cs' LIMIT 1; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -SELECT * FROM routines LIMIT 1; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER root@localhost -SELECT * FROM statistics LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -SELECT * FROM views LIMIT 1; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -SELECT * FROM user_privileges LIMIT 1; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'localhost' NULL SELECT YES -SELECT * FROM schema_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -SELECT * FROM table_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM column_privileges LIMIT 1; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM table_constraints LIMIT 1; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -SELECT * FROM key_column_usage LIMIT 1; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -SELECT * FROM triggers LIMIT 1; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -SELECT * FROM parameters LIMIT 1; -ERROR 42S02: Unknown table 'parameters' in information_schema -SELECT * FROM referential_constraints LIMIT 1; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema -use db_datadict; -select * from schemata; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -select * from tables; -ERROR 42S02: Table 'db_datadict.tables' doesn't exist -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from schemata s inner join tables t -ORDER BY s.catalog_name, s.schema_name, s.default_character_set_name; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -select * from columns limit 0, 5; -ERROR 42S02: Table 'db_datadict.columns' doesn't exist -select * from character_sets limit 0, 5; -ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist -select * from collations limit 0, 5; -ERROR 42S02: Table 'db_datadict.collations' doesn't exist -select * from collation_character_set_applicability limit 0, 5; -ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist -select * from routines limit 0, 5; -ERROR 42S02: Table 'db_datadict.routines' doesn't exist -select * from statistics limit 0, 5; -ERROR 42S02: Table 'db_datadict.statistics' doesn't exist -select * from views limit 0, 5; -ERROR 42S02: Table 'db_datadict.views' doesn't exist -select * from user_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist -select * from schema_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist -select * from table_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist -select * from column_privileges limit 0, 5; -ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist -select * from table_constraints limit 0, 5; -ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist -select * from key_column_usage limit 0, 5; -ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist - -will fail due to missing database name --------------------------------------- - -known error 1146: ------------------ -SELECT * FROM schemata ; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * FROM tables ; -ERROR 42S02: Table 'db_datadict.tables' doesn't exist -SELECT * FROM columns ; -ERROR 42S02: Table 'db_datadict.columns' doesn't exist -SELECT * FROM character_sets ; -ERROR 42S02: Table 'db_datadict.character_sets' doesn't exist -SELECT * FROM collations ; -ERROR 42S02: Table 'db_datadict.collations' doesn't exist -SELECT * FROM collation_character_set_applicability ; -ERROR 42S02: Table 'db_datadict.collation_character_set_applicability' doesn't exist -SELECT * FROM routines ; -ERROR 42S02: Table 'db_datadict.routines' doesn't exist -SELECT * FROM statistics ; -ERROR 42S02: Table 'db_datadict.statistics' doesn't exist -SELECT * FROM views ; -ERROR 42S02: Table 'db_datadict.views' doesn't exist -SELECT * FROM user_privileges ; -ERROR 42S02: Table 'db_datadict.user_privileges' doesn't exist -SELECT * FROM schema_privileges ; -ERROR 42S02: Table 'db_datadict.schema_privileges' doesn't exist -SELECT * FROM table_privileges ; -ERROR 42S02: Table 'db_datadict.table_privileges' doesn't exist -SELECT * FROM column_privileges ; -ERROR 42S02: Table 'db_datadict.column_privileges' doesn't exist -SELECT * FROM table_constraints ; -ERROR 42S02: Table 'db_datadict.table_constraints' doesn't exist -SELECT * FROM key_column_usage ; -ERROR 42S02: Table 'db_datadict.key_column_usage' doesn't exist -SELECT * FROM triggers ; -ERROR 42S02: Table 'db_datadict.triggers' doesn't exist -select * from information_schema.schemata ORDER BY 2 DESC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test4 latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME CHARACTER_SETS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATIONS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLLATION_CHARACTER_SET_APPLICABILITY -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMNS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME COLUMN_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME KEY_COLUMN_USAGE -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME ROUTINES -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMATA -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME SCHEMA_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME STATISTICS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_CONSTRAINTS -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TABLE_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME TRIGGERS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME USER_PRIVILEGES -TABLE_TYPE SYSTEM VIEW -ENGINE MEMORY -VERSION 0 -ROW_FORMAT Fixed -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA information_schema -TABLE_NAME VIEWS -TABLE_TYPE SYSTEM VIEW -ENGINE MyISAM -VERSION 0 -ROW_FORMAT Dynamic -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS #CO# -TABLE_COMMENT -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema') -AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME v1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA db_datadict -TABLE_NAME vu1 -TABLE_TYPE VIEW -ENGINE NULL -VERSION NULL -ROW_FORMAT NULL -TABLE_ROWS NULL -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION NULL -CHECKSUM NULL -CREATE_OPTIONS NULL -TABLE_COMMENT VIEW -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME columns_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Column privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME db -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 2 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME func -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT User defined functions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME host -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Host privileges; Merged with database privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME proc -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 1 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Stored Procedures -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME procs_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Procedure privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME tables_priv -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 0 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Table privileges -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 5 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT 6 -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_leap_second -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 22 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Leap seconds information for time zones -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_name -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 6 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone names -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 393 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transitions -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME time_zone_transition_type -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 31 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_general_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Time zone transition types -TABLE_CATALOG NULL -TABLE_SCHEMA mysql -TABLE_NAME user -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 3 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION utf8_bin -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT Users and global privileges -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t1 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t10 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t11 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t2 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t3 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t4 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t7 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t8 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME t9 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb1 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb3 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test -TABLE_NAME tb4 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test1 -TABLE_NAME tb2 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Dynamic -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -TABLE_CATALOG NULL -TABLE_SCHEMA test4 -TABLE_NAME t6 -TABLE_TYPE BASE TABLE -ENGINE MyISAM -VERSION 10 -ROW_FORMAT Fixed -TABLE_ROWS 10 -AVG_ROW_LENGTH #ARL# -DATA_LENGTH #DL# -MAX_DATA_LENGTH #MDL# -INDEX_LENGTH #IL# -DATA_FREE #DF# -AUTO_INCREMENT NULL -CREATE_TIME YYYY-MM-DD hh:mm:ss -UPDATE_TIME YYYY-MM-DD hh:mm:ss -CHECK_TIME YYYY-MM-DD hh:mm:ss -TABLE_COLLATION latin1_swedish_ci -CHECKSUM NULL -CREATE_OPTIONS -TABLE_COMMENT -select s.catalog_name, s.schema_name, s.default_character_set_name, -t.table_type, t.engine -from information_schema.schemata s inner join information_schema.tables t -ORDER BY s.schema_name, s.default_character_set_name, table_type, engine; -catalog_name schema_name default_character_set_name table_type engine -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 BASE TABLE MyISAM -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MEMORY -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 SYSTEM VIEW MyISAM -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL db_datadict latin1 VIEW NULL -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 BASE TABLE MyISAM -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MEMORY -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 SYSTEM VIEW MyISAM -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL information_schema utf8 VIEW NULL -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 BASE TABLE MyISAM -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MEMORY -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 SYSTEM VIEW MyISAM -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL mysql latin1 VIEW NULL -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 BASE TABLE MyISAM -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MEMORY -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 SYSTEM VIEW MyISAM -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test latin1 VIEW NULL -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 BASE TABLE MyISAM -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MEMORY -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 SYSTEM VIEW MyISAM -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test1 latin1 VIEW NULL -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 BASE TABLE MyISAM -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MEMORY -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 SYSTEM VIEW MyISAM -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -NULL test4 latin1 VIEW NULL -select * from information_schema.columns limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -select * from information_schema.character_sets limit 0, 5; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -select * from information_schema.collations limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -big5_bin big5 84 Yes 1 -dec8_swedish_ci dec8 3 Yes 0 -dec8_bin dec8 69 0 -cp850_general_ci cp850 4 Yes 0 -select * from information_schema.collation_character_set_applicability limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -select * from information_schema.routines limit 0, 5; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_1 NULL db_datadict sp_1 PROCEDURE NULL SQL BEGIN -SELECT * FROM db_datadict.v1; -END NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -select * from information_schema.statistics limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -select * from information_schema.views limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v1 /* ALGORITHM=UNDEFINED */ select `tables`.`TABLE_CATALOG` AS `TABLE_CATALOG`,`tables`.`TABLE_SCHEMA` AS `TABLE_SCHEMA`,`tables`.`TABLE_NAME` AS `TABLE_NAME`,`tables`.`TABLE_TYPE` AS `TABLE_TYPE`,`tables`.`ENGINE` AS `ENGINE`,`tables`.`VERSION` AS `VERSION`,`tables`.`ROW_FORMAT` AS `ROW_FORMAT`,`tables`.`TABLE_ROWS` AS `TABLE_ROWS`,`tables`.`AVG_ROW_LENGTH` AS `AVG_ROW_LENGTH`,`tables`.`DATA_LENGTH` AS `DATA_LENGTH`,`tables`.`MAX_DATA_LENGTH` AS `MAX_DATA_LENGTH`,`tables`.`INDEX_LENGTH` AS `INDEX_LENGTH`,`tables`.`DATA_FREE` AS `DATA_FREE`,`tables`.`AUTO_INCREMENT` AS `AUTO_INCREMENT`,`tables`.`CREATE_TIME` AS `CREATE_TIME`,`tables`.`UPDATE_TIME` AS `UPDATE_TIME`,`tables`.`CHECK_TIME` AS `CHECK_TIME`,`tables`.`TABLE_COLLATION` AS `TABLE_COLLATION`,`tables`.`CHECKSUM` AS `CHECKSUM`,`tables`.`CREATE_OPTIONS` AS `CREATE_OPTIONS`,`tables`.`TABLE_COMMENT` AS `TABLE_COMMENT` from `information_schema`.`tables` NONE NO root@localhost DEFINER -NULL db_datadict vu /* ALGORITHM=UNDEFINED */ select distinct `vu1`.`u` AS `u`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3)) AS `server`,substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3),(length(substr(`vu1`.`u`,(length(substring_index(`vu1`.`u`,_utf8'@',1)) + 3))) - 1)) AS `Server_Clean` from `db_datadict`.`vu1` NONE NO root@localhost DEFINER -NULL db_datadict vu1 /* ALGORITHM=UNDEFINED */ select `user_privileges`.`GRANTEE` AS `u` from `information_schema`.`user_privileges` NONE NO root@localhost DEFINER -select * from information_schema.user_privileges limit 0, 5; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL UPDATE YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL CREATE YES -select * from information_schema.schema_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -select * from information_schema.table_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from information_schema.column_privileges limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from information_schema.table_constraints limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql PRIMARY mysql db PRIMARY KEY -NULL mysql PRIMARY mysql func PRIMARY KEY -NULL mysql PRIMARY mysql help_category PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select * from information_schema.key_column_usage limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -select count(*) as max_recs from information_schema.key_column_usage limit 0, 5; -max_recs -40 - -root: check with db name ------------------------- -SELECT COUNT(*) FROM information_schema. schemata ; -COUNT(*) -6 -SELECT COUNT(*) FROM information_schema. tables ; -COUNT(*) -51 -SELECT COUNT(*) FROM information_schema. columns ; -COUNT(*) -682 -SELECT COUNT(*) FROM information_schema. character_sets ; -COUNT(*) -36 -SELECT COUNT(*) FROM information_schema. collations where collation_name <> 'utf8_general_cs' ; -COUNT(*) -126 -SELECT COUNT(*) FROM information_schema. collation_character_set_applicability where collation_name <> 'utf8_general_cs' ; -COUNT(*) -126 -SELECT COUNT(*) FROM information_schema. routines ; -COUNT(*) -1 -SELECT COUNT(*) FROM information_schema. statistics ; -COUNT(*) -43 -SELECT COUNT(*) FROM information_schema. views ; -COUNT(*) -3 -SELECT COUNT(*) FROM information_schema. user_privileges ; -COUNT(*) -75 -SELECT COUNT(*) FROM information_schema. schema_privileges ; -COUNT(*) -28 -SELECT COUNT(*) FROM information_schema. table_privileges ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. column_privileges ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. table_constraints ; -COUNT(*) -20 -SELECT COUNT(*) FROM information_schema. key_column_usage ; -COUNT(*) -40 -SELECT COUNT(*) FROM information_schema. triggers ; -COUNT(*) -0 -SELECT COUNT(*) FROM information_schema. parameters ; -ERROR 42S02: Unknown table 'parameters' in information_schema -SELECT COUNT(*) FROM information_schema. referential_constraints ; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema -USE db_datadict; -DROP VIEW v1, vu1, vu; -DROP PROCEDURE db_datadict.sp_1; -USE information_schema; - -Testcase 3.2.1.2: --------------------------------------------------------------------------------- -select catalog_name, schema_name, default_character_set_name -from schemata where schema_name like '%s%'; -catalog_name schema_name default_character_set_name -NULL information_schema utf8 -NULL mysql latin1 -NULL test latin1 -NULL test1 latin1 -NULL test4 latin1 -select count(*) as tot_tabs from tables; -tot_tabs -48 -select count(*) as the_cols from columns; -the_cols -657 -select max(maxlen) as the_max from character_sets; -the_max -3 -select * from collations order by id asc limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -latin2_czech_cs latin2 2 Yes 4 -dec8_swedish_ci dec8 3 Yes 0 -cp850_general_ci cp850 4 Yes 0 -latin1_german1_ci latin1 5 Yes 1 -select * from collation_character_set_applicability -order by character_set_name desc, collation_name limit 0, 5; -COLLATION_NAME CHARACTER_SET_NAME -utf8_bin utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_esperanto_ci utf8 -utf8_estonian_ci utf8 -select routine_definition from routines; -routine_definition -select * from statistics where table_name not like 'help_%' -group by index_name asc limit 0, 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -select concat(table_schema, ', ', table_name, ', ', view_definition) view_info -from views; -view_info -select concat(table_schema, ', ', table_name) "Table_info" - from tables ORDER BY 1; -Table_info -information_schema, CHARACTER_SETS -information_schema, COLLATIONS -information_schema, COLLATION_CHARACTER_SET_APPLICABILITY -information_schema, COLUMNS -information_schema, COLUMN_PRIVILEGES -information_schema, KEY_COLUMN_USAGE -information_schema, ROUTINES -information_schema, SCHEMATA -information_schema, SCHEMA_PRIVILEGES -information_schema, STATISTICS -information_schema, TABLES -information_schema, TABLE_CONSTRAINTS -information_schema, TABLE_PRIVILEGES -information_schema, TRIGGERS -information_schema, USER_PRIVILEGES -information_schema, VIEWS -mysql, columns_priv -mysql, db -mysql, func -mysql, help_category -mysql, help_keyword -mysql, help_relation -mysql, help_topic -mysql, host -mysql, proc -mysql, procs_priv -mysql, tables_priv -mysql, time_zone -mysql, time_zone_leap_second -mysql, time_zone_name -mysql, time_zone_transition -mysql, time_zone_transition_type -mysql, user -test, t1 -test, t10 -test, t11 -test, t2 -test, t3 -test, t4 -test, t7 -test, t8 -test, t9 -test, tb1 -test, tb2 -test, tb3 -test, tb4 -test1, tb2 -test4, t6 -select distinct grantee from user_privileges order by grantee, privilege_type; -grantee -'root'@'127.0.0.1' -'root'@'' -'root'@'localhost' -select * from schema_privileges where table_catalog is null limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -select * from table_privileges where grantee like '%r%' limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * from column_privileges where table_catalog is not null limit 0, 5; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select HIGH_PRIORITY * from table_constraints -group by constraint_name desc limit 0, 5; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL mysql PRIMARY mysql columns_priv PRIMARY KEY -NULL mysql name mysql help_category UNIQUE -select sum(ordinal_position) from key_column_usage; -sum(ordinal_position) -77 -select * from schemata limit 0,5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -select * from schemata limit 0,5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL mysql latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -NULL test1 latin1 latin1_swedish_ci NULL -select distinct grantee from user_privileges; -grantee -'root'@'127.0.0.1' -'root'@'' -'root'@'localhost' -select all grantee from user_privileges order by grantee, privilege_type; -grantee -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'127.0.0.1' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -'root'@'localhost' -select id , character_set_name from collations order by id asc limit 10; -id character_set_name -1 big5 -2 latin2 -3 dec8 -4 cp850 -5 latin1 -6 hp8 -7 koi8r -8 latin1 -9 latin2 -10 swe7 -select table_catalog from columns -union all -select table_catalog from tables limit 0,5; -table_catalog -NULL -NULL -NULL -NULL -NULL -select table_catalog from columns -union -select table_catalog from tables limit 0,5; -table_catalog -NULL -select all schema_name from information_schema.schemata; -schema_name -information_schema -db_datadict -mysql -test -test1 -test4 -SELECT * -INTO OUTFILE '../tmp/out.myisam.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -USE test; -SELECT * -INTO OUTFILE '../tmp/out.myisam.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CREATE USER user_3212@localhost; -GRANT ALL ON db_datadict.* TO user_3212@localhost; -GRANT FILE ON *.* TO user_3212@localhost; -connect(localhost,user_3212,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -user_3212@localhost db_datadict -SELECT * -INTO OUTFILE '../tmp/out.myisam.user.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * -FROM schemata LIMIT 0, 5; -ERROR 42S02: Table 'db_datadict.schemata' doesn't exist -SELECT * -INTO OUTFILE '../tmp/out.myisam.user.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -SELECT * -FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -USE information_schema; -SELECT * -INTO OUTFILE '../tmp/out.myisam.user_2.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM schemata LIMIT 0, 5; -SELECT * -FROM schemata LIMIT 0, 5; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -SELECT * -INTO OUTFILE '../tmp/out.myisam.user_2.db.file' - FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' - LINES TERMINATED BY '\n' - FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -SELECT * -FROM information_schema.schemata -WHERE schema_name LIKE 'db_%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -USE information_schema; - -root@localhost information_schema -use db_datadict; -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from information_schema.columns -union -select table_catalog, table_schema, table_name, -concat( "*** type = ", table_type ) -from information_schema.tables -order by 3, 4 desc, 1, 2 limit 30; -1 2 3 4 -NULL information_schema CHARACTER_SETS MAXLEN -NULL information_schema CHARACTER_SETS DESCRIPTION -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME -NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW -NULL information_schema COLLATIONS SORTLEN -NULL information_schema COLLATIONS IS_DEFAULT -NULL information_schema COLLATIONS IS_COMPILED -NULL information_schema COLLATIONS ID -NULL information_schema COLLATIONS COLLATION_NAME -NULL information_schema COLLATIONS CHARACTER_SET_NAME -NULL information_schema COLLATIONS *** type = SYSTEM VIEW -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW -NULL information_schema COLUMNS TABLE_SCHEMA -NULL information_schema COLUMNS TABLE_NAME -NULL information_schema COLUMNS TABLE_CATALOG -NULL information_schema COLUMNS PRIVILEGES -NULL information_schema COLUMNS ORDINAL_POSITION -NULL information_schema COLUMNS NUMERIC_SCALE -NULL information_schema COLUMNS NUMERIC_PRECISION -NULL information_schema COLUMNS IS_NULLABLE -NULL information_schema COLUMNS EXTRA -NULL information_schema COLUMNS DATA_TYPE -NULL information_schema COLUMNS COLUMN_TYPE -NULL information_schema COLUMNS COLUMN_NAME -NULL information_schema COLUMNS COLUMN_KEY -NULL information_schema COLUMNS COLUMN_DEFAULT -NULL information_schema COLUMNS COLUMN_COMMENT -use information_schema; -select table_catalog "1", table_schema "2", table_name "3", column_name "4" - from columns -union -select table_catalog, table_schema, table_name, -concat( "*** type = ", table_type ) -from tables -order by 3, 4 desc, 1, 2 limit 30; -1 2 3 4 -NULL information_schema CHARACTER_SETS MAXLEN -NULL information_schema CHARACTER_SETS DESCRIPTION -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME -NULL information_schema CHARACTER_SETS *** type = SYSTEM VIEW -NULL information_schema COLLATIONS SORTLEN -NULL information_schema COLLATIONS IS_DEFAULT -NULL information_schema COLLATIONS IS_COMPILED -NULL information_schema COLLATIONS ID -NULL information_schema COLLATIONS COLLATION_NAME -NULL information_schema COLLATIONS CHARACTER_SET_NAME -NULL information_schema COLLATIONS *** type = SYSTEM VIEW -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY *** type = SYSTEM VIEW -NULL information_schema COLUMNS TABLE_SCHEMA -NULL information_schema COLUMNS TABLE_NAME -NULL information_schema COLUMNS TABLE_CATALOG -NULL information_schema COLUMNS PRIVILEGES -NULL information_schema COLUMNS ORDINAL_POSITION -NULL information_schema COLUMNS NUMERIC_SCALE -NULL information_schema COLUMNS NUMERIC_PRECISION -NULL information_schema COLUMNS IS_NULLABLE -NULL information_schema COLUMNS EXTRA -NULL information_schema COLUMNS DATA_TYPE -NULL information_schema COLUMNS COLUMN_TYPE -NULL information_schema COLUMNS COLUMN_NAME -NULL information_schema COLUMNS COLUMN_KEY -NULL information_schema COLUMNS COLUMN_DEFAULT -NULL information_schema COLUMNS COLUMN_COMMENT -DROP USER user_3212@localhost; - -Testcase 3.2.1.3: --------------------------------------------------------------------------------- -insert into schemata (catalog_name, schema_name, default_character_set_name, sql_path) -values ('null', 'db1', 'latin1', 'null'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into tables (table_schema, table_name)values('db_datadict', 't1'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into columns (table_name, column_name)values('t3', 'f2'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into character_sets (character_set_name, default_collate_name, description, maxlen) -values('cp1251', 'cp1251_general_ci', 'windows cyrillic', 1); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into collations ( collation_name, character_set_name, id, is_default, is_compiled, sortlen) -values ('cp1251_bin', 'cp1251', 50, '', '', 0); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into collation_character_set_applicability (collation_name, character_set_name) -values (' big5_chinese_ci', 'big6'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into routines(routine_name, routine_type ) values ('p2', 'procedure'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into statistics(table_schema, table_name, index_name) -values ('mysql', 'db', 'primary'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into views(table_schema, table_name) values ('db2', 'v2'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into user_privileges (privilege_type, is_grantable) values ('select', 'yes'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into schema_privileges (table_schema, privilege_type) values('db2', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into table_privileges (able_schema, table_name, privilege_type) -values('db2', 'v2', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into column_privileges (table_name, column_name, privilege_type) -values ('t3', 'f3', 'insert'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into table_constraints ( constraint_schema, constraint_name, table_schema) -values ('primary', 'mysql', 'user'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -insert into key_column_usage (constraint_schema, constraint_name, table_name) -values ('mysql', 'primary', 'db'); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_3; -create procedure db_datadict.sp_4_1_3() -begin -insert into information_schema.schema_privileges (table_schema,privilege_type) -values('db2','insert'); -end// -SELECT table_schema, privilege_type FROM information_schema.schema_privileges -WHERE table_schema LIKE 'db%'; -table_schema privilege_type -call db_datadict.sp_4_1_3(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -SELECT table_schema, privilege_type FROM information_schema.schema_privileges -WHERE table_schema LIKE 'db%'; -table_schema privilege_type -drop procedure db_datadict.sp_4_1_3; -CREATE USER user_4_1_3@localhost; -connect(localhost,user_4_1_3,,test,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_3@localhost test -use information_schema; -insert into table_constraints ( constraint_schema, constraint_name, table_schema) -values ('primary', 'mysql', 'user'); -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema - -Testcase 3.2.1.4: --------------------------------------------------------------------------------- -use information_schema; - -root@localhost information_schema -update schemata set schema_name = 'db5' where default_character_set_name = 'latin1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update tables set table_schema = 'db_datadict1' where table_name = 't1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update character_sets set character_set_name = 'cp1252' where maxlen = 1; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update collations set collation_name = 'cp1253_bin' - where character_set_name = 'cp1251'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update collation_character_set_applicability set collation_name = 'big6_chinese_ci' - where character_set_name = 'big6'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update routines set routine_name = p2 where routine_body = 'sql'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update statistics set table_schema = 'mysql1' where table_name = 'db'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update views set table_schema = 'db3' where table_name = 'v1'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update schema_privileges set table_schema = 'db2' where privilege_type = 'select'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update table_privileges set table_name = 'v3' where privilege_type = 'select'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update column_privileges set table_name = 't4' where column_name = 'f3'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update table_constraints set constraint_schema = 'primary' - where table_schema = 'proc'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -update key_column_usage set table_name = 'db1' where constraint_name = 'primary'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_4; -create procedure db_datadict.sp_4_1_4() -begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end// -select * from information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -call db_datadict.sp_4_1_4(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -select * from information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_4_1_4 NULL db_datadict sp_4_1_4 PROCEDURE NULL SQL begin -update information_schema.routines set routine_name = 'p2' - where routine_name = 'sp_4_1_4'; -end NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -drop procedure db_datadict.sp_4_1_4; -use information_schema; - -user_4_1_3@localhost information_schema -update user_privileges set privilege_type = 'insert' where is_grantable = 'yes'; -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema - -Testcase 3.2.1.5: --------------------------------------------------------------------------------- -use information_schema; - -root: DELETE FROM any table in IS ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DELETE FROM schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from schemata where schema_name = 'mysql'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from tables where table_name = 'abc'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from columns; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from character_sets; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from collations; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from collation_character_set_applicability; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from routines; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from statistics; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from views; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from user_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from schema_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from table_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from column_privileges; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from table_constraints; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -delete from key_column_usage; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure if exists db_datadict.sp_4_1_5; -create procedure db_datadict.sp_4_1_5() -begin -delete from information_schema.column_privileges; -end// -call db_datadict.sp_4_1_5(); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -drop procedure db_datadict.sp_4_1_5; -use information_schema; - -user_4_1_3@localhost information_schema -delete from tables where table_name = 'abc'; -ERROR 42000: Access denied for user 'user_4_1_3'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_3@localhost; - -Testcase 3.2.1.6: --------------------------------------------------------------------------------- -use information_schema; - -root: create a table with a name of an IS table directly in IS --------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE schemata ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE tables ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE columns ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE collations ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE routines ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE statistics ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE views ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE triggers ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create table t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -use db_datadict; - -root: create a table with a name of an IS table from other db -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE information_schema. schemata ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. tables ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. columns ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collations ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. routines ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. statistics ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. views ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. triggers ( c1 INT ); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create table information_schema.t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -CREATE USER user_4_1_6@localhost; -grant all on *.* to user_4_1_6@localhost; -FLUSH PRIVILEGES; -SHOW GRANTS FOR user_4_1_6@localhost; -Grants for user_4_1_6@localhost -GRANT ALL PRIVILEGES ON *.* TO 'user_4_1_6'@'localhost' -connect(localhost,user_4_1_6,,information_schema,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_6@localhost information_schema -use information_schema; - -user: create a table with a name of an IS table directly in IS --------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE schemata ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE tables ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE columns ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE collations ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE routines ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE statistics ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE views ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE triggers ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -create table t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema -use test; - -user: create a table with a name of an IS table from other db -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE TABLE information_schema. schemata ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. tables ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. columns ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. character_sets ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collations ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. routines ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. statistics ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. views ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. user_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. schema_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. column_privileges ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. table_constraints ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. key_column_usage ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -CREATE TABLE information_schema. triggers ( c1 INT ); -ERROR 42000: Access denied for user 'user_4_1_6'@'localhost' to database 'information_schema' -create table information_schema.t1 (f1 int, f2 int, f3 int); -ERROR 42S02: Unknown table 't1' in information_schema - -root@localhost db_datadict -DROP USER user_4_1_6@localhost; - -Testcase 3.2.1.7: --------------------------------------------------------------------------------- -use information_schema; - -root: create a view with a name of an IS table directly in IS -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW schemata AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW tables AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW columns AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW character_sets AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW collations AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW collation_character_set_applicability AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW routines AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW statistics AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW views AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW user_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW schema_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW table_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW column_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW table_constraints AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW key_column_usage AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW triggers AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW v1 AS SELECT * FROM information_schema.schemata; -ERROR 42S02: Unknown table 'v1' in information_schema -USE db_datadict; - -root: create a view with a name of an IS table from other db ------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW information_schema. schemata AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. tables AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. columns AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. character_sets AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collations AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. routines AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. statistics AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. views AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. user_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. schema_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. column_privileges AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_constraints AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. key_column_usage AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. triggers AS SELECT * FROM mysql.time_zone; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE VIEW v1 AS SELECT * FROM information_schema.columns; -SELECT * FROM v1 LIMIT 5; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -CREATE USER user_4_1_7@localhost; -GRANT ALL ON db_datadict.* TO user_4_1_7@localhost; -GRANT ALL ON information_schema.* TO user_4_1_7@localhost; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,user_4_1_7,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_7@localhost information_schema - -user: create a view with a name of an IS table directly in IS -------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW schemata AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW tables AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW columns AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW character_sets AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW collations AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW collation_character_set_applicability AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW routines AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW statistics AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW views AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW user_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW schema_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW table_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW column_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW table_constraints AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW key_column_usage AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW triggers AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -create view v1 as select * from table_privileges; -ERROR 42S02: Unknown table 'v1' in information_schema -use db_datadict; - -user: create a view with a name of an IS table from other db ------------------------------------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -CREATE VIEW information_schema. schemata AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. tables AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. columns AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. character_sets AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collations AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. collation_character_set_applicability AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. routines AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. statistics AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. views AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. user_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. schema_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. column_privileges AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. table_constraints AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. key_column_usage AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' -CREATE VIEW information_schema. triggers AS SELECT * FROM db_datadict.v1; -ERROR 42000: Access denied for user 'user_4_1_7'@'localhost' to database 'information_schema' - -root@localhost db_datadict -DROP USER user_4_1_7@localhost; -DROP VIEW db_datadict.v1; - -Testcase 3.2.1.8: --------------------------------------------------------------------------------- -use information_schema; -create index i1 on schemata(schema_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i2 on tables(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i3 on columns(table_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i4 on character_sets(character_set_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i6 on collation_character_set_applicability(collation_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i7 on routines(routine_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i8 on statistics(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i9 on views(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i10 on user_privileges(privilege_type); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i11 on schema_privileges(table_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i12 on table_privileges(able_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i13 on column_privileges(table_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i14 on table_constraints(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i15 on key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -create index i16 on triggers(trigger_name); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use db_datadict; -create index i15 on information_schema.key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; -CREATE USER user_4_1_8@localhost; -grant select, index on *.* to user_4_1_8@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_8,,test,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_8@localhost test -use information_schema; -create index i1 on schemata(schema_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i2 on tables(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i3 on columns(table_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i4 on character_sets(character_set_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i6 on collation_character_set_applicability(collation_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i7 on routines(routine_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i8 on statistics(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i9 on views(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i10 on user_privileges(privilege_type); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i11 on schema_privileges(table_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i12 on table_privileges(able_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i13 on column_privileges(table_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i14 on table_constraints(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i15 on key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -create index i16 on triggers(trigger_name); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' -use db_datadict; -create index i15 on information_schema.key_column_usage(constraint_schema); -ERROR 42000: Access denied for user 'user_4_1_8'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_8@localhost; - -Testcase 3.2.1.9: --------------------------------------------------------------------------------- - -root: alter a table from other db ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; - -root: alter a table from directly ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE schemata ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE tables ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE columns ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE collations ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE routines ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE statistics ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE views ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE triggers ADD f1 INT; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table schemata add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table tables drop primary key; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table columns add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table character_sets disable keys; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table collations enable keys; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table collation_character_set_applicability add f1 int; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table routines discard tablespace; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table statistics import tablespace; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table views drop column table_name; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table user_privileges drop index privilege_type; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table schema_privileges drop column is_grantable; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table table_privileges order by constraint_type; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table column_privileges rename to aaxyz; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table table_constraints order by schema_name; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table key_column_usage rename to information_schema.aabxyz; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -alter table triggers rename to information_schema.sql_mode; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE USER user_4_1_9@localhost; -grant select, alter, create, insert on *.* to user_4_1_9@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_9,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -user_4_1_9@localhost db_datadict -use db_datadict; - -user: alter a table from other db ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -use information_schema; - -user: alter a table from directly ---------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE schemata ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE tables ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE columns ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE character_sets ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE collations ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE collation_character_set_applicability ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE routines ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE statistics ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE views ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE user_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE schema_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE table_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE column_privileges ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE table_constraints ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE key_column_usage ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' -ALTER TABLE triggers ADD f1 INT; -ERROR 42000: Access denied for user 'user_4_1_9'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_9@localhost; - -Testcase 3.2.1.10: --------------------------------------------------------------------------------- -use information_schema; - -root: drop a table from IS --------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use db_datadict; - -root: drop a table from other db --------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE information_schema. schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DROP TABLE information_schema. triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -use information_schema; -CREATE USER user_4_1_10@localhost; -GRANT SELECT, DROP ON *.* TO user_4_1_10@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_10,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_10@localhost information_schema - -user: drop a table from IS --------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE schemata ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE tables ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE columns ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE character_sets ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE collations ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE collation_character_set_applicability ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE routines ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE statistics ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE views ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE user_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE schema_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE table_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE column_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE table_constraints ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE key_column_usage ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE triggers ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -use db_datadict; - -user: drop a table from other db --------------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DROP TABLE information_schema. schemata ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. tables ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. columns ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. character_sets ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collations ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. routines ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. statistics ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. views ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. user_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. column_privileges ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. table_constraints ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' -DROP TABLE information_schema. triggers ; -ERROR 42000: Access denied for user 'user_4_1_10'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_10@localhost; -CREATE USER user_4_1_11@localhost; -GRANT SUPER ON *.* TO user_4_1_11@localhost; -FLUSH PRIVILEGES; -connect(localhost,user_4_1_11,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; - -user_4_1_11@localhost information_schema -drop table routines; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -alter table collations enable keys; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -create index i5 on collations( collation_name ); -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -create view v1 as select * from schemata; -ERROR 42S02: Unknown table 'v1' in information_schema -delete from columns; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' -insert into collations ( collation_name, character_set_name, id, is_default, -is_compiled, sortlen) -values ('cp1251_bin', 'cp1251', 50, '', '', 0); -ERROR 42000: Access denied for user 'user_4_1_11'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP USER user_4_1_11@localhost; - -Testcase 3.2.1.11: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'u_6_401011'@'localhost'; -GRANT ALL ON information_schema.* TO 'u_6_401011'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -GRANT ALL ON db_datadict.* TO 'u_6_401011'@'localhost'; -FLUSH PRIVILEGES; -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' - -root: move table to other DB ----------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -connect(localhost,u_6_401011,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; - -u_6_401011@localhost information_schema -ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' - -user: move table to other DB ----------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -ALTER TABLE information_schema. schemata RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. tables RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. columns RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. character_sets RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collations RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. collation_character_set_applicability RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. routines RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. statistics RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. views RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. user_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. schema_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. column_privileges RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. table_constraints RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. key_column_usage RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' -ALTER TABLE information_schema. triggers RENAME db_datadict.tb_01; -ERROR 42000: Access denied for user 'u_6_401011'@'localhost' to database 'information_schema' - -root@localhost information_schema -DROP TABLE IF EXISTS db_datadict.schemata; -DROP USER 'u_6_401011'@'localhost'; - -Testcase 3.2.1.12: --------------------------------------------------------------------------------- - -root: delete from IS tables ---------------------------- - -known error 1044 (ERROR 42000: Access denied for user ... to database ...): ---------------------------------------------------------------------------- -DELETE FROM information_schema. schemata ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. tables ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. columns ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. character_sets ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. collations ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. collation_character_set_applicability ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. routines ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. statistics ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. views ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. user_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. schema_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. table_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. column_privileges ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. table_constraints ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. key_column_usage ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -DELETE FROM information_schema. triggers ; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.tables SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.columns SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.statistics SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.views SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.table_privileges SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.column_privileges SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.table_constraints SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.key_column_usage SET table_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.schemata SET catalog_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.character_sets SET description = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.collations SET character_set_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.collation_character_set_applicability -SET character_set_name = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.routines SET routine_type = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.user_privileges SET grantee = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.schema_privileges SET grantee = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -UPDATE information_schema.triggers SET sql_mode = 't_4711'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -CREATE USER 'u_6_401012'@'localhost'; -connect(localhost,u_6_401012,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; -insert into information_schema.schemata (catalog_name, schema_name, -default_character_set_name, sql_path) -values (null, information_schema1, utf16, null); -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.schemata rename db_datadict1.schemata; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.tables drop column checksum; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.statistics modify packed int; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.routines modify created int not null; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.key_column_usage drop column ordinal_position; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -alter table information_schema.table_privileges -change privilege_type rights_approved varchar(32); -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -update columns set table_name = 't4' where column_name = 'f2'; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' -delete from information_schema.collations; -ERROR 42000: Access denied for user 'u_6_401012'@'localhost' to database 'information_schema' - -root@localhost information_schema -drop table if exists db_datadict1.schemata; -DROP USER 'u_6_401012'@'localhost'; - -Testcase 3.2.1.13: --------------------------------------------------------------------------------- -use information_schema; - -first check status >before< creating the objects ... ----------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401013(f1 char(10), f2 char(25), f3 int) -engine = myisam; -create view res_v_401013 as select * from res_t_401013; -CREATE USER u_6_401013@localhost; -create procedure sp_6_401013() select 'db_datadict'; -create function fn_6_401013() returns int return 0; -create index i_6_401013 on res_t_401013(f3); -use information_schema; - -now check whether all new objects exists in IS ... --------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL db_datadict res_t_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references -NULL db_datadict res_v_401013 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401013 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL db_datadict res_v_401013 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401013 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401013 FUNCTION DEFINER -sp_6_401013 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -res_t_401013 db_datadict i_6_401013 BTREE -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -'u_6_401013'@'localhost' NULL USAGE NO -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop index i_6_401013 on res_t_401013; -drop table db_datadict.res_t_401013; -drop view db_datadict.res_v_401013; -DROP USER u_6_401013@localhost; -drop procedure sp_6_401013; -drop function fn_6_401013; -drop database db_datadict; -use information_schema; - -and now check whether all objects are removed from IS ... ---------------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER - -Testcase 3.2.1.14: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401014(f1 char(10), f2 varchar(25), f3 int); -create view res_v_401014 as select * from res_t_401014; -create procedure sp_6_401014() select 'db_datadict'; -create function fn_6_401014() returns int return 0; - -show existing objects >before< changing them ... ------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_t_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict res_v_401014 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_v_401014 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401014 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401014 FUNCTION DEFINER -sp_6_401014 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -alter table res_t_401014 change f1 ff1 int; -alter table res_t_401014 engine = MEMORY; -alter table res_t_401014 change f3 f3_new bigint; -alter view res_v_401014 as select ff1 from res_t_401014; -alter procedure sp_6_401014 sql security invoker; -alter function fn_6_401014 comment 'updated comments'; -alter database db_datadict character set utf8; - -now check whether the changes are visible in IS ... ---------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict utf8 utf8_general_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MEMORY -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict res_t_401014 f2 2 NULL YES varchar 25 25 NULL NULL latin1 latin1_swedish_ci varchar(25) select,insert,update,references -NULL db_datadict res_t_401014 f3_new 3 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL db_datadict res_v_401014 ff1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401014 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401014 FUNCTION DEFINER -sp_6_401014 PROCEDURE INVOKER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop table db_datadict.res_t_401014; -drop view db_datadict.res_v_401014; -drop procedure sp_6_401014; -drop function fn_6_401014; -drop database db_datadict; - -Testcase 3.2.1.15: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_t_401015(f1 char(10), f2 text(25), f3 int); -create view res_v_401015 as select * from res_t_401015; -CREATE USER u_6_401015@localhost; -create procedure sp_6_401015() select 'test'; -create function fn_6_401015() returns int return 0; -create index i_6_401015 on res_t_401015(f3); - -show existing objects >before< dropping them ... ------------------------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -NULL db_datadict MyISAM -NULL db_datadict NULL -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict res_t_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_t_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL db_datadict res_t_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) MUL select,insert,update,references -NULL db_datadict res_v_401015 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict res_v_401015 f2 2 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL db_datadict res_v_401015 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -db_datadict res_v_401015 YES -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -fn_6_401015 FUNCTION DEFINER -sp_6_401015 PROCEDURE DEFINER -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -res_t_401015 db_datadict i_6_401015 BTREE -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -'u_6_401015'@'localhost' NULL USAGE NO -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER -use db_datadict; -drop index i_6_401015 on res_t_401015; -drop table db_datadict.res_t_401015; -drop view db_datadict.res_v_401015; -DROP USER u_6_401015@localhost; -drop procedure sp_6_401015; -drop function fn_6_401015; - -now check they are really gone ... ----------------------------------- -select * -from information_schema.schemata -where schema_name like 'db_datadict%'; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL db_datadict latin1 latin1_swedish_ci NULL -select table_catalog, table_schema, engine -from information_schema.tables -where table_schema like 'db_datadict%'; -table_catalog table_schema engine -select * -from information_schema.columns -where table_schema like 'db_datadict%'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -select table_schema, table_name, is_updatable -from information_schema.views -where table_schema like 'db_datadict%'; -table_schema table_name is_updatable -select routine_name, routine_type, security_type, sql_mode -from information_schema.routines -where routine_schema like 'db_datadict%'; -routine_name routine_type security_type sql_mode -select table_name, index_schema, index_name, index_type -from information_schema.statistics -where table_schema like 'db_datadict%'; -table_name index_schema index_name index_type -select * -from information_schema.user_privileges; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'root'@'127.0.0.1' NULL ALTER YES -'root'@'127.0.0.1' NULL ALTER ROUTINE YES -'root'@'127.0.0.1' NULL CREATE YES -'root'@'127.0.0.1' NULL CREATE ROUTINE YES -'root'@'127.0.0.1' NULL CREATE TEMPORARY TABLES YES -'root'@'127.0.0.1' NULL CREATE USER YES -'root'@'127.0.0.1' NULL CREATE VIEW YES -'root'@'127.0.0.1' NULL DELETE YES -'root'@'127.0.0.1' NULL DROP YES -'root'@'127.0.0.1' NULL EXECUTE YES -'root'@'127.0.0.1' NULL FILE YES -'root'@'127.0.0.1' NULL INDEX YES -'root'@'127.0.0.1' NULL INSERT YES -'root'@'127.0.0.1' NULL LOCK TABLES YES -'root'@'127.0.0.1' NULL PROCESS YES -'root'@'127.0.0.1' NULL REFERENCES YES -'root'@'127.0.0.1' NULL RELOAD YES -'root'@'127.0.0.1' NULL REPLICATION CLIENT YES -'root'@'127.0.0.1' NULL REPLICATION SLAVE YES -'root'@'127.0.0.1' NULL SELECT YES -'root'@'127.0.0.1' NULL SHOW DATABASES YES -'root'@'127.0.0.1' NULL SHOW VIEW YES -'root'@'127.0.0.1' NULL SHUTDOWN YES -'root'@'127.0.0.1' NULL SUPER YES -'root'@'127.0.0.1' NULL UPDATE YES -'root'@'' NULL ALTER YES -'root'@'' NULL ALTER ROUTINE YES -'root'@'' NULL CREATE YES -'root'@'' NULL CREATE ROUTINE YES -'root'@'' NULL CREATE TEMPORARY TABLES YES -'root'@'' NULL CREATE USER YES -'root'@'' NULL CREATE VIEW YES -'root'@'' NULL DELETE YES -'root'@'' NULL DROP YES -'root'@'' NULL EXECUTE YES -'root'@'' NULL FILE YES -'root'@'' NULL INDEX YES -'root'@'' NULL INSERT YES -'root'@'' NULL LOCK TABLES YES -'root'@'' NULL PROCESS YES -'root'@'' NULL REFERENCES YES -'root'@'' NULL RELOAD YES -'root'@'' NULL REPLICATION CLIENT YES -'root'@'' NULL REPLICATION SLAVE YES -'root'@'' NULL SELECT YES -'root'@'' NULL SHOW DATABASES YES -'root'@'' NULL SHOW VIEW YES -'root'@'' NULL SHUTDOWN YES -'root'@'' NULL SUPER YES -'root'@'' NULL UPDATE YES -'root'@'localhost' NULL ALTER YES -'root'@'localhost' NULL ALTER ROUTINE YES -'root'@'localhost' NULL CREATE YES -'root'@'localhost' NULL CREATE ROUTINE YES -'root'@'localhost' NULL CREATE TEMPORARY TABLES YES -'root'@'localhost' NULL CREATE USER YES -'root'@'localhost' NULL CREATE VIEW YES -'root'@'localhost' NULL DELETE YES -'root'@'localhost' NULL DROP YES -'root'@'localhost' NULL EXECUTE YES -'root'@'localhost' NULL FILE YES -'root'@'localhost' NULL INDEX YES -'root'@'localhost' NULL INSERT YES -'root'@'localhost' NULL LOCK TABLES YES -'root'@'localhost' NULL PROCESS YES -'root'@'localhost' NULL REFERENCES YES -'root'@'localhost' NULL RELOAD YES -'root'@'localhost' NULL REPLICATION CLIENT YES -'root'@'localhost' NULL REPLICATION SLAVE YES -'root'@'localhost' NULL SELECT YES -'root'@'localhost' NULL SHOW DATABASES YES -'root'@'localhost' NULL SHOW VIEW YES -'root'@'localhost' NULL SHUTDOWN YES -'root'@'localhost' NULL SUPER YES -'root'@'localhost' NULL UPDATE YES -select * -from information_schema.column_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.table_privileges -where table_schema like 'db_datadict%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select * -from information_schema.key_column_usage -where table_schema like 'db_datadict%'; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -SELECT * -FROM information_schema.triggers -WHERE trigger_schema LIKE 'db_datadict%'; -TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER - -Testcase 3.2.1.16: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE DATABASE db_hidden; -USE db_hidden; -CREATE TABLE tb_hidden ( c1 TEXT ); -USE db_datadict; -CREATE TABLE res_t_401016(f1 char(10),f2 text(25),f3 int); -CREATE TABLE res_t_401016_1(f1 char(10),f2 text(25),f3 int); -CREATE USER 'u_6_401016'@'localhost'; -GRANT SELECT ON db_datadict.res_t_401016 TO 'u_6_401016'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,u_6_401016,,test,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SELECT table_schema, table_name, engine -FROM TABLES; -table_schema table_name engine -information_schema CHARACTER_SETS MEMORY -information_schema COLLATIONS MEMORY -information_schema COLLATION_CHARACTER_SET_APPLICABILITY MEMORY -information_schema COLUMNS MyISAM -information_schema COLUMN_PRIVILEGES MEMORY -information_schema KEY_COLUMN_USAGE MEMORY -information_schema ROUTINES MyISAM -information_schema SCHEMATA MEMORY -information_schema SCHEMA_PRIVILEGES MEMORY -information_schema STATISTICS MEMORY -information_schema TABLES MEMORY -information_schema TABLE_CONSTRAINTS MEMORY -information_schema TABLE_PRIVILEGES MEMORY -information_schema TRIGGERS MyISAM -information_schema USER_PRIVILEGES MEMORY -information_schema VIEWS MyISAM -db_datadict res_t_401016 MyISAM -test t1 MyISAM -test t10 MyISAM -test t11 MyISAM -test t2 MyISAM -test t3 MyISAM -test t4 MyISAM -test t7 MyISAM -test t8 MyISAM -test t9 MyISAM -test tb1 MyISAM -test tb2 MyISAM -test tb3 MyISAM -test tb4 MyISAM -SHOW TABLES; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL - -root@localhost db_datadict -grant usage on information_schema.* to 'u_6_401016'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,u_6_401016,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SHOW TABLES; -Tables_in_information_schema -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -use db_datadict; - -root@localhost db_datadict -DROP USER 'u_6_401016'@'localhost'; -drop table res_t_401016; -drop table res_t_401016_1; -DROP DATABASE db_hidden; - -Testcase 3.2.1.17: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401017'@'localhost'; -grant select on information_schema.* to u_6_401017@localhost; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -FLUSH PRIVILEGES; -connect(localhost,u_6_401017,,test,MYSQL_PORT,MYSQL_SOCK); -use information_schema; -select * from collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -cp850_bin cp850 -hp8_english_ci hp8 -hp8_bin hp8 -koi8r_general_ci koi8r -koi8r_bin koi8r -latin1_german1_ci latin1 -latin1_swedish_ci latin1 -latin1_danish_ci latin1 -latin1_german2_ci latin1 -latin1_bin latin1 -latin1_general_ci latin1 -latin1_general_cs latin1 -latin1_spanish_ci latin1 -latin2_czech_cs latin2 -latin2_general_ci latin2 -latin2_hungarian_ci latin2 -latin2_croatian_ci latin2 -latin2_bin latin2 -swe7_swedish_ci swe7 -swe7_bin swe7 -ascii_general_ci ascii -ascii_bin ascii -ujis_japanese_ci ujis -ujis_bin ujis -sjis_japanese_ci sjis -sjis_bin sjis -hebrew_general_ci hebrew -hebrew_bin hebrew -tis620_thai_ci tis620 -tis620_bin tis620 -euckr_korean_ci euckr -euckr_bin euckr -koi8u_general_ci koi8u -koi8u_bin koi8u -gb2312_chinese_ci gb2312 -gb2312_bin gb2312 -greek_general_ci greek -greek_bin greek -cp1250_general_ci cp1250 -cp1250_czech_cs cp1250 -cp1250_croatian_ci cp1250 -cp1250_bin cp1250 -gbk_chinese_ci gbk -gbk_bin gbk -latin5_turkish_ci latin5 -latin5_bin latin5 -armscii8_general_ci armscii8 -armscii8_bin armscii8 -utf8_general_ci utf8 -utf8_bin utf8 -utf8_unicode_ci utf8 -utf8_icelandic_ci utf8 -utf8_latvian_ci utf8 -utf8_romanian_ci utf8 -utf8_slovenian_ci utf8 -utf8_polish_ci utf8 -utf8_estonian_ci utf8 -utf8_spanish_ci utf8 -utf8_swedish_ci utf8 -utf8_turkish_ci utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_lithuanian_ci utf8 -utf8_slovak_ci utf8 -utf8_spanish2_ci utf8 -utf8_roman_ci utf8 -utf8_persian_ci utf8 -utf8_esperanto_ci utf8 -utf8_hungarian_ci utf8 -ucs2_general_ci ucs2 -ucs2_bin ucs2 -ucs2_unicode_ci ucs2 -ucs2_icelandic_ci ucs2 -ucs2_latvian_ci ucs2 -ucs2_romanian_ci ucs2 -ucs2_slovenian_ci ucs2 -ucs2_polish_ci ucs2 -ucs2_estonian_ci ucs2 -ucs2_spanish_ci ucs2 -ucs2_swedish_ci ucs2 -ucs2_turkish_ci ucs2 -ucs2_czech_ci ucs2 -ucs2_danish_ci ucs2 -ucs2_lithuanian_ci ucs2 -ucs2_slovak_ci ucs2 -ucs2_spanish2_ci ucs2 -ucs2_roman_ci ucs2 -ucs2_persian_ci ucs2 -ucs2_esperanto_ci ucs2 -ucs2_hungarian_ci ucs2 -cp866_general_ci cp866 -cp866_bin cp866 -keybcs2_general_ci keybcs2 -keybcs2_bin keybcs2 -macce_general_ci macce -macce_bin macce -macroman_general_ci macroman -macroman_bin macroman -cp852_general_ci cp852 -cp852_bin cp852 -latin7_estonian_cs latin7 -latin7_general_ci latin7 -latin7_general_cs latin7 -latin7_bin latin7 -cp1251_bulgarian_ci cp1251 -cp1251_ukrainian_ci cp1251 -cp1251_bin cp1251 -cp1251_general_ci cp1251 -cp1251_general_cs cp1251 -cp1256_general_ci cp1256 -cp1256_bin cp1256 -cp1257_lithuanian_ci cp1257 -cp1257_bin cp1257 -cp1257_general_ci cp1257 -binary binary -geostd8_general_ci geostd8 -geostd8_bin geostd8 -cp932_japanese_ci cp932 -cp932_bin cp932 -eucjpms_japanese_ci eucjpms -eucjpms_bin eucjpms -select * from schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL -select table_name from tables; -table_name -CHARACTER_SETS -COLLATIONS -COLLATION_CHARACTER_SET_APPLICABILITY -COLUMNS -COLUMN_PRIVILEGES -KEY_COLUMN_USAGE -ROUTINES -SCHEMATA -SCHEMA_PRIVILEGES -STATISTICS -TABLES -TABLE_CONSTRAINTS -TABLE_PRIVILEGES -TRIGGERS -USER_PRIVILEGES -VIEWS -t1 -t10 -t11 -t2 -t3 -t4 -t7 -t8 -t9 -tb1 -tb2 -tb3 -tb4 -select table_name, column_name, column_type from columns; -table_name column_name column_type -CHARACTER_SETS CHARACTER_SET_NAME varchar(64) -CHARACTER_SETS DEFAULT_COLLATE_NAME varchar(64) -CHARACTER_SETS DESCRIPTION varchar(60) -CHARACTER_SETS MAXLEN bigint(3) -COLLATIONS COLLATION_NAME varchar(64) -COLLATIONS CHARACTER_SET_NAME varchar(64) -COLLATIONS ID bigint(11) -COLLATIONS IS_DEFAULT varchar(3) -COLLATIONS IS_COMPILED varchar(3) -COLLATIONS SORTLEN bigint(3) -COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar(64) -COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar(64) -COLUMNS TABLE_CATALOG varchar(4096) -COLUMNS TABLE_SCHEMA varchar(64) -COLUMNS TABLE_NAME varchar(64) -COLUMNS COLUMN_NAME varchar(64) -COLUMNS ORDINAL_POSITION bigint(21) -COLUMNS COLUMN_DEFAULT longtext -COLUMNS IS_NULLABLE varchar(3) -COLUMNS DATA_TYPE varchar(64) -COLUMNS CHARACTER_MAXIMUM_LENGTH bigint(21) -COLUMNS CHARACTER_OCTET_LENGTH bigint(21) -COLUMNS NUMERIC_PRECISION bigint(21) -COLUMNS NUMERIC_SCALE bigint(21) -COLUMNS CHARACTER_SET_NAME varchar(64) -COLUMNS COLLATION_NAME varchar(64) -COLUMNS COLUMN_TYPE longtext -COLUMNS COLUMN_KEY varchar(3) -COLUMNS EXTRA varchar(20) -COLUMNS PRIVILEGES varchar(80) -COLUMNS COLUMN_COMMENT varchar(255) -COLUMN_PRIVILEGES GRANTEE varchar(81) -COLUMN_PRIVILEGES TABLE_CATALOG varchar(4096) -COLUMN_PRIVILEGES TABLE_SCHEMA varchar(64) -COLUMN_PRIVILEGES TABLE_NAME varchar(64) -COLUMN_PRIVILEGES COLUMN_NAME varchar(64) -COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar(64) -COLUMN_PRIVILEGES IS_GRANTABLE varchar(3) -KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar(4096) -KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar(64) -KEY_COLUMN_USAGE CONSTRAINT_NAME varchar(64) -KEY_COLUMN_USAGE TABLE_CATALOG varchar(4096) -KEY_COLUMN_USAGE TABLE_SCHEMA varchar(64) -KEY_COLUMN_USAGE TABLE_NAME varchar(64) -KEY_COLUMN_USAGE COLUMN_NAME varchar(64) -KEY_COLUMN_USAGE ORDINAL_POSITION bigint(10) -KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint(10) -KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar(64) -KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar(64) -KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar(64) -ROUTINES SPECIFIC_NAME varchar(64) -ROUTINES ROUTINE_CATALOG varchar(4096) -ROUTINES ROUTINE_SCHEMA varchar(64) -ROUTINES ROUTINE_NAME varchar(64) -ROUTINES ROUTINE_TYPE varchar(9) -ROUTINES DTD_IDENTIFIER varchar(64) -ROUTINES ROUTINE_BODY varchar(8) -ROUTINES ROUTINE_DEFINITION longtext -ROUTINES EXTERNAL_NAME varchar(64) -ROUTINES EXTERNAL_LANGUAGE varchar(64) -ROUTINES PARAMETER_STYLE varchar(8) -ROUTINES IS_DETERMINISTIC varchar(3) -ROUTINES SQL_DATA_ACCESS varchar(64) -ROUTINES SQL_PATH varchar(64) -ROUTINES SECURITY_TYPE varchar(7) -ROUTINES CREATED datetime -ROUTINES LAST_ALTERED datetime -ROUTINES SQL_MODE longtext -ROUTINES ROUTINE_COMMENT varchar(64) -ROUTINES DEFINER varchar(77) -SCHEMATA CATALOG_NAME varchar(4096) -SCHEMATA SCHEMA_NAME varchar(64) -SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar(64) -SCHEMATA DEFAULT_COLLATION_NAME varchar(64) -SCHEMATA SQL_PATH varchar(4096) -SCHEMA_PRIVILEGES GRANTEE varchar(81) -SCHEMA_PRIVILEGES TABLE_CATALOG varchar(4096) -SCHEMA_PRIVILEGES TABLE_SCHEMA varchar(64) -SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar(64) -SCHEMA_PRIVILEGES IS_GRANTABLE varchar(3) -STATISTICS TABLE_CATALOG varchar(4096) -STATISTICS TABLE_SCHEMA varchar(64) -STATISTICS TABLE_NAME varchar(64) -STATISTICS NON_UNIQUE bigint(1) -STATISTICS INDEX_SCHEMA varchar(64) -STATISTICS INDEX_NAME varchar(64) -STATISTICS SEQ_IN_INDEX bigint(2) -STATISTICS COLUMN_NAME varchar(64) -STATISTICS COLLATION varchar(1) -STATISTICS CARDINALITY bigint(21) -STATISTICS SUB_PART bigint(3) -STATISTICS PACKED varchar(10) -STATISTICS NULLABLE varchar(3) -STATISTICS INDEX_TYPE varchar(16) -STATISTICS COMMENT varchar(16) -TABLES TABLE_CATALOG varchar(4096) -TABLES TABLE_SCHEMA varchar(64) -TABLES TABLE_NAME varchar(64) -TABLES TABLE_TYPE varchar(64) -TABLES ENGINE varchar(64) -TABLES VERSION bigint(21) -TABLES ROW_FORMAT varchar(10) -TABLES TABLE_ROWS bigint(21) -TABLES AVG_ROW_LENGTH bigint(21) -TABLES DATA_LENGTH bigint(21) -TABLES MAX_DATA_LENGTH bigint(21) -TABLES INDEX_LENGTH bigint(21) -TABLES DATA_FREE bigint(21) -TABLES AUTO_INCREMENT bigint(21) -TABLES CREATE_TIME datetime -TABLES UPDATE_TIME datetime -TABLES CHECK_TIME datetime -TABLES TABLE_COLLATION varchar(64) -TABLES CHECKSUM bigint(21) -TABLES CREATE_OPTIONS varchar(255) -TABLES TABLE_COMMENT varchar(80) -TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar(4096) -TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar(64) -TABLE_CONSTRAINTS CONSTRAINT_NAME varchar(64) -TABLE_CONSTRAINTS TABLE_SCHEMA varchar(64) -TABLE_CONSTRAINTS TABLE_NAME varchar(64) -TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar(64) -TABLE_PRIVILEGES GRANTEE varchar(81) -TABLE_PRIVILEGES TABLE_CATALOG varchar(4096) -TABLE_PRIVILEGES TABLE_SCHEMA varchar(64) -TABLE_PRIVILEGES TABLE_NAME varchar(64) -TABLE_PRIVILEGES PRIVILEGE_TYPE varchar(64) -TABLE_PRIVILEGES IS_GRANTABLE varchar(3) -TRIGGERS TRIGGER_CATALOG varchar(4096) -TRIGGERS TRIGGER_SCHEMA varchar(64) -TRIGGERS TRIGGER_NAME varchar(64) -TRIGGERS EVENT_MANIPULATION varchar(6) -TRIGGERS EVENT_OBJECT_CATALOG varchar(4096) -TRIGGERS EVENT_OBJECT_SCHEMA varchar(64) -TRIGGERS EVENT_OBJECT_TABLE varchar(64) -TRIGGERS ACTION_ORDER bigint(4) -TRIGGERS ACTION_CONDITION longtext -TRIGGERS ACTION_STATEMENT longtext -TRIGGERS ACTION_ORIENTATION varchar(9) -TRIGGERS ACTION_TIMING varchar(6) -TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar(64) -TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar(64) -TRIGGERS ACTION_REFERENCE_OLD_ROW varchar(3) -TRIGGERS ACTION_REFERENCE_NEW_ROW varchar(3) -TRIGGERS CREATED datetime -TRIGGERS SQL_MODE longtext -TRIGGERS DEFINER longtext -USER_PRIVILEGES GRANTEE varchar(81) -USER_PRIVILEGES TABLE_CATALOG varchar(4096) -USER_PRIVILEGES PRIVILEGE_TYPE varchar(64) -USER_PRIVILEGES IS_GRANTABLE varchar(3) -VIEWS TABLE_CATALOG varchar(4096) -VIEWS TABLE_SCHEMA varchar(64) -VIEWS TABLE_NAME varchar(64) -VIEWS VIEW_DEFINITION longtext -VIEWS CHECK_OPTION varchar(8) -VIEWS IS_UPDATABLE varchar(3) -VIEWS DEFINER varchar(77) -VIEWS SECURITY_TYPE varchar(7) -t1 f1 char(20) -t1 f2 char(25) -t1 f3 date -t1 f4 int(11) -t1 f5 char(25) -t1 f6 int(11) -t10 f1 char(20) -t10 f2 char(25) -t10 f3 date -t10 f4 int(11) -t10 f5 char(25) -t10 f6 int(11) -t11 f1 char(20) -t11 f2 char(25) -t11 f3 date -t11 f4 int(11) -t11 f5 char(25) -t11 f6 int(11) -t2 f1 char(20) -t2 f2 char(25) -t2 f3 date -t2 f4 int(11) -t2 f5 char(25) -t2 f6 int(11) -t3 f1 char(20) -t3 f2 char(20) -t3 f3 int(11) -t4 f1 char(20) -t4 f2 char(25) -t4 f3 date -t4 f4 int(11) -t4 f5 char(25) -t4 f6 int(11) -t7 f1 char(20) -t7 f2 char(25) -t7 f3 date -t7 f4 int(11) -t8 f1 char(20) -t8 f2 char(25) -t8 f3 date -t8 f4 int(11) -t9 f1 int(11) -t9 f2 char(25) -t9 f3 int(11) -tb1 f1 char(1) -tb1 f2 char(1) -tb1 f3 char(1) -tb1 f4 tinytext -tb1 f5 text -tb1 f6 mediumtext -tb1 f7 longtext -tb1 f8 tinyblob -tb1 f9 blob -tb1 f10 mediumblob -tb1 f11 longblob -tb1 f12 binary(1) -tb1 f13 tinyint(4) -tb1 f14 tinyint(3) unsigned -tb1 f15 tinyint(3) unsigned zerofill -tb1 f16 tinyint(3) unsigned zerofill -tb1 f17 smallint(6) -tb1 f18 smallint(5) unsigned -tb1 f19 smallint(5) unsigned zerofill -tb1 f20 smallint(5) unsigned zerofill -tb1 f21 mediumint(9) -tb1 f22 mediumint(8) unsigned -tb1 f23 mediumint(8) unsigned zerofill -tb1 f24 mediumint(8) unsigned zerofill -tb1 f25 int(11) -tb1 f26 int(10) unsigned -tb1 f27 int(10) unsigned zerofill -tb1 f28 int(10) unsigned zerofill -tb1 f29 bigint(20) -tb1 f30 bigint(20) unsigned -tb1 f31 bigint(20) unsigned zerofill -tb1 f32 bigint(20) unsigned zerofill -tb1 f33 decimal(10,0) -tb1 f34 decimal(10,0) unsigned -tb1 f35 decimal(10,0) unsigned zerofill -tb1 f36 decimal(10,0) unsigned zerofill -tb1 f37 decimal(10,0) -tb1 f38 decimal(64,0) -tb1 f39 decimal(10,0) unsigned -tb1 f40 decimal(64,0) unsigned -tb1 f41 decimal(10,0) unsigned zerofill -tb1 f42 decimal(64,0) unsigned zerofill -tb1 f43 decimal(10,0) unsigned zerofill -tb1 f44 decimal(64,0) unsigned zerofill -tb1 f45 decimal(10,0) -tb1 f46 decimal(63,30) -tb1 f47 decimal(10,0) unsigned -tb1 f48 decimal(63,30) unsigned -tb1 f49 decimal(10,0) unsigned zerofill -tb1 f50 decimal(63,30) unsigned zerofill -tb1 f51 decimal(10,0) unsigned zerofill -tb1 f52 decimal(63,30) unsigned zerofill -tb1 f53 decimal(10,0) -tb1 f54 decimal(10,0) unsigned -tb1 f55 decimal(10,0) unsigned zerofill -tb1 f56 decimal(10,0) unsigned zerofill -tb1 f57 decimal(10,0) -tb1 f58 decimal(64,0) -tb2 f59 decimal(10,0) unsigned -tb2 f60 decimal(64,0) unsigned -tb2 f61 decimal(10,0) unsigned zerofill -tb2 f62 decimal(64,0) unsigned zerofill -tb2 f63 decimal(10,0) unsigned zerofill -tb2 f64 decimal(64,0) unsigned zerofill -tb2 f65 decimal(10,0) -tb2 f66 decimal(63,30) -tb2 f67 decimal(10,0) unsigned -tb2 f68 decimal(63,30) unsigned -tb2 f69 decimal(10,0) unsigned zerofill -tb2 f70 decimal(63,30) unsigned zerofill -tb2 f71 decimal(10,0) unsigned zerofill -tb2 f72 decimal(63,30) unsigned zerofill -tb2 f73 double -tb2 f74 double unsigned -tb2 f75 double unsigned zerofill -tb2 f76 double unsigned zerofill -tb2 f77 double -tb2 f78 double unsigned -tb2 f79 double unsigned zerofill -tb2 f80 double unsigned zerofill -tb2 f81 float -tb2 f82 float unsigned -tb2 f83 float unsigned zerofill -tb2 f84 float unsigned zerofill -tb2 f85 float -tb2 f86 float -tb2 f87 float unsigned -tb2 f88 float unsigned -tb2 f89 float unsigned zerofill -tb2 f90 float unsigned zerofill -tb2 f91 float unsigned zerofill -tb2 f92 float unsigned zerofill -tb2 f93 float -tb2 f94 double -tb2 f95 float unsigned -tb2 f96 double unsigned -tb2 f97 float unsigned zerofill -tb2 f98 double unsigned zerofill -tb2 f99 float unsigned zerofill -tb2 f100 double unsigned zerofill -tb2 f101 date -tb2 f102 time -tb2 f103 datetime -tb2 f104 timestamp -tb2 f105 year(4) -tb2 f106 year(4) -tb2 f107 year(4) -tb2 f108 enum('1enum','2enum') -tb2 f109 set('1set','2set') -tb2 f110 varbinary(64) -tb2 f111 varbinary(27) -tb2 f112 varbinary(64) -tb2 f113 varbinary(192) -tb2 f114 varbinary(192) -tb2 f115 varbinary(27) -tb2 f116 varbinary(64) -tb2 f117 varbinary(192) -tb3 f118 char(1) -tb3 f119 char(1) -tb3 f120 char(1) -tb3 f121 tinytext -tb3 f122 text -tb3 f123 mediumtext -tb3 f124 longtext -tb3 f125 tinyblob -tb3 f126 blob -tb3 f127 mediumblob -tb3 f128 longblob -tb3 f129 binary(1) -tb3 f130 tinyint(4) -tb3 f131 tinyint(3) unsigned -tb3 f132 tinyint(3) unsigned zerofill -tb3 f133 tinyint(3) unsigned zerofill -tb3 f134 smallint(6) -tb3 f135 smallint(5) unsigned -tb3 f136 smallint(5) unsigned zerofill -tb3 f137 smallint(5) unsigned zerofill -tb3 f138 mediumint(9) -tb3 f139 mediumint(8) unsigned -tb3 f140 mediumint(8) unsigned zerofill -tb3 f141 mediumint(8) unsigned zerofill -tb3 f142 int(11) -tb3 f143 int(10) unsigned -tb3 f144 int(10) unsigned zerofill -tb3 f145 int(10) unsigned zerofill -tb3 f146 bigint(20) -tb3 f147 bigint(20) unsigned -tb3 f148 bigint(20) unsigned zerofill -tb3 f149 bigint(20) unsigned zerofill -tb3 f150 decimal(10,0) -tb3 f151 decimal(10,0) unsigned -tb3 f152 decimal(10,0) unsigned zerofill -tb3 f153 decimal(10,0) unsigned zerofill -tb3 f154 decimal(10,0) -tb3 f155 decimal(64,0) -tb3 f156 decimal(10,0) unsigned -tb3 f157 decimal(64,0) unsigned -tb3 f158 decimal(10,0) unsigned zerofill -tb3 f159 decimal(64,0) unsigned zerofill -tb3 f160 decimal(10,0) unsigned zerofill -tb3 f161 decimal(64,0) unsigned zerofill -tb3 f162 decimal(10,0) -tb3 f163 decimal(63,30) -tb3 f164 decimal(10,0) unsigned -tb3 f165 decimal(63,30) unsigned -tb3 f166 decimal(10,0) unsigned zerofill -tb3 f167 decimal(63,30) unsigned zerofill -tb3 f168 decimal(10,0) unsigned zerofill -tb3 f169 decimal(63,30) unsigned zerofill -tb3 f170 decimal(10,0) -tb3 f171 decimal(10,0) unsigned -tb3 f172 decimal(10,0) unsigned zerofill -tb3 f173 decimal(10,0) unsigned zerofill -tb3 f174 decimal(10,0) -tb3 f175 decimal(64,0) -tb4 f176 decimal(10,0) unsigned -tb4 f177 decimal(64,0) unsigned -tb4 f178 decimal(10,0) unsigned zerofill -tb4 f179 decimal(64,0) unsigned zerofill -tb4 f180 decimal(10,0) unsigned zerofill -tb4 f181 decimal(64,0) unsigned zerofill -tb4 f182 decimal(10,0) -tb4 f183 decimal(63,30) -tb4 f184 decimal(10,0) unsigned -tb4 f185 decimal(63,30) unsigned -tb4 f186 decimal(10,0) unsigned zerofill -tb4 f187 decimal(63,30) unsigned zerofill -tb4 f188 decimal(10,0) unsigned zerofill -tb4 f189 decimal(63,30) unsigned zerofill -tb4 f190 double -tb4 f191 double unsigned -tb4 f192 double unsigned zerofill -tb4 f193 double unsigned zerofill -tb4 f194 double -tb4 f195 double unsigned -tb4 f196 double unsigned zerofill -tb4 f197 double unsigned zerofill -tb4 f198 float -tb4 f199 float unsigned -tb4 f200 float unsigned zerofill -tb4 f201 float unsigned zerofill -tb4 f202 float -tb4 f203 float -tb4 f204 float unsigned -tb4 f205 float unsigned -tb4 f206 float unsigned zerofill -tb4 f207 float unsigned zerofill -tb4 f208 float unsigned zerofill -tb4 f209 float unsigned zerofill -tb4 f210 float -tb4 f211 double -tb4 f212 float unsigned -tb4 f213 double unsigned -tb4 f214 float unsigned zerofill -tb4 f215 double unsigned zerofill -tb4 f216 float unsigned zerofill -tb4 f217 double unsigned zerofill -tb4 f218 date -tb4 f219 time -tb4 f220 datetime -tb4 f221 timestamp -tb4 f222 year(4) -tb4 f223 year(4) -tb4 f224 year(4) -tb4 f225 enum('1enum','2enum') -tb4 f226 set('1set','2set') -tb4 f227 varbinary(64) -tb4 f228 varbinary(27) -tb4 f229 varbinary(64) -tb4 f230 varbinary(192) -tb4 f231 varbinary(192) -tb4 f232 varbinary(27) -tb4 f233 varbinary(64) -tb4 f234 varbinary(192) -tb4 f235 char(255) -tb4 f236 char(60) -tb4 f237 char(255) -tb4 f238 varchar(0) -tb4 f239 varbinary(1000) -tb4 f240 varchar(120) -tb4 f241 char(100) -tb4 f242 bit(30) -select character_set_name from character_sets; -character_set_name -big5 -dec8 -cp850 -hp8 -koi8r -latin1 -latin2 -swe7 -ascii -ujis -sjis -hebrew -tis620 -euckr -koi8u -gb2312 -greek -cp1250 -gbk -latin5 -armscii8 -utf8 -ucs2 -cp866 -keybcs2 -macce -macroman -cp852 -latin7 -cp1251 -cp1256 -cp1257 -binary -geostd8 -cp932 -eucjpms -select collation_name from collations where collation_name <> 'utf8_general_cs'; -collation_name -big5_chinese_ci -big5_bin -dec8_swedish_ci -dec8_bin -cp850_general_ci -cp850_bin -hp8_english_ci -hp8_bin -koi8r_general_ci -koi8r_bin -latin1_german1_ci -latin1_swedish_ci -latin1_danish_ci -latin1_german2_ci -latin1_bin -latin1_general_ci -latin1_general_cs -latin1_spanish_ci -latin2_czech_cs -latin2_general_ci -latin2_hungarian_ci -latin2_croatian_ci -latin2_bin -swe7_swedish_ci -swe7_bin -ascii_general_ci -ascii_bin -ujis_japanese_ci -ujis_bin -sjis_japanese_ci -sjis_bin -hebrew_general_ci -hebrew_bin -tis620_thai_ci -tis620_bin -euckr_korean_ci -euckr_bin -koi8u_general_ci -koi8u_bin -gb2312_chinese_ci -gb2312_bin -greek_general_ci -greek_bin -cp1250_general_ci -cp1250_czech_cs -cp1250_croatian_ci -cp1250_bin -gbk_chinese_ci -gbk_bin -latin5_turkish_ci -latin5_bin -armscii8_general_ci -armscii8_bin -utf8_general_ci -utf8_bin -utf8_unicode_ci -utf8_icelandic_ci -utf8_latvian_ci -utf8_romanian_ci -utf8_slovenian_ci -utf8_polish_ci -utf8_estonian_ci -utf8_spanish_ci -utf8_swedish_ci -utf8_turkish_ci -utf8_czech_ci -utf8_danish_ci -utf8_lithuanian_ci -utf8_slovak_ci -utf8_spanish2_ci -utf8_roman_ci -utf8_persian_ci -utf8_esperanto_ci -utf8_hungarian_ci -ucs2_general_ci -ucs2_bin -ucs2_unicode_ci -ucs2_icelandic_ci -ucs2_latvian_ci -ucs2_romanian_ci -ucs2_slovenian_ci -ucs2_polish_ci -ucs2_estonian_ci -ucs2_spanish_ci -ucs2_swedish_ci -ucs2_turkish_ci -ucs2_czech_ci -ucs2_danish_ci -ucs2_lithuanian_ci -ucs2_slovak_ci -ucs2_spanish2_ci -ucs2_roman_ci -ucs2_persian_ci -ucs2_esperanto_ci -ucs2_hungarian_ci -cp866_general_ci -cp866_bin -keybcs2_general_ci -keybcs2_bin -macce_general_ci -macce_bin -macroman_general_ci -macroman_bin -cp852_general_ci -cp852_bin -latin7_estonian_cs -latin7_general_ci -latin7_general_cs -latin7_bin -cp1251_bulgarian_ci -cp1251_ukrainian_ci -cp1251_bin -cp1251_general_ci -cp1251_general_cs -cp1256_general_ci -cp1256_bin -cp1257_lithuanian_ci -cp1257_bin -cp1257_general_ci -binary -geostd8_general_ci -geostd8_bin -cp932_japanese_ci -cp932_bin -eucjpms_japanese_ci -eucjpms_bin -select routine_name, routine_type from routines; -routine_name routine_type -select table_name, index_name from statistics; -table_name index_name -select table_name from views; -table_name -select privilege_type from user_privileges; -privilege_type -USAGE -select grantee, privilege_type from schema_privileges; -grantee privilege_type -select * from table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -select column_name, privilege_type from column_privileges; -column_name privilege_type -select table_name,constraint_type from table_constraints; -table_name constraint_type -select table_schema, table_name, column_name from key_column_usage; -table_schema table_name column_name - -root@localhost db_datadict -DROP USER 'u_6_401017'@'localhost'; - -Testcase 3.2.1.18: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401018'@'localhost'; -GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -GRANT ALL ON db_datadict.* TO 'u_6_401018'@'localhost'; -SHOW GRANTS FOR 'u_6_401018'@'localhost'; -Grants for u_6_401018@localhost -GRANT USAGE ON *.* TO 'u_6_401018'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'u_6_401018'@'localhost' -FLUSH PRIVILEGES; -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -connect(localhost,u_6_401018,,test,MYSQL_PORT,MYSQL_SOCK); -USE db_datadict; -create view db_datadict.v_401018 as -select * from information_schema.schemata; -SELECT * FROM v_401018 ORDER BY 2 DESC; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL test latin1 latin1_swedish_ci NULL -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict latin1 latin1_swedish_ci NULL - -root@localhost NULL -DROP USER 'u_6_401018'@'localhost'; -DROP DATABASE db_datadict; - -Testcase 3.2.1.19: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401019'@'localhost'; -grant alter on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant alter routine on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create routine on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant create temporary tables -on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant delete on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant drop on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant execute on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant index on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant insert on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant lock tables on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -grant update on information_schema.* to 'u_6_401019'@'localhost'; -ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema' -SELECT * FROM information_schema.table_privileges -WHERE table_schema = "information_schema"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -SELECT * FROM information_schema.column_privileges -WHERE table_schema = "information_schema"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -DROP USER 'u_6_401019'@'localhost'; - -Testcase 3.2.1.20: --------------------------------------------------------------------------------- -CREATE USER 'u_6_401020'@'localhost'; -connect(localhost,u_6_401020,,test,MYSQL_PORT,MYSQL_SOCK); -USE information_schema; -SELECT * FROM schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL -CREATE TABLE tb_not_allowed ( col TEXT ); -ERROR 42S02: Unknown table 'tb_not_allowed' in information_schema -create view res_v1 as select * from information_schema.schemata; -ERROR 42S02: Unknown table 'res_v1' in information_schema -alter table schemata modify catalog_name varchar(255); -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' -update schemata set catalog_name = 'abc' - where schema_name = 'information_schema'; -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' -CREATE PROCEDURE sp_3_2_1_20() -BEGIN -INSERT INTO information_schema.schema_privileges (table_schema,privilege_type) -VALUES('db2','insert'); -END// -ERROR 42000: Unknown database 'information_schema' -DELETE FROM schemata WHERE schema_name = 'information_schema'; -ERROR 42000: Access denied for user 'u_6_401020'@'localhost' to database 'information_schema' - -root@localhost NULL -DROP USER 'u_6_401020'@'localhost'; - -Testcase 3.2.2.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC character_sets; -Field Type Null Key Default Extra -CHARACTER_SET_NAME varchar(64) NO -DEFAULT_COLLATE_NAME varchar(64) NO -DESCRIPTION varchar(60) NO -MAXLEN bigint(3) NO 0 -SHOW CREATE TABLE character_sets; -Table Create Table -CHARACTER_SETS CREATE TEMPORARY TABLE `CHARACTER_SETS` ( - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `DEFAULT_COLLATE_NAME` varchar(64) NOT NULL default '', - `DESCRIPTION` varchar(60) NOT NULL default '', - `MAXLEN` bigint(3) NOT NULL default '0' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'character_sets' -ORDER BY ordinal_position; -COUNT(*) -4 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'character_sets' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select - -Testcase 3.2.2.2: --------------------------------------------------------------------------------- - -root@localhost information_schema -SELECT * FROM information_schema.character_sets; -CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN -big5 big5_chinese_ci Big5 Traditional Chinese 2 -dec8 dec8_swedish_ci DEC West European 1 -cp850 cp850_general_ci DOS West European 1 -hp8 hp8_english_ci HP West European 1 -koi8r koi8r_general_ci KOI8-R Relcom Russian 1 -latin1 latin1_swedish_ci cp1252 West European 1 -latin2 latin2_general_ci ISO 8859-2 Central European 1 -swe7 swe7_swedish_ci 7bit Swedish 1 -ascii ascii_general_ci US ASCII 1 -ujis ujis_japanese_ci EUC-JP Japanese 3 -sjis sjis_japanese_ci Shift-JIS Japanese 2 -hebrew hebrew_general_ci ISO 8859-8 Hebrew 1 -tis620 tis620_thai_ci TIS620 Thai 1 -euckr euckr_korean_ci EUC-KR Korean 2 -koi8u koi8u_general_ci KOI8-U Ukrainian 1 -gb2312 gb2312_chinese_ci GB2312 Simplified Chinese 2 -greek greek_general_ci ISO 8859-7 Greek 1 -cp1250 cp1250_general_ci Windows Central European 1 -gbk gbk_chinese_ci GBK Simplified Chinese 2 -latin5 latin5_turkish_ci ISO 8859-9 Turkish 1 -armscii8 armscii8_general_ci ARMSCII-8 Armenian 1 -utf8 utf8_general_ci UTF-8 Unicode 3 -ucs2 ucs2_general_ci UCS-2 Unicode 2 -cp866 cp866_general_ci DOS Russian 1 -keybcs2 keybcs2_general_ci DOS Kamenicky Czech-Slovak 1 -macce macce_general_ci Mac Central European 1 -macroman macroman_general_ci Mac West European 1 -cp852 cp852_general_ci DOS Central European 1 -latin7 latin7_general_ci ISO 8859-13 Baltic 1 -cp1251 cp1251_general_ci Windows Cyrillic 1 -cp1256 cp1256_general_ci Windows Arabic 1 -cp1257 cp1257_general_ci Windows Baltic 1 -binary binary Binary pseudo charset 1 -geostd8 geostd8_general_ci GEOSTD8 Georgian 1 -cp932 cp932_japanese_ci SJIS for Windows Japanese 2 -eucjpms eucjpms_japanese_ci UJIS for Windows Japanese 3 - -Testcase 3.2.2.3: --------------------------------------------------------------------------------- - -Testcase 3.2.3.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC collations; -Field Type Null Key Default Extra -COLLATION_NAME varchar(64) NO -CHARACTER_SET_NAME varchar(64) NO -ID bigint(11) NO 0 -IS_DEFAULT varchar(3) NO -IS_COMPILED varchar(3) NO -SORTLEN bigint(3) NO 0 -SHOW CREATE TABLE collations; -Table Create Table -COLLATIONS CREATE TEMPORARY TABLE `COLLATIONS` ( - `COLLATION_NAME` varchar(64) NOT NULL default '', - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `ID` bigint(11) NOT NULL default '0', - `IS_DEFAULT` varchar(3) NOT NULL default '', - `IS_COMPILED` varchar(3) NOT NULL default '', - `SORTLEN` bigint(3) NOT NULL default '0' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collations' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collations' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select - -Testcase 3.2.3.2: --------------------------------------------------------------------------------- -SELECT * FROM collations where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN -big5_chinese_ci big5 1 Yes Yes 1 -big5_bin big5 84 Yes 1 -dec8_swedish_ci dec8 3 Yes 0 -dec8_bin dec8 69 0 -cp850_general_ci cp850 4 Yes 0 -cp850_bin cp850 80 0 -hp8_english_ci hp8 6 Yes 0 -hp8_bin hp8 72 0 -koi8r_general_ci koi8r 7 Yes 0 -koi8r_bin koi8r 74 0 -latin1_german1_ci latin1 5 Yes 1 -latin1_swedish_ci latin1 8 Yes Yes 1 -latin1_danish_ci latin1 15 Yes 1 -latin1_german2_ci latin1 31 Yes 2 -latin1_bin latin1 47 Yes 1 -latin1_general_ci latin1 48 Yes 1 -latin1_general_cs latin1 49 Yes 1 -latin1_spanish_ci latin1 94 Yes 1 -latin2_czech_cs latin2 2 Yes 4 -latin2_general_ci latin2 9 Yes Yes 1 -latin2_hungarian_ci latin2 21 Yes 1 -latin2_croatian_ci latin2 27 Yes 1 -latin2_bin latin2 77 Yes 1 -swe7_swedish_ci swe7 10 Yes 0 -swe7_bin swe7 82 0 -ascii_general_ci ascii 11 Yes 0 -ascii_bin ascii 65 0 -ujis_japanese_ci ujis 12 Yes Yes 1 -ujis_bin ujis 91 Yes 1 -sjis_japanese_ci sjis 13 Yes Yes 1 -sjis_bin sjis 88 Yes 1 -hebrew_general_ci hebrew 16 Yes 0 -hebrew_bin hebrew 71 0 -tis620_thai_ci tis620 18 Yes Yes 4 -tis620_bin tis620 89 Yes 1 -euckr_korean_ci euckr 19 Yes Yes 1 -euckr_bin euckr 85 Yes 1 -koi8u_general_ci koi8u 22 Yes 0 -koi8u_bin koi8u 75 0 -gb2312_chinese_ci gb2312 24 Yes Yes 1 -gb2312_bin gb2312 86 Yes 1 -greek_general_ci greek 25 Yes 0 -greek_bin greek 70 0 -cp1250_general_ci cp1250 26 Yes Yes 1 -cp1250_czech_cs cp1250 34 Yes 2 -cp1250_croatian_ci cp1250 44 Yes 1 -cp1250_bin cp1250 66 Yes 1 -gbk_chinese_ci gbk 28 Yes Yes 1 -gbk_bin gbk 87 Yes 1 -latin5_turkish_ci latin5 30 Yes 0 -latin5_bin latin5 78 0 -armscii8_general_ci armscii8 32 Yes 0 -armscii8_bin armscii8 64 0 -utf8_general_ci utf8 33 Yes Yes 1 -utf8_bin utf8 83 Yes 1 -utf8_unicode_ci utf8 192 Yes 8 -utf8_icelandic_ci utf8 193 Yes 8 -utf8_latvian_ci utf8 194 Yes 8 -utf8_romanian_ci utf8 195 Yes 8 -utf8_slovenian_ci utf8 196 Yes 8 -utf8_polish_ci utf8 197 Yes 8 -utf8_estonian_ci utf8 198 Yes 8 -utf8_spanish_ci utf8 199 Yes 8 -utf8_swedish_ci utf8 200 Yes 8 -utf8_turkish_ci utf8 201 Yes 8 -utf8_czech_ci utf8 202 Yes 8 -utf8_danish_ci utf8 203 Yes 8 -utf8_lithuanian_ci utf8 204 Yes 8 -utf8_slovak_ci utf8 205 Yes 8 -utf8_spanish2_ci utf8 206 Yes 8 -utf8_roman_ci utf8 207 Yes 8 -utf8_persian_ci utf8 208 Yes 8 -utf8_esperanto_ci utf8 209 Yes 8 -utf8_hungarian_ci utf8 210 Yes 8 -ucs2_general_ci ucs2 35 Yes Yes 1 -ucs2_bin ucs2 90 Yes 1 -ucs2_unicode_ci ucs2 128 Yes 8 -ucs2_icelandic_ci ucs2 129 Yes 8 -ucs2_latvian_ci ucs2 130 Yes 8 -ucs2_romanian_ci ucs2 131 Yes 8 -ucs2_slovenian_ci ucs2 132 Yes 8 -ucs2_polish_ci ucs2 133 Yes 8 -ucs2_estonian_ci ucs2 134 Yes 8 -ucs2_spanish_ci ucs2 135 Yes 8 -ucs2_swedish_ci ucs2 136 Yes 8 -ucs2_turkish_ci ucs2 137 Yes 8 -ucs2_czech_ci ucs2 138 Yes 8 -ucs2_danish_ci ucs2 139 Yes 8 -ucs2_lithuanian_ci ucs2 140 Yes 8 -ucs2_slovak_ci ucs2 141 Yes 8 -ucs2_spanish2_ci ucs2 142 Yes 8 -ucs2_roman_ci ucs2 143 Yes 8 -ucs2_persian_ci ucs2 144 Yes 8 -ucs2_esperanto_ci ucs2 145 Yes 8 -ucs2_hungarian_ci ucs2 146 Yes 8 -cp866_general_ci cp866 36 Yes 0 -cp866_bin cp866 68 0 -keybcs2_general_ci keybcs2 37 Yes 0 -keybcs2_bin keybcs2 73 0 -macce_general_ci macce 38 Yes 0 -macce_bin macce 43 0 -macroman_general_ci macroman 39 Yes 0 -macroman_bin macroman 53 0 -cp852_general_ci cp852 40 Yes 0 -cp852_bin cp852 81 0 -latin7_estonian_cs latin7 20 0 -latin7_general_ci latin7 41 Yes 0 -latin7_general_cs latin7 42 0 -latin7_bin latin7 79 0 -cp1251_bulgarian_ci cp1251 14 0 -cp1251_ukrainian_ci cp1251 23 0 -cp1251_bin cp1251 50 0 -cp1251_general_ci cp1251 51 Yes 0 -cp1251_general_cs cp1251 52 0 -cp1256_general_ci cp1256 57 Yes 0 -cp1256_bin cp1256 67 0 -cp1257_lithuanian_ci cp1257 29 0 -cp1257_bin cp1257 58 0 -cp1257_general_ci cp1257 59 Yes 0 -binary binary 63 Yes Yes 1 -geostd8_general_ci geostd8 92 Yes 0 -geostd8_bin geostd8 93 0 -cp932_japanese_ci cp932 95 Yes Yes 1 -cp932_bin cp932 96 Yes 1 -eucjpms_japanese_ci eucjpms 97 Yes Yes 1 -eucjpms_bin eucjpms 98 Yes 1 - -Testcase 3.2.3.3: --------------------------------------------------------------------------------- - -Testcase 3.2.4.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC collation_character_set_applicability; -Field Type Null Key Default Extra -COLLATION_NAME varchar(64) NO -CHARACTER_SET_NAME varchar(64) NO -SHOW CREATE TABLE collation_character_set_applicability; -Table Create Table -COLLATION_CHARACTER_SET_APPLICABILITY CREATE TEMPORARY TABLE `COLLATION_CHARACTER_SET_APPLICABILITY` ( - `COLLATION_NAME` varchar(64) NOT NULL default '', - `CHARACTER_SET_NAME` varchar(64) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collation_character_set_applicability' -ORDER BY ordinal_position; -COUNT(*) -2 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'collation_character_set_applicability' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.4.2: --------------------------------------------------------------------------------- -SELECT * FROM collation_character_set_applicability -where collation_name <> 'utf8_general_cs'; -COLLATION_NAME CHARACTER_SET_NAME -big5_chinese_ci big5 -big5_bin big5 -dec8_swedish_ci dec8 -dec8_bin dec8 -cp850_general_ci cp850 -cp850_bin cp850 -hp8_english_ci hp8 -hp8_bin hp8 -koi8r_general_ci koi8r -koi8r_bin koi8r -latin1_german1_ci latin1 -latin1_swedish_ci latin1 -latin1_danish_ci latin1 -latin1_german2_ci latin1 -latin1_bin latin1 -latin1_general_ci latin1 -latin1_general_cs latin1 -latin1_spanish_ci latin1 -latin2_czech_cs latin2 -latin2_general_ci latin2 -latin2_hungarian_ci latin2 -latin2_croatian_ci latin2 -latin2_bin latin2 -swe7_swedish_ci swe7 -swe7_bin swe7 -ascii_general_ci ascii -ascii_bin ascii -ujis_japanese_ci ujis -ujis_bin ujis -sjis_japanese_ci sjis -sjis_bin sjis -hebrew_general_ci hebrew -hebrew_bin hebrew -tis620_thai_ci tis620 -tis620_bin tis620 -euckr_korean_ci euckr -euckr_bin euckr -koi8u_general_ci koi8u -koi8u_bin koi8u -gb2312_chinese_ci gb2312 -gb2312_bin gb2312 -greek_general_ci greek -greek_bin greek -cp1250_general_ci cp1250 -cp1250_czech_cs cp1250 -cp1250_croatian_ci cp1250 -cp1250_bin cp1250 -gbk_chinese_ci gbk -gbk_bin gbk -latin5_turkish_ci latin5 -latin5_bin latin5 -armscii8_general_ci armscii8 -armscii8_bin armscii8 -utf8_general_ci utf8 -utf8_bin utf8 -utf8_unicode_ci utf8 -utf8_icelandic_ci utf8 -utf8_latvian_ci utf8 -utf8_romanian_ci utf8 -utf8_slovenian_ci utf8 -utf8_polish_ci utf8 -utf8_estonian_ci utf8 -utf8_spanish_ci utf8 -utf8_swedish_ci utf8 -utf8_turkish_ci utf8 -utf8_czech_ci utf8 -utf8_danish_ci utf8 -utf8_lithuanian_ci utf8 -utf8_slovak_ci utf8 -utf8_spanish2_ci utf8 -utf8_roman_ci utf8 -utf8_persian_ci utf8 -utf8_esperanto_ci utf8 -utf8_hungarian_ci utf8 -ucs2_general_ci ucs2 -ucs2_bin ucs2 -ucs2_unicode_ci ucs2 -ucs2_icelandic_ci ucs2 -ucs2_latvian_ci ucs2 -ucs2_romanian_ci ucs2 -ucs2_slovenian_ci ucs2 -ucs2_polish_ci ucs2 -ucs2_estonian_ci ucs2 -ucs2_spanish_ci ucs2 -ucs2_swedish_ci ucs2 -ucs2_turkish_ci ucs2 -ucs2_czech_ci ucs2 -ucs2_danish_ci ucs2 -ucs2_lithuanian_ci ucs2 -ucs2_slovak_ci ucs2 -ucs2_spanish2_ci ucs2 -ucs2_roman_ci ucs2 -ucs2_persian_ci ucs2 -ucs2_esperanto_ci ucs2 -ucs2_hungarian_ci ucs2 -cp866_general_ci cp866 -cp866_bin cp866 -keybcs2_general_ci keybcs2 -keybcs2_bin keybcs2 -macce_general_ci macce -macce_bin macce -macroman_general_ci macroman -macroman_bin macroman -cp852_general_ci cp852 -cp852_bin cp852 -latin7_estonian_cs latin7 -latin7_general_ci latin7 -latin7_general_cs latin7 -latin7_bin latin7 -cp1251_bulgarian_ci cp1251 -cp1251_ukrainian_ci cp1251 -cp1251_bin cp1251 -cp1251_general_ci cp1251 -cp1251_general_cs cp1251 -cp1256_general_ci cp1256 -cp1256_bin cp1256 -cp1257_lithuanian_ci cp1257 -cp1257_bin cp1257 -cp1257_general_ci cp1257 -binary binary -geostd8_general_ci geostd8 -geostd8_bin geostd8 -cp932_japanese_ci cp932 -cp932_bin cp932 -eucjpms_japanese_ci eucjpms -eucjpms_bin eucjpms - -Testcase 3.2.4.3: --------------------------------------------------------------------------------- - -Testcase 3.2.5.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC column_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE column_privileges; -Table Create Table -COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'column_privileges' -ORDER BY ordinal_position; -COUNT(*) -7 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'column_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.5.2 + 3.2.5.3 + 3.2.5.4: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE TABLE db_datadict.res_t40502 (f1 INT, f2 DECIMAL, f3 TEXT); -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT INSERT(f1) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT UPDATE(f2) ON db_datadict.res_t40502 TO 'user_1'@'localhost'; -GRANT SELECT(f2) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost'; -GRANT SELECT(f3) ON db_datadict.res_t40502 TO 'user_3'@'localhost'; -GRANT INSERT, SELECT ON db_datadict.res_t40502 TO 'user_3'@'localhost' WITH GRANT OPTION; -GRANT ALL ON db_datadict.* TO 'user_3'@'localhost'; -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT NO -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE NO -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES - -FIXME: Check it is correct that the following GRANT changes ALL privs that user_1 has -------------------------------------------------------------------------------------- -GRANT UPDATE(f3) ON db_datadict.res_t40502 TO 'user_1'@'localhost' WITH GRANT OPTION; -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict res_t40502 f1 INSERT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f1 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f2 UPDATE YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -'user_1'@'localhost' NULL db_datadict res_t40502 f3 UPDATE YES -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); - -FIXME: check it is correct that granted TABLES doesn_t occur in COLUMN_PRIVILEGES ---------------------------------------------------------------------------------- -SELECT * FROM information_schema.table_privileges WHERE grantee LIKE "'user%"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 SELECT YES -'user_3'@'localhost' NULL db_datadict res_t40502 INSERT YES -SELECT * FROM information_schema.schema_privileges WHERE grantee LIKE "'user%"; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict SELECT NO -'user_3'@'localhost' NULL db_datadict INSERT NO -'user_3'@'localhost' NULL db_datadict UPDATE NO -'user_3'@'localhost' NULL db_datadict DELETE NO -'user_3'@'localhost' NULL db_datadict CREATE NO -'user_3'@'localhost' NULL db_datadict DROP NO -'user_3'@'localhost' NULL db_datadict REFERENCES NO -'user_3'@'localhost' NULL db_datadict INDEX NO -'user_3'@'localhost' NULL db_datadict ALTER NO -'user_3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO -'user_3'@'localhost' NULL db_datadict LOCK TABLES NO -'user_3'@'localhost' NULL db_datadict EXECUTE NO -'user_3'@'localhost' NULL db_datadict CREATE VIEW NO -'user_3'@'localhost' NULL db_datadict SHOW VIEW NO -'user_3'@'localhost' NULL db_datadict CREATE ROUTINE NO -'user_3'@'localhost' NULL db_datadict ALTER ROUTINE NO -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES -GRANT SELECT(f1, f3) ON db_datadict.res_t40502 TO 'user_2'@'localhost'; - -FIXME: check whether it is intended that *my* grants to others are *NOT* shown here ------------------------------------------------------------------------------------ -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict res_t40502 f3 SELECT YES - -user_2@localhost db_datadict -SELECT * FROM information_schema.column_privileges -WHERE grantee LIKE "'user%" - ORDER BY grantee, table_name, column_name, privilege_type; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict res_t40502 f1 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f2 SELECT NO -'user_2'@'localhost' NULL db_datadict res_t40502 f3 SELECT NO - -root@localhost db_datadict -DROP TABLE IF EXISTS db_datadict.res_t40502; -DROP DATABASE IF EXISTS db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; - -Testcase 3.2.6.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC columns; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -ORDINAL_POSITION bigint(21) NO 0 -COLUMN_DEFAULT longtext YES NULL -IS_NULLABLE varchar(3) NO -DATA_TYPE varchar(64) NO -CHARACTER_MAXIMUM_LENGTH bigint(21) YES NULL -CHARACTER_OCTET_LENGTH bigint(21) YES NULL -NUMERIC_PRECISION bigint(21) YES NULL -NUMERIC_SCALE bigint(21) YES NULL -CHARACTER_SET_NAME varchar(64) YES NULL -COLLATION_NAME varchar(64) YES NULL -COLUMN_TYPE longtext NO NULL -COLUMN_KEY varchar(3) NO -EXTRA varchar(20) NO -PRIVILEGES varchar(80) NO -COLUMN_COMMENT varchar(255) NO -SHOW CREATE TABLE columns; -Table Create Table -COLUMNS CREATE TEMPORARY TABLE `COLUMNS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `ORDINAL_POSITION` bigint(21) NOT NULL default '0', - `COLUMN_DEFAULT` longtext, - `IS_NULLABLE` varchar(3) NOT NULL default '', - `DATA_TYPE` varchar(64) NOT NULL default '', - `CHARACTER_MAXIMUM_LENGTH` bigint(21) default NULL, - `CHARACTER_OCTET_LENGTH` bigint(21) default NULL, - `NUMERIC_PRECISION` bigint(21) default NULL, - `NUMERIC_SCALE` bigint(21) default NULL, - `CHARACTER_SET_NAME` varchar(64) default NULL, - `COLLATION_NAME` varchar(64) default NULL, - `COLUMN_TYPE` longtext NOT NULL, - `COLUMN_KEY` varchar(3) NOT NULL default '', - `EXTRA` varchar(20) NOT NULL default '', - `PRIVILEGES` varchar(80) NOT NULL default '', - `COLUMN_COMMENT` varchar(255) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'columns' -ORDER BY ordinal_position; -COUNT(*) -19 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'columns' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select - -Testcase 3.2.6.2 + 3.2.6.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -create table t_6_406001(f1 char(10), f2 text, f3 date, f4 int); -grant select(f1, f2) on db_datadict.t_6_406001 to 'user_1'@'localhost'; -create table t_6_406002(f1 char(10), f2 text, f3 date, f4 int); -GRANT INSERT(f1, f2) ON db_datadict.t_6_406002 TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL db_datadict t_6_406001 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL db_datadict t_6_406001 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select,insert,update,references -NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL db_datadict t_6_406002 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL db_datadict t_6_406002 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references -NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references -NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references -NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references -NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_category url 4 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references -NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references -NULL mysql help_topic url 6 NULL NO char 128 384 NULL NULL utf8 utf8_general_ci char(128) select,insert,update,references -NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references -NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references -NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references -NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references -NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql proc returns 10 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references -NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references -NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql proc sql_mode 15 NO set 431 1293 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') select,insert,update,references -NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references -NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references -NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references -NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references -NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references -NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL mysql tables_priv Table_priv 7 NO set 90 270 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') select,insert,update,references -NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references -NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references -NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references -NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references -NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references -NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references -NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references -NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references -NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references -NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references -NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references -NULL mysql user ssl_type 30 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references -NULL mysql user ssl_cipher 31 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_issuer 32 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user x509_subject 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL mysql user max_questions 34 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_updates 35 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_connections 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL mysql user max_user_connections 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references -NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references -NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references -NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references -NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references -NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references -NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references -NULL test1 tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test1 tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test1 tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test1 tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test1 tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test1 tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test1 tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test1 tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test1 tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test1 tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test1 tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test1 tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test1 tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test1 tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test1 tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test1 tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test1 tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test1 tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test1 tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test1 tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test1 tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test1 tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test1 tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test1 tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test1 tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test1 tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test1 tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test1 tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406001 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) select -NULL db_datadict t_6_406001 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references -NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references -NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references -NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references -NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references -NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references -NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.columns -ORDER BY table_schema, table_name, ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL db_datadict t_6_406002 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) insert -NULL db_datadict t_6_406002 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert -NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select -NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select -NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema COLUMNS EXTRA 17 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select -NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references -NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references -NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f1 1 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f2 2 NULL YES char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb1 f3 3 NULL YES char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb1 f4 4 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references -NULL test tb1 f5 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb1 f6 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb1 f7 7 NULL YES longtext 4294967295 4294967295 NULL NULL latin1 latin1_swedish_ci longtext select,insert,update,references -NULL test tb1 f8 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb1 f9 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb1 f10 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb1 f11 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb1 f12 12 NULL YES binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb1 f13 13 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb1 f14 14 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb1 f15 15 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f16 16 NULL YES tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb1 f17 17 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb1 f18 18 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb1 f19 19 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f20 20 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb1 f21 21 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb1 f22 22 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb1 f23 23 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f24 24 NULL YES mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb1 f25 25 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb1 f26 26 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb1 f27 27 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f28 28 NULL YES int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb1 f29 29 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb1 f30 30 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb1 f31 31 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f32 32 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb1 f33 33 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f34 34 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f35 35 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f36 36 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f37 37 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f38 38 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb1 f39 39 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f40 40 10 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb1 f41 41 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f42 42 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f43 43 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f44 44 0000000000000000000000000000000000000000000000000000000000000010 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb1 f45 45 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f46 46 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb1 f47 47 10 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f48 48 9.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb1 f49 49 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f50 50 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f51 51 0000000010 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f52 52 000000000000000000000000000000009.900000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb1 f53 53 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f54 54 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb1 f55 55 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f56 56 0000000099 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb1 f57 57 99 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb1 f58 58 99 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb2 f59 1 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f60 2 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb2 f61 3 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f62 4 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f63 5 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f64 6 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb2 f65 7 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb2 f66 8 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb2 f67 9 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb2 f68 10 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb2 f69 11 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f70 12 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f71 13 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb2 f72 14 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb2 f73 15 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f74 16 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f75 17 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f76 18 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f77 19 7.7 YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f78 20 7.7 YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f79 21 00000000000000000007.7 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f80 22 00000000000000000008.8 YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f81 23 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f82 24 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f83 25 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f84 26 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f85 27 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f86 28 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f87 29 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f88 30 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f89 31 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f90 32 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f91 33 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f92 34 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f93 35 8.8 NO float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb2 f94 36 8.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb2 f95 37 8.8 NO float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb2 f96 38 8.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb2 f97 39 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f98 40 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f99 41 0000000008.8 NO float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb2 f100 42 00000000000000000008.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb2 f101 43 2000-01-01 NO date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb2 f102 44 00:00:20 NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb2 f103 45 0002-02-02 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb2 f104 46 2000-12-31 23:59:59 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb2 f105 47 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f106 48 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f107 49 2000 NO year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb2 f108 50 1enum NO enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb2 f109 51 1set NO set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb2 f110 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f111 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f112 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f113 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f114 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb2 f115 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb2 f116 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb2 f117 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb3 f118 1 a NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f119 2  NO char 1 1 NULL NULL latin1 latin1_bin char(1) select,insert,update,references -NULL test tb3 f120 3  NO char 1 1 NULL NULL latin1 latin1_swedish_ci char(1) select,insert,update,references -NULL test tb3 f121 4 NULL YES tinytext 255 255 NULL NULL latin1 latin1_swedish_ci tinytext select,insert,update,references -NULL test tb3 f122 5 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references -NULL test tb3 f123 6 NULL YES mediumtext 16777215 16777215 NULL NULL latin1 latin1_swedish_ci mediumtext select,insert,update,references -NULL test tb3 f124 7 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references -NULL test tb3 f125 8 NULL YES tinyblob 255 255 NULL NULL NULL NULL tinyblob select,insert,update,references -NULL test tb3 f126 9 NULL YES blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references -NULL test tb3 f127 10 NULL YES mediumblob 16777215 16777215 NULL NULL NULL NULL mediumblob select,insert,update,references -NULL test tb3 f128 11 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references -NULL test tb3 f129 12  NO binary 1 1 NULL NULL NULL NULL binary(1) select,insert,update,references -NULL test tb3 f130 13 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(4) select,insert,update,references -NULL test tb3 f131 14 99 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references -NULL test tb3 f132 15 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f133 16 099 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned zerofill select,insert,update,references -NULL test tb3 f134 17 999 NO smallint NULL NULL 5 0 NULL NULL smallint(6) select,insert,update,references -NULL test tb3 f135 18 999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references -NULL test tb3 f136 19 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f137 20 00999 NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned zerofill select,insert,update,references -NULL test tb3 f138 21 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(9) select,insert,update,references -NULL test tb3 f139 22 9999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned select,insert,update,references -NULL test tb3 f140 23 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f141 24 00009999 NO mediumint NULL NULL 7 0 NULL NULL mediumint(8) unsigned zerofill select,insert,update,references -NULL test tb3 f142 25 99999 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references -NULL test tb3 f143 26 99999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references -NULL test tb3 f144 27 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f145 28 0000099999 NO int NULL NULL 10 0 NULL NULL int(10) unsigned zerofill select,insert,update,references -NULL test tb3 f146 29 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) select,insert,update,references -NULL test tb3 f147 30 999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned select,insert,update,references -NULL test tb3 f148 31 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f149 32 00000000000000999999 NO bigint NULL NULL 19 0 NULL NULL bigint(20) unsigned zerofill select,insert,update,references -NULL test tb3 f150 33 1000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f151 34 999 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f152 35 0000001000 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f153 36 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f154 37 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f155 38 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb3 f156 39 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f157 40 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb3 f158 41 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f159 42 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f160 43 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f161 44 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb3 f162 45 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f163 46 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb3 f164 47 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f165 48 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb3 f166 49 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f167 50 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f168 51 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f169 52 NULL YES decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb3 f170 53 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f171 54 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb3 f172 55 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f173 56 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb3 f174 57 NULL YES decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb3 f175 58 NULL YES decimal NULL NULL 64 0 NULL NULL decimal(64,0) select,insert,update,references -NULL test tb4 f176 1 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f177 2 9 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned select,insert,update,references -NULL test tb4 f178 3 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f179 4 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f180 5 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f181 6 0000000000000000000000000000000000000000000000000000000000000009 NO decimal NULL NULL 64 0 NULL NULL decimal(64,0) unsigned zerofill select,insert,update,references -NULL test tb4 f182 7 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) select,insert,update,references -NULL test tb4 f183 8 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) select,insert,update,references -NULL test tb4 f184 9 9 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned select,insert,update,references -NULL test tb4 f185 10 9.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned select,insert,update,references -NULL test tb4 f186 11 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f187 12 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f188 13 0000000009 NO decimal NULL NULL 10 0 NULL NULL decimal(10,0) unsigned zerofill select,insert,update,references -NULL test tb4 f189 14 000000000000000000000000000000009.000000000000000000000000000000 NO decimal NULL NULL 63 30 NULL NULL decimal(63,30) unsigned zerofill select,insert,update,references -NULL test tb4 f190 15 88.8 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f191 16 88.8 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f192 17 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f193 18 00000000000000000088.8 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f194 19 55.5 NO double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f195 20 55.5 NO double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f196 21 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f197 22 00000000000000000055.5 NO double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f198 23 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f199 24 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f200 25 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f201 26 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f202 27 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f203 28 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f204 29 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f205 30 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f206 31 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f207 32 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f208 33 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f209 34 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f210 35 NULL YES float NULL NULL 12 NULL NULL NULL float select,insert,update,references -NULL test tb4 f211 36 NULL YES double NULL NULL 22 NULL NULL NULL double select,insert,update,references -NULL test tb4 f212 37 NULL YES float unsigned NULL NULL 12 NULL NULL NULL float unsigned select,insert,update,references -NULL test tb4 f213 38 NULL YES double unsigned NULL NULL 22 NULL NULL NULL double unsigned select,insert,update,references -NULL test tb4 f214 39 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f215 40 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f216 41 NULL YES float unsigned zerofill NULL NULL 12 NULL NULL NULL float unsigned zerofill select,insert,update,references -NULL test tb4 f217 42 NULL YES double unsigned zerofill NULL NULL 22 NULL NULL NULL double unsigned zerofill select,insert,update,references -NULL test tb4 f218 43 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references -NULL test tb4 f219 44 NULL YES time NULL NULL NULL NULL NULL NULL time select,insert,update,references -NULL test tb4 f220 45 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references -NULL test tb4 f221 46 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references -NULL test tb4 f222 47 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f223 48 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f224 49 NULL YES year NULL NULL NULL NULL NULL NULL year(4) select,insert,update,references -NULL test tb4 f225 50 NULL YES enum 5 5 NULL NULL latin1 latin1_swedish_ci enum('1enum','2enum') select,insert,update,references -NULL test tb4 f226 51 NULL YES set 9 9 NULL NULL latin1 latin1_swedish_ci set('1set','2set') select,insert,update,references -NULL test tb4 f227 52 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f228 53 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f229 54 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f230 55 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f231 56 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f232 57 NULL YES varbinary 27 27 NULL NULL NULL NULL varbinary(27) select,insert,update,references -NULL test tb4 f233 58 NULL YES varbinary 64 64 NULL NULL NULL NULL varbinary(64) select,insert,update,references -NULL test tb4 f234 59 NULL YES varbinary 192 192 NULL NULL NULL NULL varbinary(192) select,insert,update,references -NULL test tb4 f235 60 NULL YES char 255 510 NULL NULL ucs2 ucs2_general_ci char(255) select,insert,update,references -NULL test tb4 f236 61 NULL YES char 60 60 NULL NULL latin1 latin1_swedish_ci char(60) select,insert,update,references -NULL test tb4 f237 62 NULL YES char 255 255 NULL NULL latin1 latin1_bin char(255) select,insert,update,references -NULL test tb4 f238 63 NULL YES varchar 0 0 NULL NULL latin1 latin1_bin varchar(0) select,insert,update,references -NULL test tb4 f239 64 NULL YES varbinary 1000 1000 NULL NULL NULL NULL varbinary(1000) select,insert,update,references -NULL test tb4 f240 65 NULL YES varchar 120 240 NULL NULL ucs2 ucs2_general_ci varchar(120) select,insert,update,references -NULL test tb4 f241 66 NULL YES char 100 200 NULL NULL ucs2 ucs2_general_ci char(100) select,insert,update,references -NULL test tb4 f242 67 NULL YES bit NULL NULL 30 NULL NULL NULL bit(30) select,insert,update,references - -root@localhost db_datadict - -Show the quotient of COL and CML for all COLUMNS ------------------------------------------------- -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1 -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -1.0000 binary NULL NULL -1.0000 blob NULL NULL -1.0000 longblob NULL NULL -1.0000 mediumblob NULL NULL -1.0000 tinyblob NULL NULL -1.0000 varbinary NULL NULL -1.0000 char latin1 latin1_bin -1.0000 char latin1 latin1_swedish_ci -1.0000 enum latin1 latin1_swedish_ci -1.0000 longtext latin1 latin1_swedish_ci -1.0000 mediumtext latin1 latin1_swedish_ci -1.0000 set latin1 latin1_swedish_ci -1.0000 text latin1 latin1_swedish_ci -1.0000 tinytext latin1 latin1_swedish_ci -1.0000 longtext utf8 utf8_general_ci -1.0000 text utf8 utf8_general_ci -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1 -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -2.0000 char ucs2 ucs2_general_ci -2.0000 longtext ucs2 ucs2_general_ci -2.0000 varchar ucs2 ucs2_general_ci -2.0079 tinytext ucs2 ucs2_general_ci -3.0000 char utf8 utf8_bin -3.0000 enum utf8 utf8_bin -3.0000 char utf8 utf8_general_ci -3.0000 enum utf8 utf8_general_ci -3.0000 set utf8 utf8_general_ci -3.0000 varchar utf8 utf8_general_ci -SELECT DISTINCT -CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -DATA_TYPE, -CHARACTER_SET_NAME, -COLLATION_NAME -FROM information_schema.columns -WHERE CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL -ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML; -COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME -NULL bigint NULL NULL -NULL bit NULL NULL -NULL date NULL NULL -NULL datetime NULL NULL -NULL decimal NULL NULL -NULL double NULL NULL -NULL double unsigned NULL NULL -NULL double unsigned zerofill NULL NULL -NULL float NULL NULL -NULL float unsigned NULL NULL -NULL float unsigned zerofill NULL NULL -NULL int NULL NULL -NULL mediumint NULL NULL -NULL smallint NULL NULL -NULL time NULL NULL -NULL timestamp NULL NULL -NULL tinyint NULL NULL -NULL year NULL NULL -NULL varchar latin1 latin1_bin ---> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values ---> are 0, which is intended behavior, and the result of 0 / 0 IS NULL -SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML, -TABLE_SCHEMA, -TABLE_NAME, -COLUMN_NAME, -DATA_TYPE, -CHARACTER_MAXIMUM_LENGTH, -CHARACTER_OCTET_LENGTH, -CHARACTER_SET_NAME, -COLLATION_NAME, -COLUMN_TYPE -FROM information_schema.columns -ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION; -COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE -1.0000 db_datadict t_6_406001 f1 char 10 10 latin1 latin1_swedish_ci char(10) -1.0000 db_datadict t_6_406001 f2 text 65535 65535 latin1 latin1_swedish_ci text -NULL db_datadict t_6_406001 f3 date NULL NULL NULL NULL date -NULL db_datadict t_6_406001 f4 int NULL NULL NULL NULL int(11) -1.0000 db_datadict t_6_406002 f1 char 10 10 latin1 latin1_swedish_ci char(10) -1.0000 db_datadict t_6_406002 f2 text 65535 65535 latin1 latin1_swedish_ci text -NULL db_datadict t_6_406002 f3 date NULL NULL NULL NULL date -NULL db_datadict t_6_406002 f4 int NULL NULL NULL NULL int(11) -3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60) -NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema COLLATIONS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11) -3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3) -NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) -1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) -NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMNS COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema COLUMNS EXTRA varchar 20 60 utf8 utf8_general_ci varchar(20) -3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80) -3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255) -3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10) -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9) -3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8) -1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8) -3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) -NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime -NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime -1.0000 information_schema ROUTINES SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) -3.0000 information_schema SCHEMATA CATALOG_NAME varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMATA SQL_PATH varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema STATISTICS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1) -3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2) -3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1) -NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21) -NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3) -3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10) -3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16) -3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16) -3.0000 information_schema TABLES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10) -NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21) -NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime -NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime -NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime -3.0000 information_schema TABLES TABLE_COLLATION varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) -3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255) -3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6) -3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4) -1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9) -3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3) -NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime -1.0000 information_schema TRIGGERS SQL_MODE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -1.0000 information_schema TRIGGERS DEFINER longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81) -3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema VIEWS TABLE_CATALOG varchar 4096 12288 utf8 utf8_general_ci varchar(4096) -3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64) -3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64) -1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext -3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8) -3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3) -3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77) -3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7) -3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64) -NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') -3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql db User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql func name char 64 192 utf8 utf8_bin char(64) -NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1) -3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128) -3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate') -NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -3.0000 mysql help_category url char 128 384 utf8 utf8_general_ci char(128) -NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned -1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text -1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text -3.0000 mysql help_topic url char 128 384 utf8 utf8_general_ci char(128) -3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') -3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64) -3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL') -3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') -3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO') -3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER') -1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob -3.0000 mysql proc returns char 64 192 utf8 utf8_general_ci char(64) -1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob -3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77) -NULL mysql proc created timestamp NULL NULL NULL NULL timestamp -NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp -3.0000 mysql proc sql_mode set 431 1293 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE') -3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE') -3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77) -3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant') -NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64) -3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16) -3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64) -3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77) -NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp -3.0000 mysql tables_priv Table_priv set 90 270 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view') -3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References') -NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned -3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N') -NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20) -NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11) -3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64) -NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20) -NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned -NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11) -NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned -3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8) -3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60) -3.0000 mysql user User char 16 48 utf8 utf8_bin char(16) -1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41) -3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y') -3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') -1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob -1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob -1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob -NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned -NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned -1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t1 f3 date NULL NULL NULL NULL date -NULL test t1 f4 int NULL NULL NULL NULL int(11) -1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t1 f6 int NULL NULL NULL NULL int(11) -1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t10 f3 date NULL NULL NULL NULL date -NULL test t10 f4 int NULL NULL NULL NULL int(11) -1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t10 f6 int NULL NULL NULL NULL int(11) -1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t11 f3 date NULL NULL NULL NULL date -NULL test t11 f4 int NULL NULL NULL NULL int(11) -1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t11 f6 int NULL NULL NULL NULL int(11) -1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t2 f3 date NULL NULL NULL NULL date -NULL test t2 f4 int NULL NULL NULL NULL int(11) -1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t2 f6 int NULL NULL NULL NULL int(11) -1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20) -NULL test t3 f3 int NULL NULL NULL NULL int(11) -1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t4 f3 date NULL NULL NULL NULL date -NULL test t4 f4 int NULL NULL NULL NULL int(11) -1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t4 f6 int NULL NULL NULL NULL int(11) -1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t7 f3 date NULL NULL NULL NULL date -NULL test t7 f4 int NULL NULL NULL NULL int(11) -1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t8 f3 date NULL NULL NULL NULL date -NULL test t8 f4 int NULL NULL NULL NULL int(11) -NULL test t9 f1 int NULL NULL NULL NULL int(11) -1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test t9 f3 int NULL NULL NULL NULL int(11) -1.0000 test tb1 f1 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb1 f2 char 1 1 latin1 latin1_bin char(1) -1.0000 test tb1 f3 char 1 1 latin1 latin1_swedish_ci char(1) -2.0079 test tb1 f4 tinytext 127 255 ucs2 ucs2_general_ci tinytext -1.0000 test tb1 f5 text 65535 65535 latin1 latin1_swedish_ci text -1.0000 test tb1 f6 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext -1.0000 test tb1 f7 longtext 4294967295 4294967295 latin1 latin1_swedish_ci longtext -1.0000 test tb1 f8 tinyblob 255 255 NULL NULL tinyblob -1.0000 test tb1 f9 blob 65535 65535 NULL NULL blob -1.0000 test tb1 f10 mediumblob 16777215 16777215 NULL NULL mediumblob -1.0000 test tb1 f11 longblob 4294967295 4294967295 NULL NULL longblob -1.0000 test tb1 f12 binary 1 1 NULL NULL binary(1) -NULL test tb1 f13 tinyint NULL NULL NULL NULL tinyint(4) -NULL test tb1 f14 tinyint NULL NULL NULL NULL tinyint(3) unsigned -NULL test tb1 f15 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb1 f16 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb1 f17 smallint NULL NULL NULL NULL smallint(6) -NULL test tb1 f18 smallint NULL NULL NULL NULL smallint(5) unsigned -NULL test tb1 f19 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb1 f20 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb1 f21 mediumint NULL NULL NULL NULL mediumint(9) -NULL test tb1 f22 mediumint NULL NULL NULL NULL mediumint(8) unsigned -NULL test tb1 f23 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb1 f24 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb1 f25 int NULL NULL NULL NULL int(11) -NULL test tb1 f26 int NULL NULL NULL NULL int(10) unsigned -NULL test tb1 f27 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb1 f28 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb1 f29 bigint NULL NULL NULL NULL bigint(20) -NULL test tb1 f30 bigint NULL NULL NULL NULL bigint(20) unsigned -NULL test tb1 f31 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb1 f32 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb1 f33 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f34 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f35 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f36 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f37 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f38 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb1 f39 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f40 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb1 f41 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f42 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb1 f43 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f44 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb1 f45 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f46 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb1 f47 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f48 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb1 f49 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f50 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb1 f51 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f52 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb1 f53 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f54 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb1 f55 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f56 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb1 f57 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb1 f58 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb2 f73 double NULL NULL NULL NULL double -NULL test tb2 f74 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f77 double NULL NULL NULL NULL double -NULL test tb2 f78 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f81 float NULL NULL NULL NULL float -NULL test tb2 f82 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f85 float NULL NULL NULL NULL float -NULL test tb2 f86 float NULL NULL NULL NULL float -NULL test tb2 f87 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f88 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f93 float NULL NULL NULL NULL float -NULL test tb2 f94 double NULL NULL NULL NULL double -NULL test tb2 f95 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb2 f96 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb2 f101 date NULL NULL NULL NULL date -NULL test tb2 f102 time NULL NULL NULL NULL time -NULL test tb2 f103 datetime NULL NULL NULL NULL datetime -NULL test tb2 f104 timestamp NULL NULL NULL NULL timestamp -NULL test tb2 f105 year NULL NULL NULL NULL year(4) -NULL test tb2 f106 year NULL NULL NULL NULL year(4) -NULL test tb2 f107 year NULL NULL NULL NULL year(4) -1.0000 test tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -1.0000 test tb2 f110 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test tb2 f111 varbinary 27 27 NULL NULL varbinary(27) -1.0000 test tb2 f112 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test tb2 f113 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test tb2 f114 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test tb2 f115 varbinary 27 27 NULL NULL varbinary(27) -1.0000 test tb2 f116 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test tb2 f117 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test tb3 f118 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb3 f119 char 1 1 latin1 latin1_bin char(1) -1.0000 test tb3 f120 char 1 1 latin1 latin1_swedish_ci char(1) -1.0000 test tb3 f121 tinytext 255 255 latin1 latin1_swedish_ci tinytext -1.0000 test tb3 f122 text 65535 65535 latin1 latin1_swedish_ci text -1.0000 test tb3 f123 mediumtext 16777215 16777215 latin1 latin1_swedish_ci mediumtext -2.0000 test tb3 f124 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext -1.0000 test tb3 f125 tinyblob 255 255 NULL NULL tinyblob -1.0000 test tb3 f126 blob 65535 65535 NULL NULL blob -1.0000 test tb3 f127 mediumblob 16777215 16777215 NULL NULL mediumblob -1.0000 test tb3 f128 longblob 4294967295 4294967295 NULL NULL longblob -1.0000 test tb3 f129 binary 1 1 NULL NULL binary(1) -NULL test tb3 f130 tinyint NULL NULL NULL NULL tinyint(4) -NULL test tb3 f131 tinyint NULL NULL NULL NULL tinyint(3) unsigned -NULL test tb3 f132 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb3 f133 tinyint NULL NULL NULL NULL tinyint(3) unsigned zerofill -NULL test tb3 f134 smallint NULL NULL NULL NULL smallint(6) -NULL test tb3 f135 smallint NULL NULL NULL NULL smallint(5) unsigned -NULL test tb3 f136 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb3 f137 smallint NULL NULL NULL NULL smallint(5) unsigned zerofill -NULL test tb3 f138 mediumint NULL NULL NULL NULL mediumint(9) -NULL test tb3 f139 mediumint NULL NULL NULL NULL mediumint(8) unsigned -NULL test tb3 f140 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb3 f141 mediumint NULL NULL NULL NULL mediumint(8) unsigned zerofill -NULL test tb3 f142 int NULL NULL NULL NULL int(11) -NULL test tb3 f143 int NULL NULL NULL NULL int(10) unsigned -NULL test tb3 f144 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb3 f145 int NULL NULL NULL NULL int(10) unsigned zerofill -NULL test tb3 f146 bigint NULL NULL NULL NULL bigint(20) -NULL test tb3 f147 bigint NULL NULL NULL NULL bigint(20) unsigned -NULL test tb3 f148 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb3 f149 bigint NULL NULL NULL NULL bigint(20) unsigned zerofill -NULL test tb3 f150 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f151 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f152 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f153 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f154 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f155 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb3 f156 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f157 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb3 f158 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f159 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb3 f160 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f161 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb3 f162 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f163 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb3 f164 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f165 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb3 f166 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f167 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb3 f168 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f169 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb3 f170 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f171 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb3 f172 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f173 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb3 f174 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb3 f175 decimal NULL NULL NULL NULL decimal(64,0) -NULL test tb4 f176 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb4 f177 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test tb4 f178 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f179 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb4 f180 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f181 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test tb4 f182 decimal NULL NULL NULL NULL decimal(10,0) -NULL test tb4 f183 decimal NULL NULL NULL NULL decimal(63,30) -NULL test tb4 f184 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test tb4 f185 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test tb4 f186 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f187 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb4 f188 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test tb4 f189 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test tb4 f190 double NULL NULL NULL NULL double -NULL test tb4 f191 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f192 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f193 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f194 double NULL NULL NULL NULL double -NULL test tb4 f195 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f196 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f197 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f198 float NULL NULL NULL NULL float -NULL test tb4 f199 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f200 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f201 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f202 float NULL NULL NULL NULL float -NULL test tb4 f203 float NULL NULL NULL NULL float -NULL test tb4 f204 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f205 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f206 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f207 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f208 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f209 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f210 float NULL NULL NULL NULL float -NULL test tb4 f211 double NULL NULL NULL NULL double -NULL test tb4 f212 float unsigned NULL NULL NULL NULL float unsigned -NULL test tb4 f213 double unsigned NULL NULL NULL NULL double unsigned -NULL test tb4 f214 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f215 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f216 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test tb4 f217 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test tb4 f218 date NULL NULL NULL NULL date -NULL test tb4 f219 time NULL NULL NULL NULL time -NULL test tb4 f220 datetime NULL NULL NULL NULL datetime -NULL test tb4 f221 timestamp NULL NULL NULL NULL timestamp -NULL test tb4 f222 year NULL NULL NULL NULL year(4) -NULL test tb4 f223 year NULL NULL NULL NULL year(4) -NULL test tb4 f224 year NULL NULL NULL NULL year(4) -1.0000 test tb4 f225 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test tb4 f226 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -1.0000 test tb4 f227 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test tb4 f228 varbinary 27 27 NULL NULL varbinary(27) -1.0000 test tb4 f229 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test tb4 f230 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test tb4 f231 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test tb4 f232 varbinary 27 27 NULL NULL varbinary(27) -1.0000 test tb4 f233 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test tb4 f234 varbinary 192 192 NULL NULL varbinary(192) -2.0000 test tb4 f235 char 255 510 ucs2 ucs2_general_ci char(255) -1.0000 test tb4 f236 char 60 60 latin1 latin1_swedish_ci char(60) -1.0000 test tb4 f237 char 255 255 latin1 latin1_bin char(255) -NULL test tb4 f238 varchar 0 0 latin1 latin1_bin varchar(0) -1.0000 test tb4 f239 varbinary 1000 1000 NULL NULL varbinary(1000) -2.0000 test tb4 f240 varchar 120 240 ucs2 ucs2_general_ci varchar(120) -2.0000 test tb4 f241 char 100 200 ucs2 ucs2_general_ci char(100) -NULL test tb4 f242 bit NULL NULL NULL NULL bit(30) -NULL test1 tb2 f59 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test1 tb2 f60 decimal NULL NULL NULL NULL decimal(64,0) unsigned -NULL test1 tb2 f61 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f62 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test1 tb2 f63 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f64 decimal NULL NULL NULL NULL decimal(64,0) unsigned zerofill -NULL test1 tb2 f65 decimal NULL NULL NULL NULL decimal(10,0) -NULL test1 tb2 f66 decimal NULL NULL NULL NULL decimal(63,30) -NULL test1 tb2 f67 decimal NULL NULL NULL NULL decimal(10,0) unsigned -NULL test1 tb2 f68 decimal NULL NULL NULL NULL decimal(63,30) unsigned -NULL test1 tb2 f69 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f70 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test1 tb2 f71 decimal NULL NULL NULL NULL decimal(10,0) unsigned zerofill -NULL test1 tb2 f72 decimal NULL NULL NULL NULL decimal(63,30) unsigned zerofill -NULL test1 tb2 f73 double NULL NULL NULL NULL double -NULL test1 tb2 f74 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f75 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f76 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f77 double NULL NULL NULL NULL double -NULL test1 tb2 f78 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f79 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f80 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f81 float NULL NULL NULL NULL float -NULL test1 tb2 f82 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f83 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f84 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f85 float NULL NULL NULL NULL float -NULL test1 tb2 f86 float NULL NULL NULL NULL float -NULL test1 tb2 f87 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f88 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f89 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f90 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f91 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f92 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f93 float NULL NULL NULL NULL float -NULL test1 tb2 f94 double NULL NULL NULL NULL double -NULL test1 tb2 f95 float unsigned NULL NULL NULL NULL float unsigned -NULL test1 tb2 f96 double unsigned NULL NULL NULL NULL double unsigned -NULL test1 tb2 f97 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f98 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f99 float unsigned zerofill NULL NULL NULL NULL float unsigned zerofill -NULL test1 tb2 f100 double unsigned zerofill NULL NULL NULL NULL double unsigned zerofill -NULL test1 tb2 f101 date NULL NULL NULL NULL date -NULL test1 tb2 f102 time NULL NULL NULL NULL time -NULL test1 tb2 f103 datetime NULL NULL NULL NULL datetime -NULL test1 tb2 f104 timestamp NULL NULL NULL NULL timestamp -NULL test1 tb2 f105 year NULL NULL NULL NULL year(4) -NULL test1 tb2 f106 year NULL NULL NULL NULL year(4) -NULL test1 tb2 f107 year NULL NULL NULL NULL year(4) -1.0000 test1 tb2 f108 enum 5 5 latin1 latin1_swedish_ci enum('1enum','2enum') -1.0000 test1 tb2 f109 set 9 9 latin1 latin1_swedish_ci set('1set','2set') -1.0000 test1 tb2 f110 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test1 tb2 f111 varbinary 27 27 NULL NULL varbinary(27) -1.0000 test1 tb2 f112 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test1 tb2 f113 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test1 tb2 f114 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test1 tb2 f115 varbinary 27 27 NULL NULL varbinary(27) -1.0000 test1 tb2 f116 varbinary 64 64 NULL NULL varbinary(64) -1.0000 test1 tb2 f117 varbinary 192 192 NULL NULL varbinary(192) -1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20) -1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test4 t6 f3 date NULL NULL NULL NULL date -NULL test4 t6 f4 int NULL NULL NULL NULL int(11) -1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25) -NULL test4 t6 f6 int NULL NULL NULL NULL int(11) -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE IF EXISTS t_6_406001; -DROP TABLE IF EXISTS t_6_406002; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.7.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC key_column_usage; -Field Type Null Key Default Extra -CONSTRAINT_CATALOG varchar(4096) YES NULL -CONSTRAINT_SCHEMA varchar(64) NO -CONSTRAINT_NAME varchar(64) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -COLUMN_NAME varchar(64) NO -ORDINAL_POSITION bigint(10) NO 0 -POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL -REFERENCED_TABLE_SCHEMA varchar(64) YES NULL -REFERENCED_TABLE_NAME varchar(64) YES NULL -REFERENCED_COLUMN_NAME varchar(64) YES NULL -SHOW CREATE TABLE key_column_usage; -Table Create Table -KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` ( - `CONSTRAINT_CATALOG` varchar(4096) default NULL, - `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', - `CONSTRAINT_NAME` varchar(64) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `ORDINAL_POSITION` bigint(10) NOT NULL default '0', - `POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) default NULL, - `REFERENCED_TABLE_SCHEMA` varchar(64) default NULL, - `REFERENCED_TABLE_NAME` varchar(64) default NULL, - `REFERENCED_COLUMN_NAME` varchar(64) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'key_column_usage' -ORDER BY ordinal_position; -COUNT(*) -12 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'key_column_usage' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.7.2 + 3.2.7.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -CREATE TABLE t_40701 ( -f1 INT NOT NULL, PRIMARY KEY(f1), -f2 INT, INDEX f2_ind(f2) -); -GRANT SELECT ON t_40701 to 'user_1'@'localhost'; -CREATE TABLE t_40702 ( -f1 INT NOT NULL, PRIMARY KEY(f1), -f2 INT, INDEX f2_ind(f2) -); -GRANT SELECT ON t_40702 to 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL -NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_category name 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_keyword name 1 NULL NULL NULL NULL -NULL mysql name NULL mysql help_topic name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql columns_priv Column_name 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql db User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql func name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_category help_category_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_keyword help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_keyword_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_relation help_topic_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql help_topic help_topic_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql host Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc db 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc name 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql proc type 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql procs_priv Routine_type 5 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Db 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv User 3 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql tables_priv Table_name 4 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_leap_second Transition_time 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_name Name 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition Transition_time 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Time_zone_id 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql time_zone_transition_type Transition_type_id 2 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user Host 1 NULL NULL NULL NULL -NULL mysql PRIMARY NULL mysql user User 2 NULL NULL NULL NULL -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40701 f1 1 NULL NULL NULL NULL -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.key_column_usage -ORDER BY constraint_catalog, constraint_schema, constraint_name, -table_catalog, table_schema, table_name, ordinal_position; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME -NULL db_datadict PRIMARY NULL db_datadict t_40702 f1 1 NULL NULL NULL NULL - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE t_40701; -DROP TABLE t_40702; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.8.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC routines; -Field Type Null Key Default Extra -SPECIFIC_NAME varchar(64) NO -ROUTINE_CATALOG varchar(4096) YES NULL -ROUTINE_SCHEMA varchar(64) NO -ROUTINE_NAME varchar(64) NO -ROUTINE_TYPE varchar(9) NO -DTD_IDENTIFIER varchar(64) YES NULL -ROUTINE_BODY varchar(8) NO -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 -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 longtext NO NULL -ROUTINE_COMMENT varchar(64) NO -DEFINER varchar(77) NO -SHOW CREATE TABLE routines; -Table Create Table -ROUTINES CREATE TEMPORARY TABLE `ROUTINES` ( - `SPECIFIC_NAME` varchar(64) NOT NULL default '', - `ROUTINE_CATALOG` varchar(4096) default NULL, - `ROUTINE_SCHEMA` varchar(64) NOT NULL default '', - `ROUTINE_NAME` varchar(64) NOT NULL default '', - `ROUTINE_TYPE` varchar(9) NOT NULL default '', - `DTD_IDENTIFIER` varchar(64) default NULL, - `ROUTINE_BODY` varchar(8) NOT NULL default '', - `ROUTINE_DEFINITION` longtext, - `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` longtext NOT NULL, - `ROUTINE_COMMENT` varchar(64) NOT NULL default '', - `DEFINER` varchar(77) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'routines' -ORDER BY ordinal_position; -COUNT(*) -20 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'routines' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select -NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema ROUTINES SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select - -Testcase 3.2.8.2 + 3.2.8.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -USE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); -INSERT INTO res_6_408002_1(f1, f2, f3, f4) -VALUES('abc', 'xyz', '1989-11-09', 0815); -DROP PROCEDURE IF EXISTS sp_6_408002_1; -CREATE PROCEDURE sp_6_408002_1() -BEGIN -SELECT * FROM db_datadict.res_6_408002_1; -END// -CREATE DATABASE db_datadict_2; -USE db_datadict_2; -CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT); -INSERT INTO res_6_408002_2(f1, f2, f3, f4) -VALUES('abc', 'xyz', '1990-10-03', 4711); -DROP PROCEDURE IF EXISTS sp_6_408002_2; -CREATE PROCEDURE sp_6_408002_2() -BEGIN -SELECT * FROM db_datadict_2.res_6_408002_2; -END// -GRANT SELECT ON db_datadict_2.* TO 'user_1'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_1'@'localhost'; -GRANT EXECUTE ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.* TO 'user_2'@'localhost'; -GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 TO 'user_2'@'localhost'; -GRANT EXECUTE ON db_datadict_2.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_6_408002_1 NULL db_datadict sp_6_408002_1 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER -sp_6_408002_2 NULL db_datadict_2 sp_6_408002_2 PROCEDURE NULL SQL NULL NULL NULL SQL NO CONTAINS SQL NULL DEFINER YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss root@localhost -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.routines; -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 CREATED LAST_ALTERED SQL_MODE ROUTINE_COMMENT DEFINER - -root@localhost db_datadict_2 -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -use db_datadict; -DROP TABLE res_6_408002_1; -DROP PROCEDURE sp_6_408002_1; -USE db_datadict_2; -DROP TABLE res_6_408002_2; -DROP PROCEDURE sp_6_408002_2; -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; - -Testcase 3.2.8.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -USE db_datadict; -create table res_6_408004_1(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); -insert into res_6_408004_1 values ('abc', 98765 , 99999999 , 98765, 10); -drop procedure if exists sp_6_408004; -create table res_6_408004_2(f1 longtext , f2 mediumint , f3 longblob , f4 real , f5 year); -insert into res_6_408004_2 values ('abc', 98765 , 99999999 , 98765, 10); - -Checking the max. possible length of (currently) 4 GByte is not possible in this environment here. --------------------------------------------------------------------------------------------------- -create procedure sp_6_408004 () -begin -declare done integer default 0; -declare variable_number_1 longtext; -declare variable_number_2 mediumint; -declare variable_number_3 longblob; -declare variable_number_4 real; -declare variable_number_5 year; -declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10; -declare continue handler for sqlstate '02000' set done = 1; -begin -open cursor_number_1; -while done <> 1 do -fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, -variable_number_4, variable_number_5); -end if; -end while; -begin -begin -set done = 0; -open cursor_number_2; -while done <> 1 do -fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -set done = 0; -open cursor_number_3; -while done <> 1 do -fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -end; -begin -set done = 0; -open cursor_number_4; -while done <> 1 do -fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -begin -set done = 0; -open cursor_number_5; -while done <> 1 do -fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -end// -call sp_6_408004 (); -@a -test row -@a -test row -@a -test row -@a -test row -@a -test row -@a -test row -select * from res_6_408004_2; -f1 f2 f3 f4 f5 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -abc 98765 99999999 98765 2010 -SELECT *, LENGTH(routine_definition) -FROM information_schema.routines -WHERE routine_schema = 'db_datadict'; -SPECIFIC_NAME sp_6_408004 -ROUTINE_CATALOG NULL -ROUTINE_SCHEMA db_datadict -ROUTINE_NAME sp_6_408004 -ROUTINE_TYPE PROCEDURE -DTD_IDENTIFIER NULL -ROUTINE_BODY SQL -ROUTINE_DEFINITION begin -declare done integer default 0; -declare variable_number_1 longtext; -declare variable_number_2 mediumint; -declare variable_number_3 longblob; -declare variable_number_4 real; -declare variable_number_5 year; -declare cursor_number_1 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_2 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_3 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_4 cursor for select * from res_6_408004_1 limit 0, 10; -declare cursor_number_5 cursor for select * from res_6_408004_1 limit 0, 10; -declare continue handler for sqlstate '02000' set done = 1; -begin -open cursor_number_1; -while done <> 1 do -fetch cursor_number_1 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, -variable_number_4, variable_number_5); -end if; -end while; -begin -begin -set done = 0; -open cursor_number_2; -while done <> 1 do -fetch cursor_number_2 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -set done = 0; -open cursor_number_3; -while done <> 1 do -fetch cursor_number_3 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values(variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -end; -begin -set done = 0; -open cursor_number_4; -while done <> 1 do -fetch cursor_number_4 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -begin -set done = 0; -open cursor_number_5; -while done <> 1 do -fetch cursor_number_5 into variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5; -if done <> 0 then -insert into res_6_408004_2 values (variable_number_1, variable_number_2, variable_number_3, variable_number_4, variable_number_5); -end if; -end while; -end; -begin -set @a='test row'; -select @a; -select @a; -select @a; -end; -end -EXTERNAL_NAME NULL -EXTERNAL_LANGUAGE NULL -PARAMETER_STYLE SQL -IS_DETERMINISTIC NO -SQL_DATA_ACCESS CONTAINS SQL -SQL_PATH NULL -SECURITY_TYPE DEFINER -CREATED YYYY-MM-DD hh:mm:ss -LAST_ALTERED YYYY-MM-DD hh:mm:ss -SQL_MODE -ROUTINE_COMMENT -DEFINER root@localhost -LENGTH(routine_definition) 2549 -use db_datadict; -drop procedure sp_6_408004; -drop table res_6_408004_1; -drop table res_6_408004_2; -use test; -drop database db_datadict; - -Testcase 3.2.9.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC schemata; -Field Type Null Key Default Extra -CATALOG_NAME varchar(4096) YES NULL -SCHEMA_NAME varchar(64) NO -DEFAULT_CHARACTER_SET_NAME varchar(64) NO -DEFAULT_COLLATION_NAME varchar(64) NO -SQL_PATH varchar(4096) YES NULL -SHOW CREATE TABLE schemata; -Table Create Table -SCHEMATA CREATE TEMPORARY TABLE `SCHEMATA` ( - `CATALOG_NAME` varchar(4096) default NULL, - `SCHEMA_NAME` varchar(64) NOT NULL default '', - `DEFAULT_CHARACTER_SET_NAME` varchar(64) NOT NULL default '', - `DEFAULT_COLLATION_NAME` varchar(64) NOT NULL default '', - `SQL_PATH` varchar(4096) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schemata' -ORDER BY ordinal_position; -COUNT(*) -5 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schemata' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select - -Testcase 3.2.9.2 + 3.2.9.3: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict_1; -CREATE DATABASE db_datadict_2; -GRANT SELECT ON db_datadict_1.* to 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.* to 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict_1,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -3 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict_1 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -3 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL db_datadict_2 latin1 latin1_swedish_ci NULL -NULL test latin1 latin1_swedish_ci NULL -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT COUNT(*) FROM information_schema.schemata; -COUNT(*) -2 -SELECT * FROM information_schema.schemata; -CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH -NULL information_schema utf8 utf8_general_ci NULL -NULL test latin1 latin1_swedish_ci NULL - -root@localhost information_schema -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE db_datadict_1; -DROP DATABASE db_datadict_2; - -Testcase 3.2.10.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC table_constraints; -Field Type Null Key Default Extra -CONSTRAINT_CATALOG varchar(4096) YES NULL -CONSTRAINT_SCHEMA varchar(64) NO -CONSTRAINT_NAME varchar(64) NO -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -CONSTRAINT_TYPE varchar(64) NO -SHOW CREATE TABLE table_constraints; -Table Create Table -TABLE_CONSTRAINTS CREATE TEMPORARY TABLE `TABLE_CONSTRAINTS` ( - `CONSTRAINT_CATALOG` varchar(4096) default NULL, - `CONSTRAINT_SCHEMA` varchar(64) NOT NULL default '', - `CONSTRAINT_NAME` varchar(64) NOT NULL default '', - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `CONSTRAINT_TYPE` varchar(64) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_constraints' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_constraints' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select - -Testcase 3.2.10.2 + 3.2.10.3: --------------------------------------------------------------------------------- -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; -USE db_datadict; -CREATE TABLE res_6_401003_1(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); -USE db_datadict_2; -CREATE TABLE res_6_401003_2(f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)); -GRANT SELECT ON db_datadict.res_6_401003_1 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict_2.res_6_401003_2 TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL db_datadict PRIMARY db_datadict res_6_401003_1 PRIMARY KEY -SELECT COUNT(*) FROM information_schema.table_constraints; -COUNT(*) -1 -connect(localhost,user_2,,db_datadict_2,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_constraints; -CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE -NULL db_datadict_2 PRIMARY db_datadict_2 res_6_401003_2 PRIMARY KEY -SELECT COUNT(*) FROM information_schema.table_constraints; -COUNT(*) -1 -use db_datadict; - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE res_6_401003_1; -USE db_datadict_2; -DROP TABLE res_6_401003_2; -USE test; -DROP DATABASE db_datadict; -DROP DATABASE db_datadict_2; - -Testcase 3.2.11.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC table_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE table_privileges; -Table Create Table -TABLE_PRIVILEGES CREATE TEMPORARY TABLE `TABLE_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_privileges' -ORDER BY ordinal_position; -COUNT(*) -6 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'table_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.11.2 + 3.2.11.3 + 3.2.11.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -create database db_datadict; -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, SELECT ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -use db_datadict; -create table tb1(f1 int, f2 int, f3 int); -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; -SELECT * FROM information_schema.table_privileges -WHERE table_name LIKE 'tb%'; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL db_datadict tb1 SELECT NO -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict tb1 SELECT YES -'user_2'@'localhost' NULL db_datadict tb1 INSERT YES -'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES -'user_2'@'localhost' NULL db_datadict tb1 DELETE YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE YES -'user_2'@'localhost' NULL db_datadict tb1 DROP YES -'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES -'user_2'@'localhost' NULL db_datadict tb1 INDEX YES -'user_2'@'localhost' NULL db_datadict tb1 ALTER YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES -'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES -SELECT USER(), COUNT(*) -FROM information_schema.table_privileges -WHERE grantee = USER(); -USER() COUNT(*) -user_2@localhost 0 -SELECT USER(), COUNT(*) -FROM information_schema.table_privileges -WHERE grantee = "'user_2'@'localhost'"; -USER() COUNT(*) -user_2@localhost 11 -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL db_datadict tb3 SELECT NO - -root@localhost db_datadict -SELECT * FROM information_schema.table_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL db_datadict tb1 SELECT YES -'user_2'@'localhost' NULL db_datadict tb1 INSERT YES -'user_2'@'localhost' NULL db_datadict tb1 UPDATE YES -'user_2'@'localhost' NULL db_datadict tb1 DELETE YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE YES -'user_2'@'localhost' NULL db_datadict tb1 DROP YES -'user_2'@'localhost' NULL db_datadict tb1 REFERENCES YES -'user_2'@'localhost' NULL db_datadict tb1 INDEX YES -'user_2'@'localhost' NULL db_datadict tb1 ALTER YES -'user_2'@'localhost' NULL db_datadict tb1 CREATE VIEW YES -'user_2'@'localhost' NULL db_datadict tb1 SHOW VIEW YES -'user_1'@'localhost' NULL db_datadict tb1 SELECT NO -'user_3'@'localhost' NULL db_datadict tb3 SELECT NO - -root@localhost db_datadict -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -drop table db_datadict.tb1; -drop table db_datadict.tb3; -use test; -drop database db_datadict; - -Testcase 3.2.12.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC tables; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -TABLE_TYPE varchar(64) NO -ENGINE varchar(64) YES NULL -VERSION bigint(21) YES NULL -ROW_FORMAT varchar(10) YES NULL -TABLE_ROWS bigint(21) YES NULL -AVG_ROW_LENGTH bigint(21) YES NULL -DATA_LENGTH bigint(21) YES NULL -MAX_DATA_LENGTH bigint(21) YES NULL -INDEX_LENGTH bigint(21) YES NULL -DATA_FREE bigint(21) YES NULL -AUTO_INCREMENT bigint(21) YES NULL -CREATE_TIME datetime YES NULL -UPDATE_TIME datetime YES NULL -CHECK_TIME datetime YES NULL -TABLE_COLLATION varchar(64) YES NULL -CHECKSUM bigint(21) YES NULL -CREATE_OPTIONS varchar(255) YES NULL -TABLE_COMMENT varchar(80) NO -SHOW CREATE TABLE tables; -Table Create Table -TABLES CREATE TEMPORARY TABLE `TABLES` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `TABLE_TYPE` varchar(64) NOT NULL default '', - `ENGINE` varchar(64) default NULL, - `VERSION` bigint(21) default NULL, - `ROW_FORMAT` varchar(10) default NULL, - `TABLE_ROWS` bigint(21) default NULL, - `AVG_ROW_LENGTH` bigint(21) default NULL, - `DATA_LENGTH` bigint(21) default NULL, - `MAX_DATA_LENGTH` bigint(21) default NULL, - `INDEX_LENGTH` bigint(21) default NULL, - `DATA_FREE` bigint(21) default NULL, - `AUTO_INCREMENT` bigint(21) default NULL, - `CREATE_TIME` datetime default NULL, - `UPDATE_TIME` datetime default NULL, - `CHECK_TIME` datetime default NULL, - `TABLE_COLLATION` varchar(64) default NULL, - `CHECKSUM` bigint(21) default NULL, - `CREATE_OPTIONS` varchar(255) default NULL, - `TABLE_COMMENT` varchar(80) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'tables' -ORDER BY ordinal_position; -COUNT(*) -21 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'tables' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select -NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select - -Testcase 3.2.12.2 + 3.2.12.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -create database db_datadict; -CREATE USER 'user_1'@'localhost'; -GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.* -TO 'user_1'@'localhost' WITH GRANT OPTION; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -use db_datadict; -create table tb1(f1 int, f2 int, f3 int); -grant select on db_datadict.tb1 to 'user_1'@'localhost'; -GRANT ALL on db_datadict.tb1 to 'user_2'@'localhost' WITH GRANT OPTION; -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -CREATE TABLE tb2 (f1 DECIMAL); -CREATE TABLE tb3 (f1 TEXT); -GRANT SELECT ON db_datadict.tb3 to 'user_3'@'localhost'; -GRANT INSERT ON db_datadict.tb3 to 'user_2'@'localhost'; -CREATE VIEW v3 AS SELECT * FROM tb3; -GRANT SELECT ON db_datadict.v3 to 'user_3'@'localhost'; -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -connect(localhost,user_3,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL - -root@localhost db_datadict -SELECT * FROM information_schema.tables -WHERE table_schema = 'information_schema'; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL information_schema CHARACTER_SETS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATIONS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMNS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema COLUMN_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema KEY_COLUMN_USAGE SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema ROUTINES SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMATA SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema SCHEMA_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema STATISTICS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_CONSTRAINTS SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TABLE_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema TRIGGERS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema USER_PRIVILEGES SYSTEM VIEW MEMORY 0 Fixed NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -NULL information_schema VIEWS SYSTEM VIEW MyISAM 0 Dynamic NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL #CO# -SELECT * FROM information_schema.tables -WHERE NOT( table_schema = 'information_schema') AND NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT -NULL db_datadict tb1 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb2 BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict tb3 BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL db_datadict v3 VIEW NULL NULL NULL NULL #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss NULL NULL NULL VIEW -NULL mysql columns_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Column privileges -NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Database privileges -NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions -NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges -NULL mysql proc BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Stored Procedures -NULL mysql procs_priv BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Procedure privileges -NULL mysql tables_priv BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Table privileges -NULL mysql time_zone BASE TABLE MyISAM 10 Fixed 5 #ARL# #DL# #MDL# #IL# #DF# 6 YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zones -NULL mysql time_zone_leap_second BASE TABLE MyISAM 10 Fixed 22 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Leap seconds information for time zones -NULL mysql time_zone_name BASE TABLE MyISAM 10 Fixed 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone names -NULL mysql time_zone_transition BASE TABLE MyISAM 10 Fixed 393 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transitions -NULL mysql time_zone_transition_type BASE TABLE MyISAM 10 Fixed 31 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Time zone transition types -NULL mysql user BASE TABLE MyISAM 10 Dynamic 6 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Users and global privileges -NULL test t1 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t10 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t11 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t2 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t3 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t4 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t7 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t8 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test t9 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb1 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb3 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test tb4 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test1 tb2 BASE TABLE MyISAM 10 Dynamic 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -NULL test4 t6 BASE TABLE MyISAM 10 Fixed 10 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP TABLE db_datadict.tb1; -DROP TABLE db_datadict.tb3; -DROP VIEW db_datadict.v3; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.13.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC views; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -VIEW_DEFINITION longtext NO NULL -CHECK_OPTION varchar(8) NO -IS_UPDATABLE varchar(3) NO -DEFINER varchar(77) NO -SECURITY_TYPE varchar(7) NO -SHOW CREATE TABLE views; -Table Create Table -VIEWS CREATE TEMPORARY TABLE `VIEWS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `VIEW_DEFINITION` longtext NOT NULL, - `CHECK_OPTION` varchar(8) NOT NULL default '', - `IS_UPDATABLE` varchar(3) NOT NULL default '', - `DEFINER` varchar(77) NOT NULL default '', - `SECURITY_TYPE` varchar(7) NOT NULL default '' -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'views' -ORDER BY ordinal_position; -COUNT(*) -8 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'views' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select -NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select -NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select - -Testcase 3.2.13.2 + 3.2.13.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_no_views'@'localhost'; -USE db_datadict; -CREATE TABLE tb_401302(f1 INT, f2 INT, f3 INT); -CREATE VIEW v_granted_to_1 AS SELECT * FROM tb_401302; -CREATE VIEW v_granted_glob AS SELECT f2, f3 FROM tb_401302; -GRANT SELECT ON db_datadict.tb_401302 TO 'user_1'@'localhost'; -GRANT SELECT ON db_datadict.v_granted_to_1 TO 'user_1'@'localhost'; -GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_glob /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER -NULL db_datadict v_granted_to_1 /* ALGORITHM=UNDEFINED */ select `db_datadict`.`tb_401302`.`f1` AS `f1`,`db_datadict`.`tb_401302`.`f2` AS `f2`,`db_datadict`.`tb_401302`.`f3` AS `f3` from `db_datadict`.`tb_401302` NONE YES root@localhost DEFINER -connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER -connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -NULL db_datadict v_granted_glob NONE YES root@localhost DEFINER -NULL db_datadict v_granted_to_1 NONE YES root@localhost DEFINER -connect(localhost,user_no_views,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.views; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE - -root@localhost db_datadict -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_no_views'@'localhost'; -DROP VIEW v_granted_to_1; -DROP TABLE tb_401302; -DROP VIEW v_granted_glob; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.14.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC statistics; -Field Type Null Key Default Extra -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -TABLE_NAME varchar(64) NO -NON_UNIQUE bigint(1) NO 0 -INDEX_SCHEMA varchar(64) NO -INDEX_NAME varchar(64) NO -SEQ_IN_INDEX bigint(2) NO 0 -COLUMN_NAME varchar(64) NO -COLLATION varchar(1) YES NULL -CARDINALITY bigint(21) YES NULL -SUB_PART bigint(3) YES NULL -PACKED varchar(10) YES NULL -NULLABLE varchar(3) NO -INDEX_TYPE varchar(16) NO -COMMENT varchar(16) YES NULL -SHOW CREATE TABLE statistics; -Table Create Table -STATISTICS CREATE TEMPORARY TABLE `STATISTICS` ( - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `TABLE_NAME` varchar(64) NOT NULL default '', - `NON_UNIQUE` bigint(1) NOT NULL default '0', - `INDEX_SCHEMA` varchar(64) NOT NULL default '', - `INDEX_NAME` varchar(64) NOT NULL default '', - `SEQ_IN_INDEX` bigint(2) NOT NULL default '0', - `COLUMN_NAME` varchar(64) NOT NULL default '', - `COLLATION` varchar(1) default NULL, - `CARDINALITY` bigint(21) default NULL, - `SUB_PART` bigint(3) default NULL, - `PACKED` varchar(10) default NULL, - `NULLABLE` varchar(3) NOT NULL default '', - `INDEX_TYPE` varchar(16) NOT NULL default '', - `COMMENT` varchar(16) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'statistics' -ORDER BY ordinal_position; -COUNT(*) -15 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'statistics' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select -NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select -NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select -NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select -NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select -NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select -NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select -NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select - -Testcase 3.2.14.2 + 3.2.14.3: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -CREATE DATABASE db_datadict; -CREATE DATABASE db_datadict_2; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -USE db_datadict; -create table tb_6_401402_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_6_401402_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict.tb_6_401402_1 to 'user_1'@'localhost' WITH GRANT OPTION; -USE db_datadict_2; -create table tb_2_1(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -create table tb_2_2(f1 int not null, primary key(f1), f2 int, index f2_ind(f2)); -grant select on db_datadict_2.tb_2_1 to 'user_1'@'localhost'; -FLUSH PRIVILEGES; -connect(localhost,user_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -connect(localhost,user_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT - -root@localhost db_datadict_2 -REVOKE SELECT ON db_datadict.tb_6_401402_1 FROM 'user_1'@'localhost'; -SELECT * FROM information_schema.statistics -WHERE NOT (table_schema = 'mysql' AND table_name LIKE 'help_%'); -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict tb_6_401402_2 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_2 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_2 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_2 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 4 Table_name A NULL NULL NULL BTREE -NULL mysql columns_priv 0 mysql PRIMARY 5 Column_name A 0 NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql db 0 mysql PRIMARY 3 User A 2 NULL NULL BTREE -NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE -NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 2 name A NULL NULL NULL BTREE -NULL mysql proc 0 mysql PRIMARY 3 type A 0 NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 4 Routine_name A NULL NULL NULL BTREE -NULL mysql procs_priv 0 mysql PRIMARY 5 Routine_type A 0 NULL NULL BTREE -NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 2 Db A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 3 User A NULL NULL NULL BTREE -NULL mysql tables_priv 0 mysql PRIMARY 4 Table_name A 2 NULL NULL BTREE -NULL mysql tables_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE -NULL mysql time_zone 0 mysql PRIMARY 1 Time_zone_id A 5 NULL NULL BTREE -NULL mysql time_zone_leap_second 0 mysql PRIMARY 1 Transition_time A 22 NULL NULL BTREE -NULL mysql time_zone_name 0 mysql PRIMARY 1 Name A 6 NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition 0 mysql PRIMARY 2 Transition_time A 393 NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 1 Time_zone_id A NULL NULL NULL BTREE -NULL mysql time_zone_transition_type 0 mysql PRIMARY 2 Transition_type_id A 31 NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE -NULL mysql user 0 mysql PRIMARY 2 User A 5 NULL NULL BTREE - -user_1@localhost test -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT -NULL db_datadict tb_6_401402_1 0 db_datadict PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict tb_6_401402_1 1 db_datadict f2_ind 1 f2 A NULL NULL NULL YES BTREE -NULL db_datadict_2 tb_2_1 0 db_datadict_2 PRIMARY 1 f1 A 0 NULL NULL BTREE -NULL db_datadict_2 tb_2_1 1 db_datadict_2 f2_ind 1 f2 A NULL NULL NULL YES BTREE - -user_2@localhost test -SELECT * FROM information_schema.statistics; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT - -root@localhost db_datadict_2 -USE db_datadict; -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP TABLE tb_6_401402_1; -DROP TABLE tb_6_401402_2; -USE test; -DROP DATABASE db_datadict; - -Testcase 3.2.15.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC schema_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -TABLE_SCHEMA varchar(64) NO -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE schema_privileges; -Table Create Table -SCHEMA_PRIVILEGES CREATE TEMPORARY TABLE `SCHEMA_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `TABLE_SCHEMA` varchar(64) NOT NULL default '', - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schema_privileges' -ORDER BY ordinal_position; -COUNT(*) -5 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'schema_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.15.2: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -create database db_datadict; -create database db_datadict_2; -CREATE USER 'u_6_401502'@'localhost'; -use db_datadict; -create table res_6_401502(f1 int, f2 int, f3 int); -grant insert on db_datadict.* to 'u_6_401502'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401502'@'localhost' NULL db_datadict INSERT NO -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -connect(localhost,u_6_401502,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401502'@'localhost' NULL db_datadict INSERT NO -use db_datadict; - -root@localhost db_datadict -DROP USER 'u_6_401502'@'localhost'; -drop table res_6_401502; -use test; -drop database db_datadict; -drop database db_datadict_2; - -Testcase 3.2.15.3 + 3.2.15.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_2; -create database db_datadict; -create database db_datadict_2; -CREATE USER 'u_6_401503_1'@'localhost'; -CREATE USER 'u_6_401503_2'@'localhost'; -CREATE USER 'u_6_401503_3'@'localhost'; -use db_datadict; -create table res_6_401503_1(f1 int, f2 int, f3 int); -use db_datadict_2; -create table res_6_401503_2(f1 int, f2 int, f3 int); -grant update on db_datadict.* to 'u_6_401503_1'@'localhost'; -grant delete on db_datadict_2.* to 'u_6_401503_2'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO -'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO -''@'%' NULL test SELECT NO -''@'%' NULL test INSERT NO -''@'%' NULL test UPDATE NO -''@'%' NULL test DELETE NO -''@'%' NULL test CREATE NO -''@'%' NULL test DROP NO -''@'%' NULL test REFERENCES NO -''@'%' NULL test INDEX NO -''@'%' NULL test ALTER NO -''@'%' NULL test CREATE TEMPORARY TABLES NO -''@'%' NULL test LOCK TABLES NO -''@'%' NULL test CREATE VIEW NO -''@'%' NULL test SHOW VIEW NO -''@'%' NULL test CREATE ROUTINE NO -''@'%' NULL test\_% SELECT NO -''@'%' NULL test\_% INSERT NO -''@'%' NULL test\_% UPDATE NO -''@'%' NULL test\_% DELETE NO -''@'%' NULL test\_% CREATE NO -''@'%' NULL test\_% DROP NO -''@'%' NULL test\_% REFERENCES NO -''@'%' NULL test\_% INDEX NO -''@'%' NULL test\_% ALTER NO -''@'%' NULL test\_% CREATE TEMPORARY TABLES NO -''@'%' NULL test\_% LOCK TABLES NO -''@'%' NULL test\_% CREATE VIEW NO -''@'%' NULL test\_% SHOW VIEW NO -''@'%' NULL test\_% CREATE ROUTINE NO -connect(localhost,u_6_401503_1,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_1'@'localhost' NULL db_datadict UPDATE NO -connect(localhost,u_6_401503_2,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE -'u_6_401503_2'@'localhost' NULL db_datadict_2 DELETE NO -connect(localhost,u_6_401503_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.schema_privileges; -GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE - -root@localhost db_datadict_2 -use db_datadict; -DROP USER 'u_6_401503_1'@'localhost'; -DROP USER 'u_6_401503_2'@'localhost'; -DROP USER 'u_6_401503_3'@'localhost'; -drop table res_6_401503_1; -use db_datadict_2; -drop table res_6_401503_2; -use test; -drop database db_datadict; -drop database db_datadict_2; - -Testcase 3.2.16.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC user_privileges; -Field Type Null Key Default Extra -GRANTEE varchar(81) NO -TABLE_CATALOG varchar(4096) YES NULL -PRIVILEGE_TYPE varchar(64) NO -IS_GRANTABLE varchar(3) NO -SHOW CREATE TABLE user_privileges; -Table Create Table -USER_PRIVILEGES CREATE TEMPORARY TABLE `USER_PRIVILEGES` ( - `GRANTEE` varchar(81) NOT NULL default '', - `TABLE_CATALOG` varchar(4096) default NULL, - `PRIVILEGE_TYPE` varchar(64) NOT NULL default '', - `IS_GRANTABLE` varchar(3) NOT NULL default '' -) ENGINE=MEMORY DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'user_privileges' -ORDER BY ordinal_position; -COUNT(*) -4 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'user_privileges' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select -NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select - -Testcase 3.2.16.2 + 3.2.16.3 + 3.2.16.4: --------------------------------------------------------------------------------- -DROP DATABASE IF EXISTS db_datadict; -CREATE DATABASE db_datadict; -CREATE USER 'user_1'@'localhost'; -CREATE USER 'user_2'@'localhost'; -CREATE USER 'user_3'@'localhost'; -GRANT SELECT ON db_datadict.* TO 'user_1'@'localhost'; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; -GRANT INSERT ON *.* TO 'user_2'@'localhost'; -GRANT UPDATE ON *.* TO 'user_2'@'localhost'; -FLUSH PRIVILEGES; - -FIXME (see Bug 12269) Here we expect more than only for user_1 ----------------------------------------------------------------------- -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -add GRANT OPTION db_datadict.* to user_1 ----------------------------------------- -GRANT UPDATE ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; - -FIXME (see Bug 12269) Here the is missing for the GRANT OPTION for user_1 -------------------------------------------------------------------------------- -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -FLUSH PRIVILEGES; -connect(localhost,user_1,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' - -Now add SELECT on *.* to user_1 -------------------------------- - -root@localhost information_schema -GRANT SELECT ON *.* TO 'user_1'@'localhost'; - -Here is shown correctly for user_1 ------------------------------------------------ -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION -FLUSH PRIVILEGES; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL SELECT YES -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 Y N N N N N N N N N Y N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT SELECT ON *.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT, UPDATE ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -connect(localhost,user_2,,db_datadict,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_2@localhost -GRANT INSERT, UPDATE ON *.* TO 'user_2'@'localhost' -connect(localhost,user_3,,test,MYSQL_PORT,MYSQL_SOCK); -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_3'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_3@localhost -GRANT USAGE ON *.* TO 'user_3'@'localhost' - -revoke privileges from user_1 ------------------------------ - -root@localhost information_schema -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' - -user_1@localhost db_datadict -CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_55' - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_66' - -add ALL on db_datadict.* (and select on mysql.user) to user_1 -------------------------------------------------------------- - -root@localhost information_schema -GRANT ALL ON db_datadict.* TO 'user_1'@'localhost' WITH GRANT OPTION; -GRANT SELECT ON mysql.user TO 'user_1'@'localhost'; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); -ERROR 42000: CREATE command denied to user 'user_1'@'localhost' for table 'tb_56' -USE db_datadict; - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -GRANT ALL PRIVILEGES ON `db_datadict`.* TO 'user_1'@'localhost' WITH GRANT OPTION -GRANT SELECT ON `mysql`.`user` TO 'user_1'@'localhost' -CREATE TABLE tb_57 ( c1 TEXT ); - -revoke privileges from user_1 ------------------------------ - -root@localhost information_schema -REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user_1'@'localhost'; -FLUSH PRIVILEGES; -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -'user_2'@'localhost' NULL INSERT NO -'user_2'@'localhost' NULL UPDATE NO -'user_3'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections -localhost user_1 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_2 N Y Y N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -localhost user_3 N N N N N N N N N N N N N N N N N N N N N N N N N N 0 0 0 0 -SHOW GRANTS; -Grants for root@localhost -GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION - -user_1@localhost db_datadict -SELECT * FROM information_schema.user_privileges -WHERE grantee LIKE "%user%" - ORDER BY grantee, table_catalog, privilege_type; -GRANTEE TABLE_CATALOG PRIVILEGE_TYPE IS_GRANTABLE -'user_1'@'localhost' NULL USAGE NO -SELECT * FROM mysql.user WHERE user LIKE "%user%" ORDER BY host, user; -ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 'user' -SHOW GRANTS; -Grants for user_1@localhost -GRANT USAGE ON *.* TO 'user_1'@'localhost' -CREATE TABLE db_datadict.tb_58 ( c1 TEXT ); -USE db_datadict; -ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_datadict' -CREATE TABLE db_datadict.tb_59 ( c1 TEXT ); - -root@localhost information_schema -DROP USER 'user_1'@'localhost'; -DROP USER 'user_2'@'localhost'; -DROP USER 'user_3'@'localhost'; -DROP DATABASE IF EXISTS db_datadict; - -Testcase 3.2.17: Checks on Performance - not here in this script! --------------------------------------------------------------------------------- - -Testcase 3.2.18.1: --------------------------------------------------------------------------------- -USE information_schema; -DESC triggers; -Field Type Null Key Default Extra -TRIGGER_CATALOG varchar(4096) YES NULL -TRIGGER_SCHEMA varchar(64) NO -TRIGGER_NAME varchar(64) NO -EVENT_MANIPULATION varchar(6) NO -EVENT_OBJECT_CATALOG varchar(4096) YES NULL -EVENT_OBJECT_SCHEMA varchar(64) NO -EVENT_OBJECT_TABLE varchar(64) NO -ACTION_ORDER bigint(4) NO 0 -ACTION_CONDITION longtext YES NULL -ACTION_STATEMENT longtext NO NULL -ACTION_ORIENTATION varchar(9) NO -ACTION_TIMING varchar(6) NO -ACTION_REFERENCE_OLD_TABLE varchar(64) YES NULL -ACTION_REFERENCE_NEW_TABLE varchar(64) YES NULL -ACTION_REFERENCE_OLD_ROW varchar(3) NO -ACTION_REFERENCE_NEW_ROW varchar(3) NO -CREATED datetime YES NULL -SQL_MODE longtext NO NULL -DEFINER longtext NO NULL -SHOW CREATE TABLE triggers; -Table Create Table -TRIGGERS CREATE TEMPORARY TABLE `TRIGGERS` ( - `TRIGGER_CATALOG` varchar(4096) default NULL, - `TRIGGER_SCHEMA` varchar(64) NOT NULL default '', - `TRIGGER_NAME` varchar(64) NOT NULL default '', - `EVENT_MANIPULATION` varchar(6) NOT NULL default '', - `EVENT_OBJECT_CATALOG` varchar(4096) default NULL, - `EVENT_OBJECT_SCHEMA` varchar(64) NOT NULL default '', - `EVENT_OBJECT_TABLE` varchar(64) NOT NULL default '', - `ACTION_ORDER` bigint(4) NOT NULL default '0', - `ACTION_CONDITION` longtext, - `ACTION_STATEMENT` longtext NOT NULL, - `ACTION_ORIENTATION` varchar(9) NOT NULL default '', - `ACTION_TIMING` varchar(6) NOT NULL default '', - `ACTION_REFERENCE_OLD_TABLE` varchar(64) default NULL, - `ACTION_REFERENCE_NEW_TABLE` varchar(64) default NULL, - `ACTION_REFERENCE_OLD_ROW` varchar(3) NOT NULL default '', - `ACTION_REFERENCE_NEW_ROW` varchar(3) NOT NULL default '', - `CREATED` datetime default NULL, - `SQL_MODE` longtext NOT NULL, - `DEFINER` longtext NOT NULL -) ENGINE=MyISAM DEFAULT CHARSET=utf8 -SELECT COUNT(*) FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'triggers' -ORDER BY ordinal_position; -COUNT(*) -19 -SELECT * FROM information_schema.columns -WHERE table_schema = 'information_schema' - AND table_name = 'triggers' -ORDER BY ordinal_position; -TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT -NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 4096 12288 NULL NULL utf8 utf8_general_ci varchar(4096) select -NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select -NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select -NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select -NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select -NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select -NULL information_schema TRIGGERS SQL_MODE 18 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select -NULL information_schema TRIGGERS DEFINER 19 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select - -Testcase 3.2.18.2 + 3.2.18.3: --------------------------------------------------------------------------------- - -Testcase 3.2.19.1: --------------------------------------------------------------------------------- - -checking a table that will be implemented later ------------------------------------------------ -DESC parameters; -ERROR 42S02: Unknown table 'parameters' in information_schema - -Testcase 3.2.20.1: --------------------------------------------------------------------------------- - -checking a table that will be implemented later ------------------------------------------------ -DESC referential_constraints; -ERROR 42S02: Unknown table 'referential_constraints' in information_schema - -*** End of Data Dictionary Tests *** --------------------------------------------------------------------------------- -DROP TABLE IF EXISTS test.tb1; -DROP TABLE IF EXISTS test.tb2; -DROP TABLE IF EXISTS test.tb3; -DROP TABLE IF EXISTS test.tb4; -DROP TABLE IF EXISTS test.t1; -DROP TABLE IF EXISTS test.t2; -DROP TABLE IF EXISTS test.t3; -DROP TABLE IF EXISTS test.t4; -DROP TABLE IF EXISTS test.t7; -DROP TABLE IF EXISTS test.t8; -DROP TABLE IF EXISTS test.t9; -DROP TABLE IF EXISTS test.t10; -DROP TABLE IF EXISTS test.t11; -DROP DATABASE IF EXISTS test1; -DROP DATABASE IF EXISTS test4; -DROP DATABASE IF EXISTS db_datadict; -DROP DATABASE IF EXISTS db_datadict_1; -DROP DATABASE IF EXISTS db_datadict_2; diff --git a/mysql-test/suite/funcs_1/r/myisam__load.result b/mysql-test/suite/funcs_1/r/myisam__load.result deleted file mode 100644 index c1b9c89b257..00000000000 --- a/mysql-test/suite/funcs_1/r/myisam__load.result +++ /dev/null @@ -1 +0,0 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); diff --git a/mysql-test/suite/funcs_1/r/myisam_bitdata.result b/mysql-test/suite/funcs_1/r/myisam_bitdata.result index 8d78b70c333..917157fcdae 100644 --- a/mysql-test/suite/funcs_1/r/myisam_bitdata.result +++ b/mysql-test/suite/funcs_1/r/myisam_bitdata.result @@ -1,76 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -drop table if exists tb4 ; -create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f227 VARBINARY(64), -f228 VARBINARY(27), -f229 VARBINARY(64), -f230 VARBINARY(192), -f231 VARBINARY(192), -f232 VARBINARY(27), -f233 VARBINARY(64), -f234 VARBINARY(192), -f235 char(255) unicode, -f236 char(60) ascii, -f237 char(255) binary, -f238 varchar(0) binary, -f239 varbinary(1000), -f240 varchar(120) unicode, -f241 char(100) unicode, -f242 bit(30) -) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ; NOT YET IMPLEMENTED: bitdata tests -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_cursors.result b/mysql-test/suite/funcs_1/r/myisam_cursors.result index 35b567105f7..9f20e51204b 100644 --- a/mysql-test/suite/funcs_1/r/myisam_cursors.result +++ b/mysql-test/suite/funcs_1/r/myisam_cursors.result @@ -1,84 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -drop table if exists tb1 ; -create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, -f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, -f58 numeric (64) not null DEFAULT 99 -) engine = myisam; -Warnings: -Note 1265 Data truncated for column 'f33' at row 1 -Note 1265 Data truncated for column 'f34' at row 1 -Note 1265 Data truncated for column 'f35' at row 1 -Note 1265 Data truncated for column 'f36' at row 1 -Note 1265 Data truncated for column 'f37' at row 1 -Note 1265 Data truncated for column 'f38' at row 1 -Note 1265 Data truncated for column 'f39' at row 1 -Note 1265 Data truncated for column 'f40' at row 1 -Note 1265 Data truncated for column 'f41' at row 1 -Note 1265 Data truncated for column 'f42' at row 1 -Note 1265 Data truncated for column 'f43' at row 1 -Note 1265 Data truncated for column 'f44' at row 1 -Note 1265 Data truncated for column 'f45' at row 1 -Note 1265 Data truncated for column 'f47' at row 1 -Note 1265 Data truncated for column 'f49' at row 1 -Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ; NOT YET IMPLEMENTED: cursor tests -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result index 7a16c10859b..aff27fbabc4 100755 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result index e20c32967e9..0057b7ef229 100755 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result index 11b1d3873b3..a85c4347962 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result index e4330211306..0865d77e4f0 100755 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result index 4dda7ef69ae..3e612817200 100755 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result index 33a51a7edbe..b24e222fc4b 100755 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result @@ -1,8 +1,6 @@ --source suite/funcs_1/storedproc/load_sp_tb.inc -------------------------------------------------------------------------------- -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_0102.result b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result index 6dd56a1e912..08ad956b167 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_0102.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -362,3 +361,4 @@ select @test_var1, @test_var2, @test_var3; trig1_b trig1_a trig2 drop database trig_db1; drop database trig_db2; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_03.result b/mysql-test/suite/funcs_1/r/myisam_trig_03.result index 3dbfa77b464..42e984245e3 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_03.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_03.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -749,3 +748,4 @@ drop database if exists priv_db; drop user test_yesprivs@localhost; drop user test_noprivs@localhost; drop user test_noprivs; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_0407.result b/mysql-test/suite/funcs_1/r/myisam_trig_0407.result index 16d91726e30..4e578888fe5 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_0407.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_0407.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -478,3 +477,4 @@ Testcase 3.5.7.17 (see Testcase 3.5.1.1) drop user test_general@localhost; drop user test_general; drop user test_super@localhost; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_08.result b/mysql-test/suite/funcs_1/r/myisam_trig_08.result index 8a13e91d71d..bab8d0f2ddd 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_08.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_08.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -497,3 +496,4 @@ Testcase 3.5.8.7: (Disabled as a result of bug _____) drop user test_general@localhost; drop user test_general; drop user test_super@localhost; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_09.result b/mysql-test/suite/funcs_1/r/myisam_trig_09.result index b7a5933e2f7..7cbcd8a6862 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_09.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_09.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -269,3 +268,4 @@ drop trigger trg6c; Testcase 3.5.9.14: (implied in previous tests) ---------------------------------------------- +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result index 7867fc9f9e2..c991fb67ec1 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb3 ; create table tb3 ( @@ -404,3 +403,4 @@ drop table t1; drop table t2; drop table t3; drop table t4; +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/r/myisam_views.result b/mysql-test/suite/funcs_1/r/myisam_views.result index 6f80aa12097..751c2c2be3b 100644 --- a/mysql-test/suite/funcs_1/r/myisam_views.result +++ b/mysql-test/suite/funcs_1/r/myisam_views.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); USE test; drop table if exists tb2 ; create table tb2 ( @@ -11447,4 +11446,5 @@ DROP VIEW IF EXISTS v1_secondview; DROP VIEW IF EXISTS v2; DROP DATABASE IF EXISTS test2; DROP DATABASE IF EXISTS test3; -DROP DATABASE IF EXISTS test1; +DROP DATABASE test1; +DROP TABLE test.tb2; diff --git a/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc index 6dafa23f840..b7f7b2cae02 100644 --- a/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc +++ b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc @@ -12,9 +12,6 @@ let $message= --source suite/funcs_1/storedproc/load_sp_tb.inc; --disable_abort_on_error --enable_query_log -SET @@global.max_heap_table_size=4294967295; -SET @@session.max_heap_table_size=4294967295; - # use the same .inc to cleanup before and after the test --source suite/funcs_1/storedproc/cleanup_sp_tb.inc diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_07.inc old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_08.inc old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_08_show.inc old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/charset_collation_1.test b/mysql-test/suite/funcs_1/t/charset_collation_1.test new file mode 100644 index 00000000000..7415220455e --- /dev/null +++ b/mysql-test/suite/funcs_1/t/charset_collation_1.test @@ -0,0 +1,30 @@ +# Tests checking the content of the information_schema tables +# character_sets +# collations +# collation_character_set_applicability +# +# Content variant 1 which should fit to +# Enterprise or Classic builds (binaries provided by MySQL) +# Pushbuilds +# Source builds without "max" +# +# Please read suite/funcs_1/datadict/charset_collation.inc for +# additional information. +# +# Created: +# 2007-12-18 mleich - remove the unstable character_set/collation subtests +# from include/datadict-master.inc +# - create this new test +# + +if (`SELECT EXISTS (SELECT 1 FROM information_schema.collations + WHERE collation_name = 'utf8_general_cs') + OR ( @@version_comment NOT LIKE '%Source%' + AND @@version_comment NOT LIKE '%Enterprise%' + AND @@version_comment NOT LIKE '%Classic%' + AND @@version_comment NOT LIKE '%Pushbuild%')`) +{ + skip Test needs Enterprise, Classic , Pushbuild or Source-without-max build; +} + +--source suite/funcs_1/datadict/charset_collation.inc diff --git a/mysql-test/suite/funcs_1/t/charset_collation_2.test b/mysql-test/suite/funcs_1/t/charset_collation_2.test new file mode 100644 index 00000000000..d4924953b7d --- /dev/null +++ b/mysql-test/suite/funcs_1/t/charset_collation_2.test @@ -0,0 +1,24 @@ +# Tests checking the content of the information_schema tables +# character_sets +# collations +# collation_character_set_applicability +# +# Content variant 2 (compile from source with "max") +# +# Please read suite/funcs_1/datadict/charset_collation.inc for +# additional information. +# +# Created: +# 2007-12-18 mleich - remove the unstable character_set/collation subtests +# from include/datadict-master.inc +# - create this new test +# + +if (`SELECT @@version_comment NOT LIKE '%Source%' + OR NOT EXISTS (SELECT 1 FROM information_schema.collations + WHERE collation_name = 'utf8_general_cs')`) +{ + skip Test needs Source build with "max"; +} + +--source suite/funcs_1/datadict/charset_collation.inc diff --git a/mysql-test/suite/funcs_1/t/charset_collation_3.test b/mysql-test/suite/funcs_1/t/charset_collation_3.test new file mode 100644 index 00000000000..0701b96896f --- /dev/null +++ b/mysql-test/suite/funcs_1/t/charset_collation_3.test @@ -0,0 +1,24 @@ +# Tests checking the content of the information_schema tables +# character_sets +# collations +# collation_character_set_applicability +# +# Content variant 3 which should fit to +# Community and Cluster builds (binaries provided by MySQL) +# +# Please read suite/funcs_1/datadict/charset_collation.inc for +# additional information. +# +# Created: +# 2007-12-18 mleich - remove the unstable character_set/collation subtests +# from include/datadict-master.inc +# - create this new test +# + +if (`SELECT @@version_comment NOT LIKE '%Community%' + AND @@version_comment NOT LIKE '%Cluster%'`) +{ + skip Test needs Community or Cluster build; +} + +--source suite/funcs_1/datadict/charset_collation.inc diff --git a/mysql-test/suite/funcs_1/t/datadict_help_tables_build.test b/mysql-test/suite/funcs_1/t/datadict_help_tables_build.test deleted file mode 100644 index 370fcf0375c..00000000000 --- a/mysql-test/suite/funcs_1/t/datadict_help_tables_build.test +++ /dev/null @@ -1,73 +0,0 @@ -###### suite/funcs_1/t/datadict_help_tables_dev.test ##### -# -# Check the information about the help tables within -# INFORMATION_SCHEMA.TABLES/INFORMATION_SCHEMA.STATISTICS -# -# Variant for use during build tests (non empty help tables) -# -# Creation: -# 2007-08-25 mleich Add this test as compensation for the -# checks removed within datadict_master.inc. -# - -let $c_help_category= `SELECT COUNT(*) FROM mysql.help_category`; -let $c_help_keyword= `SELECT COUNT(*) FROM mysql.help_keyword`; -let $c_help_relation= `SELECT COUNT(*) FROM mysql.help_relation`; -let $c_help_topic= `SELECT COUNT(*) FROM mysql.help_topic`; - -if (`SELECT $c_help_category + $c_help_keyword + $c_help_relation - + $c_help_topic = 0`) -{ - --skip # Test requires non empty help tables = Build test configuration -} - -# We reach this point when we run on a configuration with at least one -# non empty help table. -# 2007-08 MySQL 5.0 row count of the help tables -# help_category help_keyword help_relation help_topic -# 36 395 809 466 -# Let's assume for all help tables that their content never dramatic -# shrinks and do some plausibility checks. -let $limit_help_category = 30; -let $limit_help_keyword = 320; -let $limit_help_relation = 640; -let $limit_help_topic = 380; -if (`SELECT $c_help_category < $limit_help_category - OR $c_help_keyword < $limit_help_keyword - OR $c_help_relation < $limit_help_relation - OR $c_help_topic < $limit_help_topic`) -{ - --echo # The row count within the help tables is unexepected small. - SELECT COUNT(*), 'exepected: >= $limit_help_category' FROM mysql.help_category; - SELECT COUNT(*), 'exepected: >= $limit_help_keyword' FROM mysql.help_keyword; - SELECT COUNT(*), 'exepected: >= $limit_help_relation' FROM mysql.help_relation; - SELECT COUNT(*), 'exepected: >= $limit_help_topic' FROM mysql.help_topic; - --echo # Either the current help table content (build problem? or - --echo # the expected minimum row count within this script is wrong. - --echo # Abort - exit; -} - -# Enforce a static number of rows within the help tables. -let $limit= `SELECT $c_help_category - $limit_help_category`; ---replace_result $limit -eval DELETE FROM mysql.help_category LIMIT $limit; -# -let $limit= `SELECT $c_help_keyword - $limit_help_keyword`; ---replace_result $limit -eval DELETE FROM mysql.help_keyword LIMIT $limit; -# -let $limit= `SELECT $c_help_relation - $limit_help_relation`; ---replace_result $limit -eval DELETE FROM mysql.help_relation LIMIT $limit; -# -let $limit= `SELECT $c_help_topic - $limit_help_topic`; ---replace_result $limit -eval DELETE FROM mysql.help_topic LIMIT $limit; - - ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM INFORMATION_SCHEMA.TABLES -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; -SELECT * FROM INFORMATION_SCHEMA.STATISTICS -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; diff --git a/mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test b/mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test deleted file mode 100644 index 3342fbca4be..00000000000 --- a/mysql-test/suite/funcs_1/t/datadict_help_tables_dev.test +++ /dev/null @@ -1,27 +0,0 @@ -###### suite/funcs_1/t/datadict_help_tables_dev.test ##### -# -# Check the information about the help tables within -# INFORMATION_SCHEMA.TABLES/INFORMATION_SCHEMA.STATISTICS -# -# Variant for use during development (empty help tables) -# -# Creation: -# 2007-08-25 mleich Add this test as compensation for the -# checks removed within datadict_master.inc. -# - -let $c_help_category= `SELECT COUNT(*) FROM mysql.help_category`; -let $c_help_keyword= `SELECT COUNT(*) FROM mysql.help_keyword`; -let $c_help_relation= `SELECT COUNT(*) FROM mysql.help_relation`; -let $c_help_topic= `SELECT COUNT(*) FROM mysql.help_topic`; -if (`SELECT $c_help_category + $c_help_keyword + $c_help_relation - + $c_help_topic > 0`) -{ - --skip # Test requires empty help tables = Development test configuration -} - ---replace_column 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "YYYY-MM-DD hh:mm:ss" 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" -SELECT * FROM INFORMATION_SCHEMA.TABLES -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; -SELECT * FROM INFORMATION_SCHEMA.STATISTICS -WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME LIKE 'help_%'; diff --git a/mysql-test/suite/funcs_1/t/innodb__datadict.test b/mysql-test/suite/funcs_1/t/innodb__datadict.test deleted file mode 100644 index 587ab1d6588..00000000000 --- a/mysql-test/suite/funcs_1/t/innodb__datadict.test +++ /dev/null @@ -1,11 +0,0 @@ -#### suite/funcs_1/t/datadict_innodb.test -# ---source include/have_innodb.inc - -let $engine_type= innodb; -# $OTHER_ENGINE_TYPE must be -# - <> $engine_type -# - all time available like MyISAM or MEMORY -let $OTHER_ENGINE_TYPE= MEMORY; - ---source suite/funcs_1/datadict/datadict_master.inc diff --git a/mysql-test/suite/funcs_1/t/innodb__load.test b/mysql-test/suite/funcs_1/t/innodb__load.test deleted file mode 100644 index d03672b31ff..00000000000 --- a/mysql-test/suite/funcs_1/t/innodb__load.test +++ /dev/null @@ -1,47 +0,0 @@ -##### suite/funcs_1/funcs_1/t/innodb__load.test - -# InnoDB tables should be used -# -# 1. Check if InnoDB is available ---source include/have_innodb.inc -# 2. Set $engine_type -let $engine_type= innodb; - -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means all objects have to be (re)created within the current script. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means the current script must not (re)create any object and every -# testscript/case (re)creates only the objects it needs. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb1.inc - --source suite/funcs_1/include/innodb_tb2.inc - --source suite/funcs_1/include/innodb_tb3.inc - --source suite/funcs_1/include/innodb_tb4.inc - - # The database test1 is needed for the VIEW testcases - --disable_warnings - DROP DATABASE IF EXISTS test1; - --enable_warnings - CREATE DATABASE test1; - USE test1; - --source suite/funcs_1/include/innodb_tb2.inc - USE test; - - # These tables are needed for the stored procedure testscases - --source suite/funcs_1/include/sp_tb.inc - - let $run= 0; -} - diff --git a/mysql-test/suite/funcs_1/t/innodb_bitdata.test b/mysql-test/suite/funcs_1/t/innodb_bitdata.test index 24d5f077d96..b178aac598c 100644 --- a/mysql-test/suite/funcs_1/t/innodb_bitdata.test +++ b/mysql-test/suite/funcs_1/t/innodb_bitdata.test @@ -7,28 +7,11 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +let $message= NOT YET IMPLEMENTED: bitdata tests; +--source include/show_msg80.inc +exit; -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb4.inc - - let $run= 0; -} - +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb4.inc --source suite/funcs_1/bitdata/bitdata_master.test - diff --git a/mysql-test/suite/funcs_1/t/innodb_cursors.test b/mysql-test/suite/funcs_1/t/innodb_cursors.test index 8d77045f2e7..a75e5cbba05 100644 --- a/mysql-test/suite/funcs_1/t/innodb_cursors.test +++ b/mysql-test/suite/funcs_1/t/innodb_cursors.test @@ -7,28 +7,13 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +let $message= NOT YET IMPLEMENTED: cursor tests; +--source include/show_msg80.inc +exit; -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb1.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb1.inc --source suite/funcs_1/cursors/cursors_master.test diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_02.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_02.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_03.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_03.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_06.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_06.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_07.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_07.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_08.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_08.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc_10.test b/mysql-test/suite/funcs_1/t/innodb_storedproc_10.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_0102.test b/mysql-test/suite/funcs_1/t/innodb_trig_0102.test index edd706b9e5d..c1da8f5448e 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_0102.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_0102.test @@ -7,28 +7,10 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb3.inc -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb3.inc - - let $run= 0; -} - --source suite/funcs_1/triggers/triggers_0102.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_03.test b/mysql-test/suite/funcs_1/t/innodb_trig_03.test index 5f931e1be47..374bcf59a37 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_03.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_03.test @@ -7,28 +7,10 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb3.inc -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb3.inc - - let $run= 0; -} - --source suite/funcs_1/triggers/triggers_03.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_0407.test b/mysql-test/suite/funcs_1/t/innodb_trig_0407.test index da8a074bab6..d6b7d4a9942 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_0407.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_0407.test @@ -7,28 +7,10 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb3.inc --source suite/funcs_1/triggers/triggers_0407.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_08.test b/mysql-test/suite/funcs_1/t/innodb_trig_08.test index 05aabe8b0f5..a4ac2db0955 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_08.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_08.test @@ -7,28 +7,10 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb3.inc -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb3.inc - - let $run= 0; -} - --source suite/funcs_1/triggers/triggers_08.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_09.test b/mysql-test/suite/funcs_1/t/innodb_trig_09.test index ac21142779e..40a0f145ef0 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_09.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_09.test @@ -7,28 +7,10 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb3.inc -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb3.inc - - let $run= 0; -} - --source suite/funcs_1/triggers/triggers_09.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test b/mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test index a507a488ca9..f778b097a1b 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_1011ext.test @@ -7,28 +7,10 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb3.inc -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb3.inc - - let $run= 0; -} - --source suite/funcs_1/triggers/triggers_1011ext.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_frkey.test b/mysql-test/suite/funcs_1/t/innodb_trig_frkey.test index e99273672cd..57298fd9056 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_frkey.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_frkey.test @@ -7,28 +7,10 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb3.inc -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb3.inc - - let $run= 0; -} - --source suite/funcs_1/triggers/trig_frkey.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/innodb_views.test b/mysql-test/suite/funcs_1/t/innodb_views.test index 1a835779762..dcab8ec305b 100644 --- a/mysql-test/suite/funcs_1/t/innodb_views.test +++ b/mysql-test/suite/funcs_1/t/innodb_views.test @@ -7,40 +7,18 @@ # 2. Set $engine_type let $engine_type= innodb; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/innodb_tb2.inc +--disable_warnings +DROP DATABASE IF EXISTS test1; +--enable_warnings +CREATE DATABASE test1; +USE test1; +--source suite/funcs_1/include/innodb_tb2.inc +USE test; -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -let $run= `SELECT @NO_REFRESH = 0`; -if ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/innodb_tb2.inc - --disable_warnings - DROP DATABASE IF EXISTS test1; - --enable_warnings - CREATE DATABASE test1; - USE test1; - --source suite/funcs_1/include/innodb_tb2.inc - USE test; - -} - --source suite/funcs_1/views/views_master.inc - -# If we created the database in the above loop we now need to drop it -let $run= `SELECT @NO_REFRESH = 0`; -if ($run) -{ - DROP DATABASE IF EXISTS test1; -} +DROP DATABASE test1; +DROP TABLE test.tb2; diff --git a/mysql-test/suite/funcs_1/t/is_basics_mixed.test b/mysql-test/suite/funcs_1/t/is_basics_mixed.test new file mode 100644 index 00000000000..8097c3ab3b1 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_basics_mixed.test @@ -0,0 +1,503 @@ +# suite/funcs_1/t/is_basics_mixed.test +# +# Checks of some basic properties of the INFORMATION_SCHEMA which are not +# related to a certain INFORMATION_SCHEMA table. +# +# This test should not check properties related to storage engines. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--source suite/funcs_1/datadict/datadict.pre + +# $engine_type must point to storage engine which is all time available. +# The fastest engine should be preferred. +let $engine_type = MEMORY; + + +# The INFORMATION_SCHEMA database must exist. +SHOW DATABASES LIKE 'information_schema'; + + +--echo ####################################################################### +--echo # Testcase 3.2.1.20: USE INFORMATION_SCHEMA is supported +--echo ####################################################################### +# Ensure that USE INFORMATION_SCHEMA allows the user to switch to the +# INFORMATION_SCHEMA database, for query purposes only. +# +# Note: The "for query purposes only" is checked in other tests. +# High privileged user (root) +--echo # Switch to connection default +connection default; +USE test; +SELECT DATABASE(); +USE information_schema; +SELECT DATABASE(); +# +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +# Low privileged user +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +SELECT DATABASE(); +USE information_schema; +SELECT DATABASE(); +# +--echo # Switch to connection default and close connection testuser1 +connection default; +disconnect testuser1; +DROP USER 'testuser1'@'localhost'; + + +--echo ####################################################################### +--echo # Testcase TBD1: The INFORMATION_SCHEMA cannot be dropped. +--echo ####################################################################### +--error ER_DBACCESS_DENIED_ERROR +DROP DATABASE information_schema; + + +--echo ####################################################################### +--echo # Testcase TBD2: There cannot be a second database INFORMATION_SCHEMA. +--echo ####################################################################### +--error ER_DBACCESS_DENIED_ERROR +CREATE DATABASE information_schema; + + +--echo ################################################################################## +--echo # Testcase 3.2.1.6+3.2.1.7: No user may create an INFORMATION_SCHEMA table or view +--echo ################################################################################## +# 3.2.1.6 Ensure that no user may create an INFORMATION_SCHEMA base table. +# 3.2.1.7 Ensure that no user may create an INFORMATION_SCHEMA view +# + +# 1. High privileged user (root) +--echo # Switch to connection default (user=root) +connection default; +--source suite/funcs_1/datadict/basics_mixed1.inc + +# 2. High privileged user (testuser1) +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT ALL ON *.* TO testuser1@localhost; +SHOW GRANTS FOR testuser1@localhost; +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +--source suite/funcs_1/datadict/basics_mixed1.inc + +--echo # Switch to connection default (user=root) and close connection testuser1 +connection default; +disconnect testuser1; +DROP USER 'testuser1'@'localhost'; + +--echo ############################################################################### +--echo # Testcase 3.2.1.1+3.2.1.2: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ############################################################################### +# 3.2.1.1 Ensure that every INFORMATION_SCHEMA table can be queried with +# a SELECT statement, just as if it were an ordinary user-defined table. +# 3.2.1.2 Ensure that queries on an INFORMATION_SCHEMA table can accept all +# SELECT statement options and are always correctly evaluated. +# +# Some notes(mleich): +# - Currently here only a subset of select statement options is checked, it's +# still not possible to check here all possible options +# - The content of many INFORMATION_SCHEMA tables is checked in other tests. +# - We work here only with a subset of the columns of information_schema.tables +# because we want have a stable base (all time existing table, stable layout). +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_first (f1 BIGINT UNIQUE, f2 BIGINT) +ENGINE = $engine_type; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_second (f1 BIGINT UNIQUE, f2 BIGINT) +ENGINE = $engine_type; + +# SELECT * +--echo # Attention: The protocolling of the next result set is disabled. +--disable_result_log +SELECT * FROM information_schema.tables; +--enable_result_log +# +# SELECT + WHERE +--sorted_result +SELECT table_name FROM information_schema.tables +WHERE table_schema = 'db_datadict'; +# +# SELECT string_function() + ORDER BY +SELECT LENGTH(table_name) FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +# +# SELECT aggregate_function() + WHERE with LIKE +SELECT count(table_name) FROM information_schema.tables +WHERE table_schema LIKE 'db_datadic%'; +# +# SELECT with addition in column list +--sorted_result +SELECT CAST((LENGTH(table_schema) + LENGTH(table_name)) AS DECIMAL(15,1)) +FROM information_schema.tables +WHERE table_schema = 'db_datadict'; +# +# WHERE with IN + LIMIT +SELECT table_name FROM information_schema.tables +WHERE table_name IN ('t1_first','t1_second') ORDER BY table_name LIMIT 1; +SELECT table_name FROM information_schema.tables +WHERE table_name IN ('t1_first','t1_second') ORDER BY table_name LIMIT 1,1; +# +# WHERE with AND +SELECT table_name,table_schema AS my_col FROM information_schema.tables +WHERE table_name = 't1_first' AND table_schema = 'db_datadict'; +# +# SELECT HIGH_PRIORITY + WHERE with OR +--sorted_result +SELECT HIGH_PRIORITY table_name AS my_col FROM information_schema.tables +WHERE table_name = 't1_first' OR table_name = 't1_second'; +# +# Empty result set +SELECT 1 AS my_col FROM information_schema.tables +WHERE table_name = 't1_third'; +# +# SELECT INTO USER VARIABLE +SELECT table_name,table_schema INTO @table_name,@table_schema +FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name LIMIT 1; +SELECT @table_name,@table_schema; +# +# SELECT INTO OUTFILE +let $OUTFILE = $MYSQL_TMP_DIR/datadict.out; +--error 0,1 +remove_file $OUTFILE; +--replace_result $OUTFILE +eval SELECT table_name,table_schema +INTO OUTFILE '$OUTFILE' +FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' +LINES TERMINATED BY '\n' +FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +cat_file $OUTFILE; +remove_file $OUTFILE; +# +# UNION +--sorted_result +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_first' +UNION ALL +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_second'; +# +# DISTINCT + SUBQUERY +SELECT DISTINCT table_schema FROM information_schema.tables +WHERE table_name IN (SELECT table_name FROM information_schema.tables + WHERE table_schema = 'db_datadict') +ORDER BY table_name; +# +# JOIN +SELECT table_name FROM information_schema.tables t1 +LEFT JOIN information_schema.tables t2 USING(table_name,table_schema) +WHERE t2.table_schema = 'db_datadict' +ORDER BY table_name; +# +# No schema assigned in SELECT + we are in SCHEMA test +# --> The table tables does not exist +USE test; +--error ER_NO_SUCH_TABLE +SELECT * FROM tables; + + +--echo ######################################################################### +--echo # Testcase 3.2.1.17+3.2.1.18 +--echo ######################################################################### +# 3.2.1.17: Ensure that the SELECT privilege is granted TO PUBLIC WITH GRANT +# OPTION on every INFORMATION_SCHEMA table. +# +# 3.2.1.18: Ensure that the CREATE VIEW privilege on an INFORMATION_SCHEMA table +# may be granted to any user. +# +# Note (mleich): The requirements are to some extend outdated. +# Every user is allowed to SELECT on the INFORMATION_SCHEMA. +# But the result sets depend on the privileges of the user. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT UNIQUE, f2 BIGINT) +ENGINE = $engine_type; +SELECT * FROM db_datadict.t1; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +GRANT CREATE VIEW,SELECT ON db_datadict.* TO testuser1@localhost +WITH GRANT OPTION; +GRANT USAGE ON db_datadict.* TO testuser2@localhost; +FLUSH PRIVILEGES; + +# Check 0: Reveal that GRANT ON INFORMATION_SCHEMA is no +# longer allowed. +--error ER_DBACCESS_DENIED_ERROR +GRANT SELECT on information_schema.* TO testuser1@localhost; +--error ER_DBACCESS_DENIED_ERROR +GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost'; + +# Check 1: Show that a "simple" user (<> root) has the permission to SELECT +# on some INFORMATION_SCHEMA table. +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +SELECT table_schema,table_name FROM information_schema.tables +WHERE table_schema = 'information_schema' AND table_name = 'tables'; + +# Check 2: Show the privileges of the user on some INFORMATION_SCHEMA tables. +SELECT * FROM information_schema.table_privileges +WHERE table_schema = 'information_schema'; +SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'information_schema'; + +# Check 3: Show the following +# 1. If a simple user (testuser1) has the privilege to create a VIEW +# than this VIEW could use a SELECT on an INFORMATION_SCHEMA table. +# 2. This user (testuser1) is also able to GRANT the SELECT privilege +# on this VIEW to another user (testuser2). +# 3. The other user (testuser2) must be able to SELECT on this VIEW +# but gets a different result set than testuser1. +CREATE VIEW db_datadict.v2 AS +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM information_schema.tables WHERE table_schema = 'db_datadict'; +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM db_datadict.v2; +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM information_schema.tables WHERE table_schema = 'db_datadict'; +GRANT SELECT ON db_datadict.v2 to testuser2@localhost; +# +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM db_datadict.v2; +SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE +FROM information_schema.tables WHERE table_schema = 'db_datadict'; + +# Cleanup +--echo # Switch to connection default and close connections testuser1 and testuser2 +connection default; +disconnect testuser1; +disconnect testuser2; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE db_datadict; + + +--echo ######################################################################### +--echo # Testcase 3.2.1.19 +--echo ######################################################################### +# Ensure that no other privilege on an INFORMATION_SCHEMA table is granted, or +# may be granted, to any user. +# +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; + +# Initial privileges on the INFORMATION_SCHEMA tables (empty result sets) +let $my_select1 = SELECT 'empty result set was expected' AS my_col +FROM information_schema.schema_privileges +WHERE table_schema = 'information_schema'; +let $my_select2 = SELECT 'empty result set was expected' AS my_col +FROM information_schema.table_privileges +WHERE table_schema = 'information_schema'; +let $my_select3 = SELECT 'empty result set was expected' AS my_col +FROM information_schema.column_privileges +WHERE table_schema = 'information_schema'; +eval $my_select1; +eval $my_select2; +eval $my_select3; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT ALTER ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT ALTER ROUTINE ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT CREATE ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT CREATE ROUTINE ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT CREATE TEMPORARY TABLES ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT DELETE ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT DROP ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT EXECUTE ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT INDEX ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT INSERT ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT LOCK TABLES ON information_schema.* +TO 'testuser1'@'localhost'; + +#FIXME: check GRANT on IS +--error ER_DBACCESS_DENIED_ERROR +GRANT UPDATE ON information_schema.* +TO 'testuser1'@'localhost'; + +# Has something accidently changed? +eval $my_select1; +eval $my_select2; +eval $my_select3; + +# Cleanup +DROP USER 'testuser1'@'localhost'; + + +--echo ######################################################################### +--echo # Testcase 3.2.1.16 +--echo ######################################################################### +# Ensure that no user may use any INFORMATION_SCHEMA table to determine any +# information on a database and/or its structure unless authorized to get that +# information. +# Note: The plan is to create a new database and objects within it so that +# any INFORMATION_SCHEMA table gets additional rows if possible. +# A user having no rights on the new database and no rights on objects +# must nowhere see tha name of the new database. +--source suite/funcs_1/datadict/basics_mixed3.inc + +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT NOT NULL, f3 BIGINT, +PRIMARY KEY(f1)) +ENGINE = $engine_type; +CREATE UNIQUE INDEX UIDX ON db_datadict.t1(f3); +CREATE PROCEDURE db_datadict.sproc1() SELECT 'db_datadict'; +CREATE FUNCTION db_datadict.func1() RETURNS INT RETURN 0; +CREATE TRIGGER db_datadict.trig1 BEFORE INSERT ON db_datadict.t1 +FOR EACH ROW SET @aux = 1; +CREATE VIEW db_datadict.v1 AS SELECT * FROM db_datadict.t1; +CREATE VIEW db_datadict.v2 AS SELECT * FROM information_schema.tables; + +--source suite/funcs_1/datadict/basics_mixed3.inc + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT ALL ON test.* TO 'testuser1'@'localhost'; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +--source suite/funcs_1/datadict/basics_mixed3.inc + +# Cleanup +--echo # Switch to connection default and close connections testuser1 and testuser2 +connection default; +disconnect testuser1; +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# Thorough tests checking the requirements above per every INFORMATION_SCHEMA +# table are within other scripts. +# We check here only that the requirement is fulfilled even when using a +# STORED PROCEDURE. +--disable_warnings +DROP PROCEDURE IF EXISTS test.p1; +--enable_warnings +CREATE PROCEDURE test.p1() +INSERT INTO information_schema.tables +SELECT * FROM information_schema.tables LIMIT 1; +--error ER_DBACCESS_DENIED_ERROR +CALL test.p1(); + +DROP PROCEDURE test.p1; +CREATE PROCEDURE test.p1() +UPDATE information_schema.columns SET table_schema = 'garbage'; +--error ER_DBACCESS_DENIED_ERROR +CALL test.p1(); + +DROP PROCEDURE test.p1; +CREATE PROCEDURE test.p1() +DELETE FROM information_schema.schemata; +--error ER_DBACCESS_DENIED_ERROR +CALL test.p1(); + +DROP PROCEDURE test.p1; + + +--echo ######################################################################### +--echo # Testcase 3.2.17.1+3.2.17.2: To be implemented outside of this script +--echo ######################################################################### +# 3.2.17.1 Ensure that every INFORMATION_SCHEMA table shows all the correct +# information, and no incorrect information, for a database to which +# 100 different users, each of which has a randomly issued set of +# privileges and access to a randomly chosen set of database objects, +# have access. +# The database should contain a mixture of all types of database +# objects (i.e. tables, views, stored procedures, triggers). +# 3.2.17.2 Ensure that every INFORMATION_SCHEMA table shows all the correct +# information, and no incorrect information, for 10 different +# databases to which 50 different users, each of which has a randomly +# issued set of privileges and access to a randomly chosen set of +# database objects in two or more of the databases, have access. +# The databases should each contain a mixture of all types of database +# objects (i.e. tables, views, stored procedures, triggers). +# +# Note(mleich): These requirements are kept here so that they do not get lost. +# The tests are not yet implemented. +# If they are ever developed than they should be stored in other +# scripts. They will have most probably a long runtime because +# the current INFORMATION_SCHEMA implementation has some performance +# issues if a lot of users, privileges and objects are involved. +# diff --git a/mysql-test/suite/funcs_1/t/is_character_sets.test b/mysql-test/suite/funcs_1/t/is_character_sets.test new file mode 100644 index 00000000000..dbb35587eab --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_character_sets.test @@ -0,0 +1,107 @@ +# suite/funcs_1/t/is_character_sets.test +# +# Check the layout of information_schema.character_sets and run some +# functionality related tests. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $is_table = CHARACTER_SETS; + +# The table INFORMATION_SCHEMA.CHARACTER_SETS must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.2.1: INFORMATION_SCHEMA.CHARACTER_SETS layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.CHARACTER_SETS table has the following +# columns, in the following order: +# +# CHARACTER_SET_NAME (shows a character set name), +# DEFAULT_COLLATE_NAME (shows the name of the default collation for that +# character set), +# DESCRIPTION (shows a descriptive name for that character set), +# MAXLEN (shows the number of bytes used to store each character supported by +# that character set). +# +eval DESCRIBE information_schema.$is_table; +eval SHOW CREATE TABLE information_schema.$is_table; +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.character_sets is in is_columns_is.test. +# Retrieval of information_schema.character_sets content is in +# charset_collation.inc (sourced by charset_collation_*.test). + + +echo # Testcases 3.2.2.2 and 3.2.2.3 are checked in suite/funcs_1/t/charset_collation*.test; + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.character_sets +SELECT * FROM information_schema.character_sets; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.character_sets SET description = 'just updated'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.character_sets WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.character_sets; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx ON information_schema.character_sets(character_set_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.character_sets DROP PRIMARY KEY; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.character_sets ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.character_sets; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.character_sets RENAME db_datadict.character_sets; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.character_sets +RENAME information_schema.xcharacter_sets; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test b/mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test new file mode 100644 index 00000000000..6572d8e5d55 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_collation_character_set_applicability.test @@ -0,0 +1,108 @@ +# suite/funcs_1/t/is_collation_character_set_applicability.test +# +# Check the layout of information_schema.collation_character_set_applicability +# and some functionality realted tests. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $is_table = COLLATION_CHARACTER_SET_APPLICABILITY; + +# The table INFORMATION_SCHEMA.CHARACTER_SET_APPLICABILITY must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.4.1: INFORMATION_SCHEMA.CHARACTER_SET_APPLICABILITY layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.CHARACTER_SET_APPLICABILITY table has the +# following columns, in the following order: +# +# COLLATION_NAME (shows the name of a collation), +# CHARACTER_SET_NAME (shows the name of a character set to which that +# collation applies). +# +eval DESCRIBE information_schema.$is_table; +eval SHOW CREATE TABLE information_schema.$is_table; +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.collation_character_set_applicability is in +# is_columns_is.test. +# Retrieval of information_schema.collation_character_set_applicability +# content is in charset_collation.inc (sourced by charset_collation_*.test). + +echo # Testcases 3.2.4.2 and 3.2.4.3 are checked in suite/funcs_1/t/charset_collation*.test; + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.collation_character_set_applicability +SELECT * FROM information_schema.collation_character_set_applicability; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.collation_character_set_applicability +SET collation_name = 'big6_chinese_ci' WHERE character_set_name = 'big6'; +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.collation_character_set_applicability +SET character_set_name = 't_4711'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.collation_character_set_applicability; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.collation_character_set_applicability; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx +ON information_schema.collation_character_set_applicability(collation_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collation_character_set_applicability ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.collation_character_set_applicability; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collation_character_set_applicability +RENAME db_datadict.collation_character_set_applicability; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collation_character_set_applicability +RENAME information_schema.xcollation_character_set_applicability; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_collations.test b/mysql-test/suite/funcs_1/t/is_collations.test new file mode 100644 index 00000000000..e807b3cb028 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_collations.test @@ -0,0 +1,114 @@ +# suite/funcs_1/t/is_collations.test +# +# Check the layout of information_schema.collations and some +# functionality related tests. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $is_table = COLLATIONS; + +# The table INFORMATION_SCHEMA.COLLATIONS must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.3.1: INFORMATION_SCHEMA.COLLATIONS layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.COLLATIONS table has the following +# columns, in the following order: +# +# COLLATION_NAME (shows a collation name), +# CHARACTER_SET_NAME (shows the name of the character set to which the +# collation applies), +# ID (shows a numeric identifier for that collation/character set combination), +# IS_DEFAULT (shows whether the collation is the default collation for the +# character set shown), +# IS_COMPILED (indicates whether the collation is compiled into the MySQL server), +# SORTLEN (shows a value related to the amount of memory required to sort +# strings using this collation/character set combination). +# +eval DESCRIBE information_schema.$is_table; +eval SHOW CREATE TABLE information_schema.$is_table; +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.collations is in is_columns_is.test. +# Retrieval of information_schema.collations content is in +# charset_collation.inc (sourced by charset_collation_*.test). + +echo # Testcases 3.2.3.2 and 3.2.3.3 are checked in suite/funcs_1/t/charset_collation*.test; + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.collations +SELECT * FROM information_schema.collations; +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.collations + (collation_name,character_set_name,id,is_default,is_compiled,sortlen) +VALUES ( 'cp1251_bin', 'cp1251',50, '', '',0); + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.collations SET description = 'just updated'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.collations WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.collations; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx ON information_schema.collations(character_set_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collations DROP PRIMARY KEY; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collations ADD f1 INT; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collations ENABLE KEYS; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.collations; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collations RENAME db_datadict.collations; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.collations +RENAME information_schema.xcollations; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_column_privileges.test b/mysql-test/suite/funcs_1/t/is_column_privileges.test new file mode 100644 index 00000000000..8f125051060 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_column_privileges.test @@ -0,0 +1,351 @@ +# suite/funcs_1/t/is_column_privileges.test +# +# Check the layout of information_schema.column_privileges and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = COLUMN_PRIVILEGES; + +# The table INFORMATION_SCHEMA.COLUMN_PRIVILEGES must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.5.1: INFORMATION_SCHEMA.COLUMN_PRIVILEGES layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.COLUMN_PRIVILEGES table has the following +# columns, in the following order: +# +# GRANTEE (shows the name of a user who has either granted, +# or been granted a column privilege), +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the name of the schema, or database, in which the table +# for which a column privilege has been granted resides), +# TABLE_NAME (shows the name of the table), +# COLUMN_NAME (shows the name of the column on which a column privilege has +# been granted), +# PRIVILEGE_TYPE (shows the type of privilege that was granted; must be either +# SELECT, INSERT, UPDATE, or REFERENCES), +# IS_GRANTABLE (shows whether that privilege was granted WITH GRANT OPTION). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns +# about information_schema.column_privileges is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT table_catalog, table_schema, table_name, column_name, privilege_type +FROM information_schema.column_privileges WHERE table_catalog IS NOT NULL; + + +--echo ###################################################################### +--echo # Testcase 3.2.5.2+3.2.5.3+3.2.5.4: +--echo # INFORMATION_SCHEMA.COLUMN_PRIVILEGES accessible information +--echo ###################################################################### +# 3.2.5.2: Ensure that the table shows the relevant information on every +# column privilege which has been granted to the current user or +# PUBLIC, or which was granted by the current user. +# 3.2.5.3: Ensure that the table does not show any information on any column +# privilege which was granted to any user other than the current user +# or PUBLIC, or which was granted by any user other than +# the current user. +# 3.2.5.4: Ensure that the table does not show any information on any +# privileges that are not column privileges for the current user. +# +# Note: Check of content within information_schema.column_privileges about the +# databases information_schema, mysql and test is in +# is_column_privileges_is_mysql_test.test +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $other_engine_type +eval +CREATE TABLE db_datadict.t1 (f1 INT, f2 DECIMAL, f3 TEXT) +ENGINE = $other_engine_type; + +USE db_datadict; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; + +GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT INSERT(f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT UPDATE(f2) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT SELECT(f2) ON db_datadict.t1 TO 'testuser2'@'localhost'; +GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost'; +GRANT SELECT(f3) ON db_datadict.t1 TO 'testuser3'@'localhost'; + +GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost' +WITH GRANT OPTION; +GRANT ALL ON db_datadict.* TO 'testuser3'@'localhost'; + +let $select= SELECT * FROM information_schema.column_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +eval $select; + +# Note: WITH GRANT OPTION applies to all privileges on this table +# and not to the columns mentioned only. +GRANT UPDATE(f3) ON db_datadict.t1 TO 'testuser1'@'localhost' +WITH GRANT OPTION; + +eval $select; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +eval $select; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +eval $select; + +--echo # Establish connection testuser3 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser3, localhost, testuser3, , db_datadict); + +--echo # FIXME: Is it correct that granted TABLES do not occur in COLUMN_PRIVILEGES? +SELECT * FROM information_schema.table_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee,table_schema,table_name,privilege_type; +SELECT * FROM information_schema.schema_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee,table_schema,privilege_type; +eval $select; +GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser2'@'localhost'; + +--echo # FIXME: Is it intended that *my* grants to others are *NOT* shown here? +eval $select; + +--echo # Switch to connection testuser2 (user=testuser2) +connection testuser2; +eval $select; + +# Cleanup +--echo # Switch to connection default and close connections testuser1,testuser2,testuser3 +connection default; +disconnect testuser1; +disconnect testuser2; +disconnect testuser3; +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; + + +--echo ################################################################################ +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMN_PRIVILEGES modifications +--echo ################################################################################ +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +# Note (mleich): +# The MySQL privilege system allows to GRANT objects before they exist. +# (Exception: Grant privileges for columns of not existing tables/views.) +# There is also no migration of privileges if objects (tables, views, columns) +# are moved to other databases (tables only), renamed or dropped. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.my_table (f1 BIGINT, f2 CHAR(10), f3 DATE) +ENGINE = $engine_type; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT ALL ON test.* TO 'testuser1'@'localhost'; + +let $my_select = SELECT * FROM information_schema.column_privileges +WHERE table_name = 'my_table' +ORDER BY grantee, table_schema,table_name,column_name,privilege_type; +let $my_show = SHOW GRANTS FOR 'testuser1'@'localhost'; +eval $my_select; +eval $my_show; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +eval $my_select; +eval $my_show; + +--echo # Switch to connection default +connection default; +GRANT SELECT (f1,f3) ON db_datadict.my_table TO 'testuser1'@'localhost'; +eval $my_select; +eval $my_show; + +--echo # Switch to connection testuser1 +connection testuser1; +eval $my_select; +eval $my_show; + +--echo # Switch to connection default +connection default; +ALTER TABLE db_datadict.my_table DROP COLUMN f3; +GRANT UPDATE (f1) ON db_datadict.my_table TO 'testuser1'@'localhost'; +eval $my_select; +eval $my_show; + +--echo # Switch to connection testuser1 +connection testuser1; +eval $my_select; +eval $my_show; +--error ER_BAD_FIELD_ERROR +SELECT f1, f3 FROM db_datadict.my_table; + +--echo # Switch to connection default +connection default; +ALTER TABLE db_datadict.my_table CHANGE COLUMN f1 my_col BIGINT; +eval $my_select; +eval $my_show; + +--echo # Switch to connection testuser1 +connection testuser1; +eval $my_select; +eval $my_show; + +--echo # Switch to connection default +connection default; +DROP TABLE db_datadict.my_table; +eval $my_select; +eval $my_show; + +--echo # Switch to connection testuser1 +connection testuser1; +eval $my_select; +eval $my_show; + +--echo # Switch to connection default +connection default; +REVOKE ALL ON db_datadict.my_table FROM 'testuser1'@'localhost'; +eval $my_select; +eval $my_show; + +--echo # Switch to connection testuser1 +connection testuser1; +eval $my_select; +eval $my_show; + +--echo # Switch to connection default and close connection testuser1 +connection default; +disconnect testuser1; +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA table are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT) +ENGINE = $engine_type; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT (f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.column_privileges +SELECT * FROM information_schema.column_privileges; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.column_privileges SET table_schema = 'test' +WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.column_privileges WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.column_privileges; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx_on_tables +ON information_schema.column_privileges(table_schema); +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.column_privileges ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.column_privileges; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.column_privileges +RENAME db_datadict.column_privileges; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.column_privileges +RENAME information_schema.xcolumn_privileges; + +# Cleanup +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; + diff --git a/mysql-test/suite/funcs_1/t/is_column_privileges_is_mysql_test.test b/mysql-test/suite/funcs_1/t/is_column_privileges_is_mysql_test.test new file mode 100644 index 00000000000..3ed8597e309 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_column_privileges_is_mysql_test.test @@ -0,0 +1,58 @@ +# suite/funcs_1/t/is_column_privileges_is_mysql_test.test +# +# Check the content of information_schema.column_privileges about the databases +# information_schema and mysql visible to high and low privileged users. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# +# + +--echo ############################################################################## +--echo # Testcases 3.2.9.2+3.2.9.3 INFORMATION_SCHEMA.SCHEMATA accessible information +--echo ############################################################################## +# 3.2.9.2 Ensure that the table shows the relevant information for every +# database on which the current user or PUBLIC have privileges. +# 3.2.9.3 Ensure that the table does not show any information on any databases +# on which the current user and PUBLIC have no privileges. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +# Create a low privileged user. +# Note: The database db_datadict is just a "home" for the low privileged user +# and not in the focus of testing. +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; + +let $my_select = SELECT * FROM information_schema.column_privileges +WHERE table_schema IN ('information_schema','mysql','test') +ORDER BY table_schema, table_name, column_name; +let $my_show1 = SHOW DATABASES LIKE 'information_schema'; +let $my_show2 = SHOW DATABASES LIKE 'mysql'; +let $my_show3 = SHOW DATABASES LIKE 'test'; +eval $my_select; +eval $my_show1; +eval $my_show2; +eval $my_show3; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +eval $my_select; +eval $my_show1; +eval $my_show2; +eval $my_show3; + +# Cleanup +--echo # Switch to connection default and close connection testuser1 +connection default; +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_columns.test b/mysql-test/suite/funcs_1/t/is_columns.test new file mode 100644 index 00000000000..385de733ac3 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_columns.test @@ -0,0 +1,444 @@ +# suite/funcs_1/t/is_columns.test +# +# Check the layout of information_schema.columns and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA/COLUMN ... on its content. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = COLUMNS; + +# The table INFORMATION_SCHEMA.COLUMNS must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.6.1: INFORMATION_SCHEMA.COLUMNS layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.COLUMNS table has the following columns, +# in the following order: +# +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the name of the database, or schema, in which an +# accessible table resides), +# TABLE_NAME (shows the name of an accessible table), +# COLUMN_NAME (shows the name of a column within that table), +# ORDINAL_POSITION (shows the ordinal position of that column in that table), +# COLUMN_DEFAULT (shows the column's default value), +# IS_NULLABLE (shows whether the column may accept NULL values), +# DATA_TYPE (shows the column's defined data type; keyword only), +# CHARACTER_MAXIMUM_LENGTH (shows, for a string column, the column's defined +# maximum length in characters; otherwise NULL), +# CHARACTER_OCTET_LENGTH (shows, for a string column, the column's defined +# maximum length in octets; otherwise NULL), +# NUMERIC_PRECISION (shows, for a numeric column, the column's or data type's +# defined precision; otherwise NULL), +# NUMERIC_SCALE (shows, for a numeric column, the column's or data type's +# defined scale; otherwise NULL), +# CHARACTER_SET_NAME (shows, for a character string column, the column's default +# character set; otherwise NULL), +# COLLATION_NAME (shows, for a character string column, the column's default +# collation; otherwise NULL), +# COLUMN_TYPE (shows the column's complete, defined data type), +# COLUMN_KEY (shows whether the column is indexed; possible values are PRI if +# the column is part of a PRIMARY KEY, UNI if the column is part of a +# UNIQUE key, MUL if the column is part of an index key that allows +# duplicates), +# EXTRA (shows any additional column definition information, e.g. whether the +# column was defined with the AUTO_INCREMENT attribute), +# PRIVILEGES (shows the privileges available to the user on the column), +# COLUMN_COMMENT (shows the comment, if any, defined for the comment; +# otherwise NULL). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.columns is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT table_catalog, table_schema, table_name, column_name +FROM information_schema.columns WHERE table_catalog IS NOT NULL; + + +--echo ############################################################################### +--echo # Testcase 3.2.6.2 + 3.2.6.3: INFORMATION_SCHEMA.COLUMNS accessible information +--echo ############################################################################### +# 3.2.6.2: Ensure that the table shows the relevant information on the columns +# of every table that is accessible to the current user or to PUBLIC. +# 3.2.6.3: Ensure that the table does not show any information on the columns +# of any table which is not accessible to the current user or PUBLIC. +# +# Note: Check of content within information_schema.columns about +# databases is in +# mysql is_columns_mysql.test +# information_schema is_columns_is.test +# test% is_columns_.test +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; + +--replace_result $other_engine_type +eval +CREATE TABLE db_datadict.t1 + (f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT AUTO_INCREMENT, + UNIQUE INDEX MUL_IDX(f1,f3), PRIMARY KEY (f4)) +ENGINE = $other_engine_type; +CREATE VIEW db_datadict.v1 AS SELECT 1 AS f1, 1 AS f2; +GRANT SELECT(f1, f2) ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT SELECT(f2) ON db_datadict.v1 TO 'testuser1'@'localhost'; + +--replace_result $other_engine_type +eval +CREATE TABLE db_datadict.t2 +(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT, PRIMARY KEY (f1,f4)) +ENGINE = $other_engine_type; +GRANT INSERT(f1, f2) ON db_datadict.t2 TO 'testuser2'@'localhost'; + +let $my_select= SELECT * FROM information_schema.columns + WHERE table_schema = 'db_datadict' +ORDER BY table_schema, table_name, ordinal_position; +let $my_show1 = SHOW COLUMNS FROM db_datadict.t1; +let $my_show2 = SHOW COLUMNS FROM db_datadict.t2; +let $my_show3 = SHOW COLUMNS FROM db_datadict.v1; + +# Point of view of user root. +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval $my_select; +eval $my_show1; +eval $my_show2; +eval $my_show3; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval $my_select; +eval $my_show1; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_show2; +eval $my_show3; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval $my_select; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_show1; +eval $my_show2; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_show3; + +--echo # Switch to connection default and close connections testuser1, testuser2 +connection default; +disconnect testuser1; +disconnect testuser2; + +# Cleanup +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE IF EXISTS db_datadict; + + +--echo ############################################################################### +--echo # Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMNS modifications +--echo ############################################################################### +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +--disable_warnings +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +SELECT table_name FROM information_schema.columns +WHERE table_name LIKE 't1_my_table%'; +--replace_result $engine_type +eval +CREATE TABLE test.t1_my_table (f1 CHAR(12)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = $engine_type; +# Settings used in CREATE TABLE must be visible in information_schema.columns. +--vertical_results +SELECT * FROM information_schema.columns +WHERE table_name = 't1_my_table'; +--horizontal_results +# +# Check modification of TABLE_NAME +SELECT table_name FROM information_schema.columns +WHERE table_name LIKE 't1_my_table%'; +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT table_name FROM information_schema.columns +WHERE table_name LIKE 't1_my_table%'; +# +# Check modification of TABLE_SCHEMA +SELECT table_schema,table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT table_schema,table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modification of COLUMN_NAME +SELECT table_name, column_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12); +SELECT table_name, column_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modification of COLUMN size +SELECT table_name, column_name, character_maximum_length, + character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(20); +SELECT table_name, column_name, character_maximum_length, + character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modification of COLUMN type +SELECT table_name, column_name, character_maximum_length, + character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col VARCHAR(20); +SELECT table_name, column_name, character_maximum_length, + character_octet_length, column_type +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modify COLUMN DEFAULT +SELECT table_name, column_name, column_default +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) DEFAULT 'hello'; +SELECT table_name, column_name, column_default +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modify IS_NULLABLE +SELECT table_name, column_name, is_nullable +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) NOT NULL; +SELECT table_name, column_name, is_nullable +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modify COLLATION +SELECT table_name, column_name, collation_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) COLLATE 'latin1_general_cs'; +SELECT table_name, column_name, collation_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modify CHARACTER SET +SELECT table_name, column_name, character_maximum_length, + character_octet_length, character_set_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) CHARACTER SET utf8; +SELECT table_name, column_name, character_maximum_length, + character_octet_length, character_set_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check modify COLUMN_COMMENT +SELECT table_name, column_name, column_comment +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN first_col CHAR(10) COMMENT 'Hello'; +SELECT table_name, column_name, column_comment +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check ADD COLUMN +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +ADD COLUMN second_col CHAR(10); +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check switch ordinal position of column +SELECT table_name, column_name, ordinal_position +FROM information_schema.columns +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +ALTER TABLE db_datadict.t1_my_tablex +MODIFY COLUMN second_col CHAR(10) FIRST; +SELECT table_name, column_name, ordinal_position +FROM information_schema.columns +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +# +# Check DROP COLUMN +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +DROP COLUMN first_col; +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check set COLUMN UNIQUE +SELECT table_name, column_name, column_key +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +ADD UNIQUE INDEX IDX(second_col); +SELECT table_name, column_name, column_key +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check impact of DROP TABLE +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name, column_name +FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check a VIEW +CREATE VIEW test.t1_my_tablex +AS SELECT 1 AS "col1", 'A' collate latin1_german1_ci AS "col2"; +--vertical_results +SELECT * FROM information_schema.columns +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +--horizontal_results +DROP VIEW test.t1_my_tablex; +SELECT table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +# +# Check impact of DROP SCHEMA +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = $engine_type AS +SELECT 1; +SELECT table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.columns +WHERE table_name = 't1_my_tablex'; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA table are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS test.t1; +--enable_warnings +CREATE DATABASE db_datadict; +CREATE TABLE test.t1 (f1 BIGINT); + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.columns (table_schema,table_name,column_name) +VALUES('test','t1', 'f2'); +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.columns (table_schema,table_name,column_name) +VALUES('test','t2', 'f1'); + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.columns SET table_name = 't4' WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.columns WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.columns; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX i3 ON information_schema.columns(table_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.columns ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.columns; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.columns RENAME db_datadict.columns; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.columns RENAME information_schema.xcolumns; + +# Cleanup +DROP TABLE test.t1; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_columns_innodb.test b/mysql-test/suite/funcs_1/t/is_columns_innodb.test new file mode 100644 index 00000000000..04b9f8354e4 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_columns_innodb.test @@ -0,0 +1,21 @@ +# suite/funcs_1/t/is_columns_innodb.test +# +# Check the content of information_schema.columns about tables within +# the databases created by the user. +# Variant for storage engine InnoDB +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--source include/have_innodb.inc +let $engine_type= InnoDB; +--source suite/funcs_1/datadict/datadict_load.inc + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%'; +--source suite/funcs_1/datadict/columns.inc + +--source suite/funcs_1/include/cleanup.inc diff --git a/mysql-test/suite/funcs_1/t/is_columns_is.test b/mysql-test/suite/funcs_1/t/is_columns_is.test new file mode 100644 index 00000000000..41a7d180be8 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_columns_is.test @@ -0,0 +1,19 @@ +# suite/funcs_1/t/is_columns_is.test +# +# Check the content of information_schema.columns about tables within +# the database information_schema. +# +# Note: The INFORMATION_SCHEMA table PROFILING is optional (exists in MySQL +# Community version only) and therefore we exclude it from retrieval. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $my_where = WHERE table_schema = 'information_schema' +AND table_name <> 'profiling'; +# --source suite/funcs_1/datadict/datadict.pre +--source suite/funcs_1/datadict/columns.inc + diff --git a/mysql-test/suite/funcs_1/t/is_columns_memory.test b/mysql-test/suite/funcs_1/t/is_columns_memory.test new file mode 100644 index 00000000000..6cbf3b298b4 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_columns_memory.test @@ -0,0 +1,21 @@ +# suite/funcs_1/t/is_columns_memory.test +# +# Check the content of information_schema.columns about tables within +# the databases created by the user. +# Variant for storage engine MEMORY +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $engine_type= MEMORY; +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +--source suite/funcs_1/datadict/datadict_load.inc + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%'; +--source suite/funcs_1/datadict/columns.inc + +--source suite/funcs_1/include/cleanup.inc diff --git a/mysql-test/suite/funcs_1/t/is_columns_myisam.test b/mysql-test/suite/funcs_1/t/is_columns_myisam.test new file mode 100644 index 00000000000..d98cd0347c6 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_columns_myisam.test @@ -0,0 +1,21 @@ +# suite/funcs_1/t/is_columns_myisam.test +# +# Check the content of information_schema.columns about tables within +# the databases created by the user. +# Variant for storage engine MyISAM +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $engine_type= MyISAM; +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +--source suite/funcs_1/datadict/datadict_load.inc + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%'; +--source suite/funcs_1/datadict/columns.inc + +--source suite/funcs_1/include/cleanup.inc diff --git a/mysql-test/suite/funcs_1/t/is_columns_mysql.test b/mysql-test/suite/funcs_1/t/is_columns_mysql.test new file mode 100644 index 00000000000..26539d0c8e0 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_columns_mysql.test @@ -0,0 +1,13 @@ +# suite/funcs_1/t/is_columns_mysql.test +# +# Check the content of information_schema.columns about tables within +# the database mysql. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $my_where = WHERE table_schema = 'mysql'; +--source suite/funcs_1/datadict/columns.inc diff --git a/mysql-test/suite/funcs_1/t/is_columns_ndb.test b/mysql-test/suite/funcs_1/t/is_columns_ndb.test new file mode 100644 index 00000000000..960e5f079bb --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_columns_ndb.test @@ -0,0 +1,33 @@ +# suite/funcs_1/t/is_columns_ndb.test +# +# Check the content of information_schema.columns about tables within +# the databases created by the user. +# Variant for storage engine ndb +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--source include/have_ndb.inc +let $engine_type= ndb; +--source suite/funcs_1/datadict/datadict_load.inc + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%'; +--source suite/funcs_1/datadict/columns.inc + +# This test runs with a different set of tables. +# --source suite/funcs_1/include/cleanup.inc +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; diff --git a/mysql-test/suite/funcs_1/t/is_key_column_usage.test b/mysql-test/suite/funcs_1/t/is_key_column_usage.test new file mode 100644 index 00000000000..219277c8645 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_key_column_usage.test @@ -0,0 +1,344 @@ +# suite/funcs_1/t/is_key_column_usage.test +# +# Check the layout of information_schema.key_column_usage and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA/COLUMN ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +# let $other_engine_type = MyISAM; + +let $is_table = KEY_COLUMN_USAGE; + +# The table INFORMATION_SCHEMA.KEY_COLUMN_USAGE must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.7.1: INFORMATION_SCHEMA.KEY_COLUMN_USAGE layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.KEY_COLUMN_USAGE table has the following +# columns, in the following order: +# +# CONSTRAINT_CATALOG (always shows NULL), +# CONSTRAINT_SCHEMA (shows the database, or schema, in which an accessible +# constraint, or index, resides), +# CONSTRAINT_NAME (shows the name of the accessible constraint), +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the database, or schema, in which the table constrained +# by that constraint resides), +# TABLE_NAME (shows the name of the table constrained by the constraint), +# COLUMN_NAME (shows the name of a column that is the index key, or part of +# the index key), +# ORDINAL_POSITION (shows the ordinal position of the column within the +# constraint index), +# POSITION_IN_UNIQUE_CONSTRAINT (shows, for a foreign key column, the ordinal +# position of the referenced column within the referenced unique index; +# otherwise NULL). +# added with 5.0.6: +# REFERENCED_TABLE_SCHEMA, +# REFERENCED_TABLE_NAME, +# REFERENCED_COLUMN_NAME +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.key_column_usage is in is_columns_is.test. + +# Show that CONSTRAINT_CATALOG and TABLE_CATALOG are always NULL. +SELECT constraint_catalog, constraint_schema, constraint_name, table_catalog, + table_schema, table_name, column_name +FROM information_schema.key_column_usage +WHERE constraint_catalog IS NOT NULL OR table_catalog IS NOT NULL; + + +--echo ######################################################################################## +--echo # Testcase 3.2.7.2 + 3.2.7.3: INFORMATION_SCHEMA.KEY_COLUMN_USAGE accessible information +--echo ######################################################################################## +# 3.2.7.2: Ensure that the table shows the relevant information on every column, defined to +# be part of an index key, which is accessible to the current user or to PUBLIC. +# 3.2.7.3: Ensure that the table does not show any information on any indexed column that is +# not accessible to the current user or PUBLIC. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; + +USE db_datadict; + +--replace_result $engine_type +eval +CREATE TABLE t1_1 + (f1 INT NOT NULL, PRIMARY KEY(f1), + f2 INT, INDEX f2_ind(f2)) +ENGINE = $engine_type; +GRANT SELECT ON t1_1 to 'testuser1'@'localhost'; + +--replace_result $engine_type +eval +CREATE TABLE t1_2 + (f1 INT NOT NULL, PRIMARY KEY(f1), + f2 INT, INDEX f2_ind(f2)) +ENGINE = $engine_type; +GRANT SELECT ON t1_2 to 'testuser2'@'localhost'; +#FIXME: add foreign keys + +let $select= SELECT * FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_%' +ORDER BY constraint_catalog, constraint_schema, constraint_name, + table_catalog, table_schema, table_name, ordinal_position; + +# show view of user root +eval $select; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +eval $select; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +eval $select; + +# Cleanup +--echo # Switch to connection default and close connections testuser1, testuser2 +connection default; +disconnect testuser1; +disconnect testuser2; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP TABLE t1_1; +DROP TABLE t1_2; +DROP DATABASE IF EXISTS db_datadict; + + +--echo ######################################################################################## +--echo # Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.KEY_COLUMN_USAGE modifications +--echo ######################################################################################## +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS test.t1_my_table; +--enable_warnings +CREATE DATABASE db_datadict; + +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_my_table%'; +--replace_result $engine_type +eval +CREATE TABLE test.t1_my_table + (f1 CHAR(12), f2 TIMESTAMP, f4 BIGINT, PRIMARY KEY(f1,f2)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = $engine_type; +# Settings used in CREATE TABLE must be visible +# in information_schema.key_column_usage. +--vertical_results +SELECT * FROM information_schema.key_column_usage +WHERE table_name = 't1_my_table'; +--horizontal_results +# +# Check modification of TABLE_NAME +SELECT DISTINCT table_name FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_my_table%'; +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT DISTINCT table_name FROM information_schema.key_column_usage +WHERE table_name LIKE 't1_my_table%'; +# +# Check modification of TABLE_SCHEMA +SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +# +# Check modification of COLUMN_NAME +SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12); +SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +# +# Note: The size of the column list and the not very selective qualification +# is intended. I want to see that the schema names are equal and +# all records about 't1_my_tablex'. +let $my_select = SELECT constraint_schema, constraint_name, table_schema, +table_name, column_name, ordinal_position +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY constraint_schema, constraint_name, table_schema, + table_name, ordinal_position; +# +# Check ADD INDEX being not UNIQUE (does not show up in key_column_usage) +eval $my_select; +CREATE INDEX f2 ON db_datadict.t1_my_tablex(f2); +eval $my_select; +DROP INDEX f2 ON db_datadict.t1_my_tablex; +# +# Check ADD UNIQUE INDEX without name explicit assigned +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE (f2); +eval $my_select; +DROP INDEX f2 ON db_datadict.t1_my_tablex; +# +# Check ADD UNIQUE INDEX with name explicit assigned +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f2); +eval $my_select; +DROP INDEX my_idx ON db_datadict.t1_my_tablex; +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f4,first_col); +eval $my_select; +# +# Check DROP COLUMN +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex +DROP COLUMN first_col; +eval $my_select; +# +# Check impact of DROP TABLE +SELECT table_name, column_name +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex' +ORDER BY table_name, column_name; +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name, column_name +FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +# +# No UNIQUE CONSTRAINT -> no entry in key_column_usage +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = $engine_type AS +SELECT 1 AS f1; +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +# UNIQUE CONSTRAINT -> entry in key_column_usage +ALTER TABLE db_datadict.t1_my_tablex ADD PRIMARY KEY(f1); +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +# +# Check impact of DROP SCHEMA +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.key_column_usage +WHERE table_name = 't1_my_tablex'; +# + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA table are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS db_datadict.t1; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = $engine_type; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.key_column_usage + (constraint_schema, constraint_name, table_name) +VALUES ( 'mysql', 'primary', 'db'); +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.key_column_usage +SELECT * FROM information_schema.key_column_usage; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.key_column_usage +SET table_name = 'db1' WHERE constraint_name = 'primary'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.key_column_usage WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.key_column_usage; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX i3 ON information_schema.key_column_usage(table_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.key_column_usage ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.key_column_usage; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.key_column_usage +RENAME db_datadict.key_column_usage; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.key_column_usage +RENAME information_schema.xkey_column_usage; + +# Cleanup +DROP TABLE db_datadict.t1; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_routines.test b/mysql-test/suite/funcs_1/t/is_routines.test new file mode 100644 index 00000000000..5f015b8624b --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_routines.test @@ -0,0 +1,471 @@ +# suite/funcs_1/t/is_routines.test +# +# Check the layout of information_schema.routines and the impact of +# CREATE/ALTER/DROP PROCEDURE/FUNCTION ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing routines (there are no +# in the moment) within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = ROUTINES; + +# The table INFORMATION_SCHEMA.TABLES must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.8.1: INFORMATION_SCHEMA.ROUTINES layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.ROUTINES table has the following columns, +# in the following order: +# +# SPECIFIC_NAME (shows the name of an accessible stored procedure, or routine), +# ROUTINE_CATALOG (always shows NULL), +# ROUTINE_SCHEMA (shows the database, or schema, in which the routine resides), +# ROUTINE_NAME (shows the same stored procedure name), +# ROUTINE_TYPE (shows whether the stored procedure is a procedure or a function), +# DTD_IDENTIFIER (shows, for a function, the complete data type definition of +# the value the function will return; otherwise NULL), +# ROUTINE_BODY (shows the language in which the stored procedure is written; +# currently always SQL), +# ROUTINE_DEFINITION (shows as much of the routine body as is possible in the +# allotted space), +# EXTERNAL_NAME (always shows NULL), +# EXTERNAL_LANGUAGE (always shows NULL), +# PARAMETER_STYLE (shows the routine's parameter style; always SQL), +# IS_DETERMINISTIC (shows whether the routine is deterministic), +# SQL_DATA_ACCESS (shows the routine's defined sql-data-access clause value), +# SQL_PATH (always shows NULL), +# SECURITY_TYPE (shows whether the routine's defined security_type is 'definer' +# or 'invoker'), +# CREATED (shows the timestamp of the time the routine was created), +# LAST_ALTERED (shows the timestamp of the time the routine was last altered), +# SQL_MODE (shows the sql_mode setting at the time the routine was created), +# ROUTINE_COMMENT (shows the comment, if any, defined for the routine; +# otherwise NULL), +# DEFINER (shows the user who created the routine). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +USE test; +--disable_warnings +DROP PROCEDURE IF EXISTS sp_for_routines; +DROP FUNCTION IF EXISTS function_for_routines; +--enable_warnings +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0; + +# Show that the column values of +# ROUTINE_CATALOG, EXTERNAL_NAME, EXTERNAL_LANGUAGE, SQL_PATH are always NULL +# and +# ROUTINE_BODY, PARAMETER_STYLE are 'SQL' +# and +# SPECIFIC_NAME = ROUTINE_NAME. +SELECT specific_name,routine_catalog,routine_schema,routine_name,routine_type, + routine_body,external_name,external_language,parameter_style,sql_path +FROM information_schema.routines +WHERE routine_catalog IS NOT NULL OR external_name IS NOT NULL + OR external_language IS NOT NULL OR sql_path IS NOT NULL + OR routine_body <> 'SQL' OR parameter_style <> 'SQL' + OR specific_name <> routine_name; + +DROP PROCEDURE sp_for_routines; +DROP FUNCTION function_for_routines; + + +--echo ################################################################################ +--echo # Testcase 3.2.8.2 + 3.2.8.3: INFORMATION_SCHEMA.ROUTINES accessible information +--echo ################################################################################ +# 3.2.8.2: Ensure that the table shows the relevant information on every SQL-invoked +# routine (i.e. stored procedure) which is accessible to the current user +# or to PUBLIC. +# 3.2.8.3: Ensure that the table does not show any information on any stored procedure +# that is not accessible to the current user or PUBLIC. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +DROP DATABASE IF EXISTS db_datadict_2; +--enable_warnings + +CREATE DATABASE db_datadict; +USE db_datadict; +--replace_result $other_engine_type +eval +CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT) +ENGINE = $other_engine_type; +INSERT INTO res_6_408002_1(f1, f2, f3, f4) +VALUES('abc', 'xyz', '1989-11-09', 0815); +--disable_warnings +DROP PROCEDURE IF EXISTS sp_6_408002_1; +--enable_warnings +delimiter //; +CREATE PROCEDURE sp_6_408002_1() +BEGIN + SELECT * FROM db_datadict.res_6_408002_1; +END// +delimiter ;// + +CREATE DATABASE db_datadict_2; +USE db_datadict_2; +--replace_result $other_engine_type +eval +CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT) +ENGINE = $other_engine_type; +INSERT INTO res_6_408002_2(f1, f2, f3, f4) +VALUES('abc', 'xyz', '1990-10-03', 4711); +--disable_warnings +DROP PROCEDURE IF EXISTS sp_6_408002_2; +--enable_warnings +delimiter //; +CREATE PROCEDURE sp_6_408002_2() +BEGIN + SELECT * FROM db_datadict_2.res_6_408002_2; +END// +delimiter ;// + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; + + +GRANT SELECT ON db_datadict_2.* TO 'testuser1'@'localhost'; +GRANT EXECUTE ON db_datadict_2.* TO 'testuser1'@'localhost'; + +GRANT EXECUTE ON db_datadict.* TO 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser2'@'localhost'; + +GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2 +TO 'testuser2'@'localhost'; +GRANT EXECUTE ON db_datadict_2.* TO 'testuser2'@'localhost'; +FLUSH PRIVILEGES; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" +SELECT * FROM information_schema.routines; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" +SELECT * FROM information_schema.routines; + +--echo # Establish connection testuser3 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser3, localhost, testuser3, , test); +--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" +SELECT * FROM information_schema.routines; + +# Cleanup +--echo # Switch to connection default and close connections testuser1,testuser2,testuser3 +connection default; +disconnect testuser1; +disconnect testuser2; +disconnect testuser3; + +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; + +USE test; +DROP DATABASE db_datadict; +DROP DATABASE db_datadict_2; + + +--echo ######################################################################### +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.ROUTINES modifications +--echo ######################################################################### +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +# Some more tests are in t/information_schema_routines.test which exists +# in MySQL 5.1 and up only. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'; +USE db_datadict; +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0; +--vertical_results +--replace_column 16 17 +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict' +ORDER BY routine_name; +--horizontal_results + +ALTER PROCEDURE sp_for_routines SQL SECURITY INVOKER; +ALTER FUNCTION function_for_routines COMMENT 'updated comments'; +--vertical_results +--replace_column 16 17 +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict' +ORDER BY routine_name; +--horizontal_results + +DROP PROCEDURE sp_for_routines; +DROP FUNCTION function_for_routines; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'; + +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0; +--vertical_results +--replace_column 16 17 +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict' +ORDER BY routine_name; +--horizontal_results +use test; +DROP DATABASE db_datadict; +SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'; + + +--echo ######################################################################### +--echo # 3.2.8.4: INFORMATION_SCHEMA.ROUTINES routine body too big for +--echo # ROUTINE_DEFINITION column +--echo ######################################################################### +# Ensure that a stored procedure with a routine body that is too large to fit +# into the INFORMATION_SCHEMA.ROUTINES.ROUTINE_DEFINITION column correctly shows +# as much of the information as is possible within the allotted size. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +USE db_datadict; +# +--replace_result $other_engine_type +eval +CREATE TABLE db_datadict.res_6_408004_1 + (f1 LONGTEXT , f2 MEDIUMINT , f3 LONGBLOB , f4 REAL , f5 YEAR) +ENGINE = $other_engine_type; +INSERT INTO db_datadict.res_6_408004_1 +VALUES ('abc', 98765 , 99999999 , 98765, 10); +# +--replace_result $other_engine_type +eval +CREATE TABLE db_datadict.res_6_408004_2 + (f1 LONGTEXT , f2 MEDIUMINT , f3 LONGBLOB , f4 REAL , f5 YEAR) +ENGINE = $other_engine_type; +INSERT INTO db_datadict.res_6_408004_2 +VALUES ('abc', 98765 , 99999999 , 98765, 10); + +--echo # Checking the max. possible length of (currently) 4 GByte is not +--echo # in this environment here. + +delimiter //; +CREATE PROCEDURE sp_6_408004 () +BEGIN + DECLARE done INTEGER DEFAULt 0; + DECLARE variable_number_1 LONGTEXT; + DECLARE variable_number_2 MEDIUMINT; + DECLARE variable_number_3 LONGBLOB; + DECLARE variable_number_4 REAL; + DECLARE variable_number_5 YEAR; + DECLARE cursor_number_1 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; + DECLARE cursor_number_2 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; + DECLARE cursor_number_3 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; + DECLARE cursor_number_4 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; + DECLARE cursor_number_5 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10; + DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1; + BEGIN + OPEN cursor_number_1; + WHILE done <> 1 DO + FETCH cursor_number_1 + INTO variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5; + IF done <> 0 THEN + INSERT INTO res_6_408004_2 + VALUES (variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5); + END IF; + END WHILE; + BEGIN + BEGIN + SET done = 0; + OPEN cursor_number_2; + WHILE done <> 1 DO + FETCH cursor_number_2 + INTO variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5; + IF done <> 0 THEN + INSERT INTO res_6_408004_2 + VALUES(variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5); + END IF; + END WHILE; + END; + SET done = 0; + OPEN cursor_number_3; + WHILE done <> 1 DO + FETCH cursor_number_3 + INTO variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5; + IF done <> 0 THEN + INSERT INTO res_6_408004_2 + VALUES(variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5); + END IF; + END WHILE; + END; + END; + BEGIN + SET done = 0; + OPEN cursor_number_4; + WHILE done <> 1 DO + FETCH cursor_number_4 + INTO variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5; + IF done <> 0 THEN + INSERT INTO res_6_408004_2 + VALUES (variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5); + END IF; + END WHILE; + END; + BEGIN + SET @a='test row'; + SELECT @a; + SELECT @a; + SELECT @a; + END; + BEGIN + SET done = 0; + OPEN cursor_number_5; + WHILE done <> 1 DO + FETCH cursor_number_5 + INTO variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5; + IF done <> 0 THEN + INSERT INTO res_6_408004_2 + VALUES (variable_number_1, variable_number_2, variable_number_3, + variable_number_4, variable_number_5); + END IF; + END WHILE; + END; + BEGIN + SET @a='test row'; + SELECT @a; + SELECT @a; + SELECT @a; + END; +END// +delimiter ;// + +CALL db_datadict.sp_6_408004 (); +SELECT * FROM db_datadict.res_6_408004_2; + +--vertical_results +--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss" +SELECT *, LENGTH(routine_definition) FROM information_schema.routines +WHERE routine_schema = 'db_datadict'; +--horizontal_results + +# Cleanup +DROP DATABASE db_datadict; +# ---------------------------------------------------------------------------------------------- + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA table are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +USE db_datadict; +CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict'; +USE test; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.routines (routine_name, routine_type ) +VALUES ('p2', 'procedure'); + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.routines SET routine_name = 'p2' +WHERE routine_body = 'sql'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.routines ; +# +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.routines ; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX i7 ON information_schema.routines (routine_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.routines ADD f1 INT; +# +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.routines DISCARD TABLESPACE; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.routines ; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.routines RENAME db_datadict.routines; +# +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.routines RENAME information_schema.xroutines; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_schema_privileges.test b/mysql-test/suite/funcs_1/t/is_schema_privileges.test new file mode 100644 index 00000000000..4eb4a273362 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_schema_privileges.test @@ -0,0 +1,336 @@ +# suite/funcs_1/t/is_schema_privileges.test +# +# Check the layout of information_schema.schema_privileges and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing schemas +# information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = SCHEMA_PRIVILEGES; + +# The table INFORMATION_SCHEMA.SCHEMA_PRIVILEGES must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.15.1: INFORMATION_SCHEMA.SCHEMA_PRIVILEGES layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.SCHEMA_PRIVILEGES table has the following +# columns, in the following order: +# +# GRANTEE (shows a user to whom a schema privilege has been granted), +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the name of the database, or schema, on which the +# privilege has been granted), +# PRIVILEGE_TYPE (shows the granted privilege), +# IS_GRANTABLE (shows whether the privilege was granted WITH GRANT OPTION) +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns +# about information_schema.schema_privileges is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT GRANTEE, TABLE_CATALOG, TABLE_SCHEMA, PRIVILEGE_TYPE +FROM information_schema.schema_privileges WHERE table_catalog IS NOT NULL; + + +--echo ############################################################################### +--echo # Testcase 3.2.15.2-3.2.15.4 INFORMATION_SCHEMA.SCHEMA_PRIVILEGES accessibility +--echo ############################################################################### +# 3.2.15.2 Ensure that the table shows the relevant information on every +# schema-level privilege which has been granted to the current user +# or to PUBLIC, or has been granted by the current user. +# FIXME: Why is "or has been granted by the current user" invisible? +# 3.2.15.3 Ensure that the table does not show any information on any +# schema-level privileges which have been granted to users +# other than the current user or to PUBLIC, or that have been +# granted by any user other than the current user. +# 3.2.15.4 Ensure that the table does not show any information on any +# privileges that are not schema-level privileges for the +# current user. +# +# Note: Check of content within information_schema.schema_privileges about the +# databases information_schema, mysql and test is in +# is_schema_privileges_is_mysql_test. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict_1; +DROP DATABASE IF EXISTS db_datadict_2; +DROP DATABASE IF EXISTS db_datadict_3; +--enable_warnings +CREATE DATABASE db_datadict_1; +CREATE DATABASE db_datadict_2; +CREATE DATABASE db_datadict_3; +eval +CREATE TABLE db_datadict_2.t1(f1 INT, f2 INT, f3 INT) +ENGINE = $engine_type; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; + +GRANT INSERT ON db_datadict_1.* TO 'testuser1'@'localhost'; +GRANT INSERT ON db_datadict_2.t1 TO 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict_4.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT ON db_datadict_3.* TO 'testuser2'@'localhost'; +GRANT SELECT ON db_datadict_1.* TO 'testuser2'@'localhost'; + +let $my_select = SELECT * FROM information_schema.schema_privileges +WHERE table_schema LIKE 'db_datadict%' +ORDER BY grantee,table_schema,privilege_type; +let $show_testuser1 = SHOW GRANTS FOR 'testuser1'@'localhost'; +let $show_testuser2 = SHOW GRANTS FOR 'testuser2'@'localhost'; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +GRANT SELECT ON db_datadict_4.* TO 'testuser2'@'localhost'; +--echo # Root granted INSERT db_datadict_1 to me -> visible +--echo # Root granted SELECT db_datadict_1 to testuser2 -> invisible +--echo # Root granted INSERT db_datadict_2.t1 (no schema-level priv!) +--echo # but not db_datadict_2 to me -> invisible +--echo # Root granted SELECT db_datadict_3. to testuser2 but not to me -> invisible +--echo # Root granted SELECT db_datadict_4. to me -> visible +--echo # I granted SELECT db_datadict_4. to testuser2 -> invisible (reality), visible(requirement) +--echo # FIXME +eval $my_select; +eval $show_testuser1; +--error ER_DBACCESS_DENIED_ERROR +eval $show_testuser2; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , test); +--echo # Root granted SELECT db_datadict_1 to me -> visible +--echo # Root granted INSERT db_datadict_1 to testuser1 -> invisible +--echo # Root granted INSERT db_datadict_2.t1 but not db_datadict_1 to testuser1 -> invisible +--echo # Root granted SELECT db_datadict_3. to me -> visible +--echo # testuser1 granted SELECT db_datadict_4. to me -> visible +eval $my_select; +--error ER_DBACCESS_DENIED_ERROR +eval $show_testuser1; +eval $show_testuser2; + +--echo # Switch to connection default and close connections testuser1 and testuser2 +connection default; +disconnect testuser1; +disconnect testuser2; +eval $my_select; +eval $show_testuser1; +eval $show_testuser2; + +# Cleanup +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE db_datadict_1; +DROP DATABASE db_datadict_2; +DROP DATABASE db_datadict_3; + + +--echo ################################################################################ +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.SCHEMA_PRIVILEGES modifications +--echo ################################################################################ +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +# Note (mleich): +# The MySQL privilege system allows to GRANT objects before they exist. +# (Exception: Grant privileges for columns of not existing tables/views.) +# There is also no migration of privileges if objects (tables, views, columns) +# are moved to other databases (tables only), renamed or dropped. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--error 0,ER_CANNOT_USER +DROP USER 'the_user'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON test.* TO 'testuser1'@'localhost'; + +let $my_select = SELECT * FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict' +ORDER BY grantee,table_schema,privilege_type; + +############ Check grant SCHEMA +eval $my_select; +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +eval $my_select; +--echo # Switch to connection default +connection default; +GRANT UPDATE ON db_datadict.* TO 'testuser1'@'localhost'; +eval $my_select; +--echo # Switch to connection testuser1 +eval $my_select; +############ Check RENAME SCHEMA +# Implement this if RENAME SCHEMA is again available. +# Note(mleich): I expect that RENAME has no impact on the result sets, because +# the schema_name is not migrated. +# --echo # Switch to connection default +# connection default; +# RENAME SCHEMA db_datadict TO db_datadictx; +# eval $my_select; +# --echo # Switch to connection testuser1 +# eval $my_select; +# RENAME SCHEMA db_datadictx TO db_datadict; +############ Check extend PRIVILEGES (affects PRIVILEGE_TYPE) on SCHEMA +--echo # Switch to connection default +connection default; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +eval $my_select; +--echo # Switch to connection testuser1 +eval $my_select; +############ Check extend PRIVILEGES (affects IS_GRANTABLE) on SCHEMA +--echo # Switch to connection default +connection default; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +eval $my_select; +--echo # Switch to connection testuser1 +eval $my_select; +############ Check DROP SCHEMA +# No impact, because there is no "maintenance" of privileges. +--echo # Switch to connection default +connection default; +DROP SCHEMA db_datadict; +eval $my_select; +--echo # Switch to connection testuser1 +eval $my_select; +############ Check REVOKE PRIVILEGE +--echo # Switch to connection default +connection default; +REVOKE UPDATE ON db_datadict.* FROM 'testuser1'@'localhost'; +eval $my_select; +--echo # Switch to connection testuser1 +eval $my_select; +############ Check RENAME USER +--echo # Switch to connection default +connection default; +RENAME USER 'testuser1'@'localhost' TO 'the_user'@'localhost'; +eval $my_select; +--echo # Switch to connection testuser1 +eval $my_select; +--echo # Close connection testuser1 +disconnect testuser1; +--echo # Establish connection the_user (user=the_user) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (the_user, localhost, the_user, , test); +eval $my_select; +--echo # Close connection the_user +disconnect the_user; +############ Check DROP USER +--echo # Switch to connection default +connection default; +eval $my_select; +DROP USER 'the_user'@'localhost'; +eval $my_select; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA table are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT) +ENGINE = $engine_type; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.schema_privileges +SELECT * FROM information_schema.schema_privileges; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.schema_privileges SET table_schema = 'test' +WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.schema_privileges +WHERE table_schema = 'db_datadict'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.schema_privileges; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx_on_tables +ON information_schema.schema_privileges(table_schema); +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.schema_privileges ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.schema_privileges; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.schema_privileges +RENAME db_datadict.schema_privileges; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.schema_privileges +RENAME information_schema.xschema_privileges; + +# Cleanup +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; + diff --git a/mysql-test/suite/funcs_1/t/is_schema_privileges_is_mysql_test.test b/mysql-test/suite/funcs_1/t/is_schema_privileges_is_mysql_test.test new file mode 100644 index 00000000000..cb34d1bad2d --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_schema_privileges_is_mysql_test.test @@ -0,0 +1,58 @@ +# suite/funcs_1/t/is_schema_privileges_is_mysql_test.test +# +# Check the content of information_schema.schema_privileges about the databases +# information_schema, mysql and test visible to high and low privileged users. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# +# + +--echo ############################################################################## +--echo # Testcases 3.2.9.2+3.2.9.3 INFORMATION_SCHEMA.SCHEMATA accessible information +--echo ############################################################################## +# 3.2.9.2 Ensure that the table shows the relevant information for every +# database on which the current user or PUBLIC have privileges. +# 3.2.9.3 Ensure that the table does not show any information on any databases +# on which the current user and PUBLIC have no privileges. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +# Create a low privileged user. +# Note: The database db_datadict is just a "home" for the low privileged user +# and not in the focus of testing. +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; + +let $my_select = SELECT * FROM information_schema.schema_privileges +WHERE table_schema IN ('information_schema','mysql','test') +ORDER BY grantee, table_schema, privilege_type; +let $my_show1 = SHOW DATABASES LIKE 'information_schema'; +let $my_show2 = SHOW DATABASES LIKE 'mysql'; +let $my_show3 = SHOW DATABASES LIKE 'test'; +eval $my_select; +eval $my_show1; +eval $my_show2; +eval $my_show3; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +eval $my_select; +eval $my_show1; +eval $my_show2; +eval $my_show3; + +# Cleanup +--echo # Switch to connection default and close connection testuser1 +connection default; +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_schemata.test b/mysql-test/suite/funcs_1/t/is_schemata.test new file mode 100644 index 00000000000..7eb08dba463 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_schemata.test @@ -0,0 +1,246 @@ +# suite/funcs_1/t/is_schemata.test +# +# Check the layout of information_schema.schemata, permissions and the impact of +# CREATE/ALTER/DROP SCHEMA on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing databases +# information_schema and mysql +# - for checking storage engine properties +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $is_table = SCHEMATA; + +# The table INFORMATION_SCHEMA.SCHEMATA must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.9.1: INFORMATION_SCHEMA.SCHEMATA layout; +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.SCHEMATA table has the following columns, +# in the following order: +# +# CATALOG_NAME (always shows NULL), +# SCHEMA_NAME (shows the name of a database, or schema, on which the current +# user or PUBLIC has privileges), +# DEFAULT_CHARACTER_SET_NAME (shows the name of that database's default +# character set), +# DEFAULT_COLLATION_NAME (shows the database defaul collation) +# SQL_PATH (always shows NULL). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.schemata is in is_columns_is.test. + +# Show that CATALOG_NAME and SQL_PATH are always NULL. +SELECT catalog_name, schema_name, sql_path +FROM information_schema.schemata +WHERE catalog_name IS NOT NULL or sql_path IS NOT NULL; + + +--echo ############################################################################### +--echo # Testcases 3.2.9.2+3.2.9.3: INFORMATION_SCHEMA.SCHEMATA accessible information +--echo ############################################################################### +# 3.2.9.2 Ensure that the table shows the relevant information for every +# database on which the current user or PUBLIC have privileges. +# 3.2.9.3 Ensure that the table does not show any information on any databases +# on which the current user and PUBLIC have no privileges. +# +# Note: Check of content within information_schema.schemata about the databases +# information_schema and mysql is in +# suite/funcs_1/t/is_schemata_is_mysql.test. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict_1; +DROP DATABASE IF EXISTS db_datadict_2; +--enable_warnings +CREATE DATABASE db_datadict_1; +CREATE DATABASE db_datadict_2; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; + +GRANT SELECT ON db_datadict_1.* to 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict_1.* to 'testuser2'@'localhost'; +GRANT SELECT ON db_datadict_2.* to 'testuser2'@'localhost'; + +let $my_select = SELECT * FROM information_schema.schemata +WHERE schema_name LIKE 'db_datadict_%' ORDER BY schema_name; +let $my_show = SHOW DATABASES LIKE 'db_datadict_%'; + +eval $my_select; +--sorted_result +eval $my_show; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict_1); +# Shows db_datadict_1 +eval $my_select; +--sorted_result +eval $my_show; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict_2); +# Shows db_datadict_1 and db_datadict_2 +eval $my_select; +--sorted_result +eval $my_show; + +--echo # Establish connection testuser3 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser3, localhost, testuser3, , test); +# Shows neither db_datadict_1 nor db_datadict_2 +eval $my_select; +--sorted_result +eval $my_show; + +# Cleanup +--echo # Switch to connection default and close connections testuser1,testuser2,testuser3 +connection default; +disconnect testuser1; +disconnect testuser2; +disconnect testuser3; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE db_datadict_1; +DROP DATABASE db_datadict_2; + + +--echo ################################################################################# +--echo # Testcases 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.SCHEMATA modifications +--echo ################################################################################# +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings + +SELECT * FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +CREATE DATABASE db_datadict CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci'; +SELECT * FROM information_schema.schemata WHERE schema_name = 'db_datadict'; + +# Check modify default CHARACTER SET +SELECT schema_name, default_character_set_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +ALTER SCHEMA db_datadict CHARACTER SET 'utf8'; +SELECT schema_name, default_character_set_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +ALTER SCHEMA db_datadict CHARACTER SET 'latin1'; + +# Check modify default COLLATION +SELECT schema_name, default_collation_name FROM information_schema.schemata +WHERE schema_name = 'db_datadict'; +ALTER SCHEMA db_datadict COLLATE 'latin1_general_cs'; +SELECT schema_name, default_collation_name FROM information_schema.schemata +WHERE schema_name = 'db_datadict'; + +# Check DROP DATABASE +SELECT schema_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +DROP DATABASE db_datadict; +SELECT schema_name +FROM information_schema.schemata WHERE schema_name = 'db_datadict'; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci'; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.schemata + (catalog_name, schema_name, default_character_set_name, sql_path) +VALUES (NULL, 'db1', 'latin1', NULL); +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.schemata +SELECT * FROM information_schema.schemata; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.schemata +SET default_character_set_name = 'utf8' +WHERE schema_name = 'db_datadict'; +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.schemata SET catalog_name = 't_4711'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.schemata WHERE schema_name = 'db_datadict'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.schemata; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX i1 ON information_schema.schemata(schema_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.schemata ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.schemata; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.schemata RENAME db_datadict.schemata; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.schemata RENAME information_schema.xschemata; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test b/mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test new file mode 100644 index 00000000000..cabcfa640d7 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_schemata_is_mysql_test.test @@ -0,0 +1,58 @@ +# suite/funcs_1/t/is_schemata_is_mysql_test.test +# +# Check the content of information_schema.schemata about the databases +# information_schema and mysql visible to high and low privileged users. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# +# + +--echo ################################################################################# +--echo # Testcases 3.2.9.2 + 3.2.9.3: INFORMATION_SCHEMA.SCHEMATA accessible information +--echo ################################################################################# +# 3.2.9.2 Ensure that the table shows the relevant information for every +# database on which the current user or PUBLIC have privileges. +# 3.2.9.3 Ensure that the table does not show any information on any databases +# on which the current user and PUBLIC have no privileges. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +# Create a low privileged user. +# Note: The database db_datadict is just a "home" for the low privileged user +# and not in the focus of testing. +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; + +let $my_select = SELECT * FROM information_schema.schemata +WHERE schema_name IN ('information_schema','mysql','test') +ORDER BY schema_name; +let $my_show1 = SHOW DATABASES LIKE 'information_schema'; +let $my_show2 = SHOW DATABASES LIKE 'mysql'; +let $my_show3 = SHOW DATABASES LIKE 'test'; +eval $my_select; +eval $my_show1; +eval $my_show2; +eval $my_show3; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +eval $my_select; +eval $my_show1; +eval $my_show2; +eval $my_show3; + +# Cleanup +--echo # Switch to connection default and close connection testuser1 +connection default; +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_statistics.test b/mysql-test/suite/funcs_1/t/is_statistics.test new file mode 100644 index 00000000000..5b17b711fff --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_statistics.test @@ -0,0 +1,379 @@ +# suite/funcs_1/t/is_statistics.test +# +# Check the layout of information_schema.statistics and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on its content. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = STATISTICS; + +# The table INFORMATION_SCHEMA.STATISTICS must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.14.1: INFORMATION_SCHEMA.STATISTICS layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.STATISTICS table has the following columns, +# in the following order: +# +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the database, or schema, in which a table indexed by +# an accessible index resides), +# TABLE_NAME (shows the name of the indexed table), +# NON_UNIQUE (shows whether the index may contain duplicate values; +# 0 if it cannot, 1 if it can), +# INDEX_SCHEMA (shows the database, or schema, in which an accessible +# index resides), +# INDEX_NAME (shows the name of an index which the current user may access), +# SEQ_IN_INDEX (shows the ordinal position of an indexed column within +# the index), +# COLUMN_NAME (shows the name of a column that comprises some, or all, of an +# index key), +# COLLATION (shows how the column is sorted in the index; either A for ascending +# or NULL for unsorted columns), +# CARDINALITY (shows the number of unique values in the index), +# SUB_PART (shows the number of indexed characters if the index is +# a prefix index), +# PACKED (shows how the index key is packed), +# NULLABLE (shows whether the index column may contain NULL values), +# INDEX_TYPE (shows the index type; either BTREE, FULLTEXT, HASH or RTREE), +# COMMENT (shows a comment on the index, if any). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.statistics is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT table_catalog, table_schema, table_name, index_schema, index_name +FROM information_schema.statistics WHERE table_catalog IS NOT NULL; + + +--echo #################################################################################### +--echo # Testcase 3.2.14.2 + 3.2.14.3: INFORMATION_SCHEMA.STATISTICS accessible information +--echo #################################################################################### +# 3.2.14.2 Ensure that the table shows the relevant information on every index +# which the current user or PUBLIC may access (usually because +# privileges on the indexed table have been granted). +# 3.2.14.3 Ensure that the table does not show any information on any indexes +# which the current user and PUBLIC may not access. +# +# Note: Check of content within information_schema.statistics about +# database is in +# mysql is_statistics_mysql.test +# information_schema is_statistics_is.test +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +DROP DATABASE IF EXISTS db_datadict_2; +--enable_warnings +CREATE DATABASE db_datadict; +CREATE DATABASE db_datadict_2; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; + +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 + (f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) +ENGINE = $engine_type; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t2 + (f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) +ENGINE = $engine_type; + +eval +CREATE TABLE db_datadict_2.t3 + (f1 INT NOT NULL, f2 INT, f5 DATE, + PRIMARY KEY(f1), INDEX f2f1_ind(f2,f1), UNIQUE(f5)) +ENGINE = $engine_type; +eval +CREATE TABLE db_datadict_2.t4 + (f1 INT NOT NULL, PRIMARY KEY(f1), f2 INT, INDEX f2_ind(f2)) +ENGINE = $engine_type; + +let $my_select = SELECT * FROM information_schema.statistics +WHERE table_schema LIKE 'db_datadict%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +let $my_show1 = SHOW GRANTS FOR 'testuser1'@'localhost'; +let $my_show2 = SHOW GRANTS FOR 'testuser2'@'localhost'; +eval $my_select; +eval $my_show1; +eval $my_show2; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +# nothing visible for testuser1 +eval $my_select; +eval $my_show1; +--error ER_DBACCESS_DENIED_ERROR +eval $my_show2; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , test); +# nothing visible for testuser2 +eval $my_select; +--error ER_DBACCESS_DENIED_ERROR +eval $my_show1; +eval $my_show2; + +--echo # Switch to connection default +connection default; +GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT(f1,f5) ON db_datadict_2.t3 TO 'testuser1'@'localhost'; +eval $my_select; +eval $my_show1; +eval $my_show2; + +--echo # Switch to connection testuser1 +connection testuser1; +eval $my_select; +eval $my_show1; +--error ER_DBACCESS_DENIED_ERROR +eval $my_show2; + +--echo # Switch to connection testuser2 +connection testuser2; +eval $my_select; +--error ER_DBACCESS_DENIED_ERROR +eval $my_show1; +eval $my_show2; + +--echo # Switch to connection default +connection default; +REVOKE SELECT,GRANT OPTION ON db_datadict.t1 FROM 'testuser1'@'localhost'; +eval $my_show1; + +--echo # Switch to connection testuser1 +# nothing visible for testuser1 +connection testuser1; +eval $my_select; +eval $my_show1; + +# Cleanup +--echo # Switch to connection default and close connections testuser1, testuser2 +connection default; +disconnect testuser1; +disconnect testuser2; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP DATABASE db_datadict; +DROP DATABASE db_datadict_2; + + +--echo ######################################################################### +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.STATISTICS modifications +--echo ######################################################################### +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +--disable_warnings +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $other_engine_type +eval +CREATE TABLE test.t1_1 (f1 BIGINT, + f2 TEXT, f2x TEXT, f3 CHAR(10), f3x CHAR(10), f4 BIGINT, f4x BIGINT, + f5 POINT, f5x POINT NOT NULL) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = $other_engine_type; +--replace_result $engine_type +eval +CREATE TABLE test.t1_2 (f1 BIGINT, f2 BIGINT) +ENGINE = $engine_type; + +# Tables without primary key or index do not show up +# in information_schema.statistics. +SELECT table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_%'; +# Check ADD PRIMARY KEY (two columns) +ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1,f3); +SELECT * FROM information_schema.statistics +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +# Check DROP PRIMARY KEY +ALTER TABLE test.t1_1 DROP PRIMARY KEY; +SELECT table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_%'; +# Check ADD PRIMARY KEY (one column) +ALTER TABLE test.t1_1 ADD PRIMARY KEY (f1); +SELECT * FROM information_schema.statistics +WHERE table_name LIKE 't1_%'; +# Some variations on index definitions +# 1. No name assigned, one column +ALTER TABLE test.t1_1 ADD INDEX (f4); +# 2. Name assigned, two columns +CREATE INDEX f3_f1 ON test.t1_1 (f3,f1); +# 3. Unique index +CREATE UNIQUE INDEX f4x_uni ON test.t1_1 (f4x); +# 4. Index using HASH +CREATE INDEX f2_hash USING HASH ON test.t1_2 (f2); +# 5. Index with comment (feature introduced in 5.2) +--error ER_PARSE_ERROR +CREATE INDEX f1_idx ON test.t1_2 (f1) COMMENT = 'COMMENT'; +# 6. NOT NULL +CREATE INDEX not_null ON test.t1_1 (f3x); +# 7. Prefix index +CREATE INDEX f2_prefix ON test.t1_1 (f2(20)); +# +SELECT * FROM information_schema.statistics +WHERE table_name LIKE 't1_%' AND index_name <> 'PRIMARY' +ORDER BY table_schema,table_name,index_name,seq_in_index,column_name; +--horizontal_results +DROP TABLE test.t1_2; +# +# Check modification of TABLE_NAME +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1'; +RENAME TABLE test.t1_1 TO test.t1_1x; +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +# +# Check modification of TABLE_SCHEMA +SELECT DISTINCT table_schema,table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_1%'; +RENAME TABLE test.t1_1x TO db_datadict.t1_1x; +SELECT DISTINCT table_schema,table_name FROM information_schema.statistics +WHERE table_name LIKE 't1_1%'; +# +# Check impact of DROP TABLE +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +DROP TABLE db_datadict.t1_1x; +SELECT DISTINCT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +# +# Check a temporary table (not visible) +--replace_result $engine_type +eval +CREATE TEMPORARY TABLE test.t1_1x (PRIMARY KEY(f1,f2)) +ENGINE = $engine_type + AS SELECT 1 AS f1, 2 AS f2; +--vertical_results +SELECT * FROM information_schema.statistics +WHERE table_name = 't1_1x'; +--horizontal_results +DROP TEMPORARY TABLE test.t1_1x; +# +# Check impact of DROP SCHEMA +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_1x (PRIMARY KEY(f1)) +ENGINE = $engine_type + AS SELECT 1 AS f1, 2 AS f2; +SELECT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.statistics +WHERE table_name = 't1_1x'; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = $engine_type; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.statistics +SELECT * FROM information_schema.statistics; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.statistics SET table_schema = 'test' +WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.statistics WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.statistics; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx_on_statistics +ON information_schema.statistics(table_schema); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.statistics DROP PRIMARY KEY; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.statistics ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.statistics; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.statistics RENAME db_datadict.statistics; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.statistics RENAME information_schema.xstatistics; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_statistics_is.test b/mysql-test/suite/funcs_1/t/is_statistics_is.test new file mode 100644 index 00000000000..0cf5df64955 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_statistics_is.test @@ -0,0 +1,14 @@ +# suite/funcs_1/t/is_statistics_is.test +# +# Check the content of information_schema.statistics about tables within +# the database information_schema for a high and a low privileged user. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $my_where = WHERE table_schema = 'information_schema'; +--source suite/funcs_1/datadict/statistics.inc + diff --git a/mysql-test/suite/funcs_1/t/is_statistics_mysql.test b/mysql-test/suite/funcs_1/t/is_statistics_mysql.test new file mode 100644 index 00000000000..a75cc922777 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_statistics_mysql.test @@ -0,0 +1,15 @@ +# suite/funcs_1/t/is_statistics_mysql.test +# +# Check the content of information_schema.statistics about tables within +# the database mysql for a high and a low privileged user. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $database = mysql; +let $my_where = WHERE table_schema = 'mysql'; +--source suite/funcs_1/datadict/statistics.inc + diff --git a/mysql-test/suite/funcs_1/t/is_table_constraints.test b/mysql-test/suite/funcs_1/t/is_table_constraints.test new file mode 100644 index 00000000000..60d5ebce703 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_table_constraints.test @@ -0,0 +1,331 @@ +# suite/funcs_1/t/is_table_constraints.test +# +# Check the layout of information_schema.table_constraints and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA/COLUMN ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_typee. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MyISAM; + +let $is_table = TABLE_CONSTRAINTS; + +# The table INFORMATION_SCHEMA.TABLE_CONSTRAINTS must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.10.1: INFORMATION_SCHEMA.TABLE_CONSTRAINTS layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.TABLE_CONSTRAINTS table has the following +# columns, in the following order: +# +# CONSTRAINT_CATALOG (always shows NULL), +# CONSTRAINT_SCHEMA (shows the database, or schema, in which +# a constraint an accessible table resides), +# CONSTRAINT_NAME (shows the name of a constraint defined on +# an accessible table), +# TABLE_SCHEMA (shows the database, or schema, in which the +# table resides), +# TABLE_NAME (shows the name of the table), +# CONSTRAINT_TYPE (shows the type of the constraint; either +# 'primary key', 'foreign key', 'unique', 'check'). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.table_constraints is in is_columns_is.test. + +# Show that CONSTRAINT_CATALOG IS NULL +SELECT constraint_catalog, constraint_schema, constraint_name, + table_schema, table_name +FROM information_schema.table_constraints +WHERE constraint_catalog IS NOT NULL; + + +--echo ######################################################################################### +--echo # Testcase 3.2.7.2 + 3.2.7.3: INFORMATION_SCHEMA.TABLE_CONSTRAINTS accessible information +--echo ######################################################################################### +# 3.2.7.2: Ensure that the table shows the relevant information on every +# column, defined to be part of an index key, which is accessible to +# the current user or to PUBLIC. +# 3.2.7.3: Ensure that the table does not show any information on any indexed +# column that is not accessible to the current user or PUBLIC. +# +# Note: Check of content within table_constraints about tables within +# database is checked in +# mysql is_table_constraints_mysql +# information_schema is_table_constraints_is +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT, f3 BIGINT, f4 BIGINT, + f5 BIGINT, f6 BIGINT, PRIMARY KEY (f1,f2)) +ENGINE = $engine_type; +CREATE UNIQUE INDEX my_idx1 ON db_datadict.t1(f6,f1); +CREATE UNIQUE INDEX my_idx2 ON db_datadict.t1(f3); +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t2 (f1 BIGINT, f2 BIGINT, f3 BIGINT, f4 BIGINT, + f5 BIGINT, f6 BIGINT, PRIMARY KEY (f1,f2)) +ENGINE = $engine_type; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT(f5) ON db_datadict.t1 TO 'testuser1'@'localhost'; +SHOW GRANTS FOR 'testuser1'@'localhost'; + +let $my_select = SELECT * FROM information_schema.table_constraints +WHERE table_schema = 'db_datadict' +ORDER BY table_schema,table_name, constraint_name; +let $my_show1 = SHOW INDEXES FROM db_datadict.t1; +let $my_show2 = SHOW INDEXES FROM db_datadict.t2; + +eval $my_select; +# 1 Table Note: We intentinally suppress the protocolling of all +# 2 Non_unique output being not of interest or depending on +# 3 Key_name storage engine used for the table. +# 4 Seq_in_index +# 5 Column_name +# 6 Collation +# 7 Cardinality +# 8 Sub_part +# 9 Packed +# 10 Null +# 11 Index_type +# 12 Comment +--replace_column 6 ### 7 ### 8 ### 9 ### 10 ### 11 ### 12 ### +eval $my_show1; +--replace_column 6 ### 7 ### 8 ### 9 ### 10 ### 11 ### 12 ### +eval $my_show2; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +SHOW GRANTS FOR 'testuser1'@'localhost'; +eval $my_select; +--replace_column 6 ### 7 ### 8 ### 9 ### 10 ### 11 ### 12 ### +eval $my_show1; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_show2; + +# Cleanup +--echo # Switch to connection default and close connection testuser1 +connection default; +disconnect testuser1; +DROP USER 'testuser1'@'localhost'; +DROP DATABASE db_datadict; + + +--echo ######################################################################################### +--echo # Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLE_CONSTRAINTS modifications +--echo ######################################################################################### +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS test.t1_my_table; +--enable_warnings +CREATE DATABASE db_datadict; + +SELECT table_name FROM information_schema.table_constraints +WHERE table_name LIKE 't1_my_table%'; +--replace_result $engine_type +eval +CREATE TABLE test.t1_my_table + (f1 CHAR(12), f2 TIMESTAMP, f4 BIGINT, PRIMARY KEY(f1,f2)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = $engine_type; +# Settings used in CREATE TABLE must be visible +# in information_schema.table_constraints. +SELECT constraint_name, table_schema, table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_table'; +# +# Check modification of TABLE_NAME +SELECT table_name FROM information_schema.table_constraints +WHERE table_name LIKE 't1_my_table%'; +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT table_name FROM information_schema.table_constraints +WHERE table_name LIKE 't1_my_table%'; +# +# Check modification of TABLE_SCHEMA +SELECT table_schema,table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT table_schema,table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +# +let $my_select = SELECT constraint_schema, constraint_name, table_schema, +table_name, constraint_type +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex' +ORDER BY table_schema,table_name, constraint_name; +# +# Check ADD INDEX being not UNIQUE (does not show up in table_constraints) +eval $my_select; +CREATE INDEX f2 ON db_datadict.t1_my_tablex(f2); +eval $my_select; +DROP INDEX f2 ON db_datadict.t1_my_tablex; +# +# Check ADD UNIQUE INDEX without name explicit assigned +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE (f2); +eval $my_select; +DROP INDEX f2 ON db_datadict.t1_my_tablex; +# +# Check ADD UNIQUE INDEX with name explicit assigned +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f4,f1); +eval $my_select; +DROP INDEX my_idx ON db_datadict.t1_my_tablex; +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f2); +eval $my_select; +# +# Check DROP COLUMN (removing an UNIQUE INDEX) +eval $my_select; +ALTER TABLE db_datadict.t1_my_tablex +DROP COLUMN f2; +eval $my_select; +# +# Check impact of DROP TABLE +SELECT table_name +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name +FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +# +# No UNIQUE CONSTRAINT -> no entry in key_column_usage +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = $engine_type AS +SELECT 1 AS f1; +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +# UNIQUE CONSTRAINT -> entry in key_column_usage +ALTER TABLE db_datadict.t1_my_tablex ADD PRIMARY KEY(f1); +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +# +# Check impact of DROP SCHEMA +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.table_constraints +WHERE table_name = 't1_my_tablex'; +# + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +DROP TABLE IF EXISTS db_datadict.t1; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT, UNIQUE(f1)) +ENGINE = $engine_type; + +--error ER_DBACCESS_DENIED_ERROR + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.table_constraints + (constraint_schema, constraint_name, table_name) +VALUES ( 'mysql', 'primary', 'db'); +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.table_constraints +SELECT * FROM information_schema.table_constraints; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.table_constraints +SET table_name = 'db1' WHERE constraint_name = 'primary'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.table_constraints WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.table_constraints; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX i3 ON information_schema.table_constraints(table_name); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.table_constraints ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.table_constraints; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.table_constraints +RENAME db_datadict.table_constraints; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.table_constraints +RENAME information_schema.xtable_constraints; + +# Cleanup +DROP TABLE db_datadict.t1; +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_table_constraints_is.test b/mysql-test/suite/funcs_1/t/is_table_constraints_is.test new file mode 100644 index 00000000000..6105126386a --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_table_constraints_is.test @@ -0,0 +1,14 @@ +# suite/funcs_1/t/is_table_constraints_is.test +# +# Check the content of information_schema.table_constraints about tables within +# the database information_schema with different privileged users. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $table_schema = information_schema; +--source suite/funcs_1/datadict/table_constraints.inc + diff --git a/mysql-test/suite/funcs_1/t/is_table_constraints_mysql.test b/mysql-test/suite/funcs_1/t/is_table_constraints_mysql.test new file mode 100644 index 00000000000..5ef1561ccdf --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_table_constraints_mysql.test @@ -0,0 +1,14 @@ +# suite/funcs_1/t/is_table_constraints_mysql.test +# +# Check the content of information_schema.table_constraints about tables within +# the database mysql (= the system tables) with different privileged users. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $table_schema = mysql; +--source suite/funcs_1/datadict/table_constraints.inc + diff --git a/mysql-test/suite/funcs_1/t/is_table_privileges.test b/mysql-test/suite/funcs_1/t/is_table_privileges.test new file mode 100644 index 00000000000..b095a5ddad6 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_table_privileges.test @@ -0,0 +1,349 @@ +# suite/funcs_1/t/is_table_privileges.test +# +# Check the layout of information_schema.table_privileges and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = TABLE_PRIVILEGES; + +# The table INFORMATION_SCHEMA.TABLE_PRIVILEGES must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.11.1: INFORMATION_SCHEMA.TABLE_PRIVILEGES layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.TABLE_PRIVILEGES table has the following +# columns, in the following order: +# +# GRANTEE (shows the name of a user who has either granted, or been granted a +# table privilege), +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the name of the schema, or database, in which the table +# for which a privilege has been granted resides), +# TABLE_NAME (shows the name of the table), +# PRIVILEGE_TYPE (shows the type of privilege that was granted; must be either +# SELECT, INSERT, UPDATE, DELETE, REFERENCES, ALTER, INDEX, DROP or +# CREATE VIEW), +# IS_GRANTABLE (shows whether that privilege was granted WITH GRANT OPTION). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns +# about information_schema.table_privileges is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT table_catalog, table_schema, table_name, privilege_type +FROM information_schema.table_privileges WHERE table_catalog IS NOT NULL; + +--echo ###################################################################### +--echo # Testcase 3.2.11.2+3.2.11.3+3.2.11.4: +--echo # INFORMATION_SCHEMA.TABLE_PRIVILEGES accessible information +--echo ###################################################################### +# 3.2.11.2: Ensure that the table shows the relevant information on every +# table privilege which has been granted to the current user or +# PUBLIC, or which was granted by the current user. +# 3.2.11.3: Ensure that the table does not show any information on any table +# privilege which was granted to any user other than the current +# user or PUBLIC, or which was granted by any user other than the +# current user. +# 3.2.11.4: Ensure that the table does not show any information on any +# privileges that are not table privileges for the current user. +# +# To be implemented: +# Check of content within information_schema.table_privileges about +# databases like 'information_schema' or 'mysql'. +# 2008-02-15 Neither root nor a just created low privileged user has table +# privileges within these schemas. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.tb1(f1 INT, f2 INT, f3 INT) +ENGINE = $engine_type; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT CREATE, SELECT ON db_datadict.* +TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT ON db_datadict.tb1 TO 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +GRANT ALL ON db_datadict.tb1 TO 'testuser2'@'localhost' WITH GRANT OPTION; +--error 0,ER_CANNOT_USER +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; + +let $my_select = SELECT * FROM information_schema.table_privileges +WHERE table_name LIKE 'tb%' +ORDER BY grantee,table_schema,table_name,privilege_type; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +--replace_result $other_engine_type +eval +CREATE TABLE tb3 (f1 TEXT) +ENGINE = $other_engine_type; +GRANT SELECT ON db_datadict.tb3 TO 'testuser3'@'localhost'; +eval $my_select; +SHOW GRANTS FOR 'testuser1'@'localhost'; + +--echo # Establish connection testuser2 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +# we see only table privileges for this user, and not any other privileges +eval $my_select; +SHOW GRANTS FOR 'testuser2'@'localhost'; + +--echo # Establish connection testuser3 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser3, localhost, testuser3, , db_datadict); +# we see only table privileges for this user, and not any other privileges +eval $my_select; +SHOW GRANTS FOR 'testuser3'@'localhost'; + +--echo # Switch to connection default and close the other connections +connection default; +disconnect testuser1; +disconnect testuser2; +disconnect testuser3; + +# we see only 'public' table privileges +eval $my_select; +SHOW GRANTS FOR 'testuser1'@'localhost'; +SHOW GRANTS FOR 'testuser2'@'localhost'; +SHOW GRANTS FOR 'testuser3'@'localhost'; + +# Cleanup +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE db_datadict; + + +--echo ################################################################################ +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLE_PRIVILEGES modifications +--echo ################################################################################ +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +# Note (mleich): +# The MySQL privilege system allows to GRANT objects before they exist. +# (Exception: Grant privileges for columns of not existing tables/views.) +# There is also no migration of privileges if objects (tables,views,columns) +# are moved to other databases (tables only), renamed or dropped. +# +--disable_warnings +DROP TABLE IF EXISTS test.t1_table; +DROP VIEW IF EXISTS test.t1_view; +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE test.t1_table (f1 BIGINT) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +COMMENT = 'Initial Comment' ENGINE = $engine_type; +CREATE VIEW test.t1_view AS SELECT 1; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'the_user'@'localhost'; +# +# Check granted TABLE and VIEW +SELECT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%'; +GRANT ALL ON test.t1_table TO 'testuser1'@'localhost'; +GRANT ALL ON test.t1_view TO 'testuser1'@'localhost'; +SELECT * FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY grantee, table_schema, table_name, privilege_type; +# +# Check modification of GRANTEE (migration of permissions) +SELECT DISTINCT grantee, table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY grantee, table_name; +RENAME USER 'testuser1'@'localhost' TO 'the_user'@'localhost'; +# FIXME: mleich Workaround for bug to be reported +# It looks like an immediate reloading of the system tables is missing in case +# of RENAME USER. +FLUSH PRIVILEGES; +SELECT DISTINCT grantee, table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY grantee, table_name; +--error ER_NONEXISTING_GRANT +SHOW GRANTS FOR 'testuser1'@'localhost'; +SHOW GRANTS FOR 'the_user'@'localhost'; +# +# Check modification of TABLE_SCHEMA (no migration of permissions) +SELECT DISTINCT table_schema,table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +RENAME TABLE test.t1_table TO db_datadict.t1_table; +--error ER_FORBID_SCHEMA_CHANGE +RENAME TABLE test.t1_view TO db_datadict.t1_view; +SELECT DISTINCT table_schema,table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +SHOW GRANTS FOR 'the_user'@'localhost'; +REVOKE ALL PRIVILEGES ON test.t1_table FROM 'the_user'@'localhost'; +REVOKE ALL PRIVILEGES ON test.t1_view FROM 'the_user'@'localhost'; +DROP VIEW test.t1_view; +CREATE VIEW db_datadict.t1_view AS SELECT 1; +GRANT ALL ON db_datadict.t1_table TO 'the_user'@'localhost'; +GRANT ALL ON db_datadict.t1_view TO 'the_user'@'localhost'; +# +# Check modification of TABLE_NAME (no migration of permissions) +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +RENAME TABLE db_datadict.t1_table TO db_datadict.t1_tablex; +RENAME TABLE db_datadict.t1_view TO db_datadict.t1_viewx; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +RENAME TABLE db_datadict.t1_tablex TO db_datadict.t1_table; +RENAME TABLE db_datadict.t1_viewx TO db_datadict.t1_view; +# +# Check impact of DROP TABLE/VIEW (no removal of permissions) +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +DROP TABLE db_datadict.t1_table; +DROP VIEW db_datadict.t1_view; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +# +# Check impact of DROP SCHEMA (no removal of permissions) +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_table +ENGINE = $engine_type AS +SELECT 1; +CREATE VIEW db_datadict.t1_view AS SELECT 1; +GRANT ALL ON db_datadict.t1_table TO 'the_user'@'localhost'; +GRANT ALL ON db_datadict.t1_view TO 'the_user'@'localhost'; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +DROP DATABASE db_datadict; +SELECT DISTINCT table_name FROM information_schema.table_privileges +WHERE table_name LIKE 't1_%' +ORDER BY table_name; + +# Cleanup +DROP USER 'the_user'@'localhost'; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA table are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT) +ENGINE = $engine_type; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT SELECT (f1) ON db_datadict.t1 TO 'testuser1'@'localhost'; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.table_privileges +SELECT * FROM information_schema.table_privileges; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.table_privileges SET table_schema = 'test' +WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.table_privileges WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.table_privileges; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx_on_tables +ON information_schema.table_privileges(table_schema); +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.table_privileges ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.table_privileges; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.table_privileges +RENAME db_datadict.table_privileges; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.table_privileges +RENAME information_schema.xtable_privileges; + +# Cleanup +DROP DATABASE db_datadict; +DROP USER 'testuser1'@'localhost'; + diff --git a/mysql-test/suite/funcs_1/t/is_tables.test b/mysql-test/suite/funcs_1/t/is_tables.test new file mode 100644 index 00000000000..35b6b7ef007 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_tables.test @@ -0,0 +1,474 @@ +# suite/funcs_1/t/tables.test +# +# Check the layout of information_schema.tables and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# Some results of the subtests depend on the storage engines assigned. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = TABLES; + +# The table INFORMATION_SCHEMA.TABLES must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.12.1: INFORMATION_SCHEMA.TABLES layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.TABLES table has the following columns, +# in the following order: +# +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the name of the database, or schema, in which an +# accessible table resides), +# TABLE_NAME (shows the name of a table which the current user may access), +# TABLE_TYPE (shows whether the table is a BASE TABLE, a TEMPORARY table, +# or a VIEW), +# ENGINE (shows the storage engine used for the table), +# VERSION (shows the version number of the table's .frm file), +# ROW_FORMAT (shows the table's row storage format; either FIXED, DYNAMIC +# or COMPRESSED), +# TABLE_ROWS (shows the number of rows in the table), +# AVG_ROW_LENGTH (shows the average length of the table's rows), +# DATA_LENGTH (shows the length of the table's data file), +# MAX_DATA_LENGTH (shows the maximum length of the table's data file), +# INDEX_LENGTH (shows the length of the index file associated with the table), +# DATA_FREE (shows the number of allocated, unused bytes), +# AUTO_INCREMENT (shows the next AUTO_INCREMENT value, where applicable), +# CREATE_TIME (shows the timestamp of the time the table was created), +# UPDATE_TIME (shows the timestamp of the time the table's data file was +# last updated), +# CHECK_TIME (shows the timestamp of the time the table was last checked), +# TABLE_COLLATION (shows the table's default collation), +# CHECKSUM (shows the live checksum value for the table, if any; otherwise NULL), +# CREATE_OPTIONS (shows any additional options used in the table's definition; +# otherwise NULL), +# TABLE_COMMENT (shows the comment added to the table's definition; +# otherwise NULL). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.tables is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT table_catalog, table_schema, table_name +FROM information_schema.tables WHERE table_catalog IS NOT NULL; + + +--echo ################################################################################ +--echo # Testcase 3.2.12.2 + 3.2.12.3: INFORMATION_SCHEMA.TABLES accessible information +--echo ################################################################################ +# 3.2.12.2: Ensure that the table shows the relevant information on every base table +# and view on which the current user or PUBLIC has privileges. +# 3.2.12.3: Ensure that the table does not show any information on any tables +# on which the current user and public have no privileges. +# +# Note: Check of content within information_schema.tables about tables within +# database is in +# mysql is_tables_mysql.test +# information_schema is_tables_is.test +# test% is_tables_.test +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.* + TO 'testuser1'@'localhost' WITH GRANT OPTION; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; + +--replace_result $engine_type +eval +CREATE TABLE db_datadict.tb1 (f1 INT, f2 INT, f3 INT) +ENGINE = $engine_type; + +GRANT SELECT ON db_datadict.tb1 TO 'testuser1'@'localhost'; +GRANT ALL ON db_datadict.tb1 TO 'testuser2'@'localhost' WITH GRANT OPTION; + +let $my_select = SELECT * FROM information_schema.tables +WHERE table_schema = 'db_datadict' ORDER BY table_name; +let $my_show = SHOW TABLES FROM db_datadict; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +# tb2 is not granted to anyone +--replace_result $engine_type +eval +CREATE TABLE tb2 (f1 DECIMAL) +ENGINE = $engine_type; +--replace_result $engine_type +eval +CREATE TABLE tb3 (f1 VARCHAR(200)) +ENGINE = $engine_type; +GRANT SELECT ON db_datadict.tb3 to 'testuser3'@'localhost'; +GRANT INSERT ON db_datadict.tb3 to 'testuser2'@'localhost'; +CREATE VIEW v3 AS SELECT * FROM tb3; +GRANT SELECT ON db_datadict.v3 to 'testuser3'@'localhost'; + +if ($have_bug_32285) +{ +--disable_ps_protocol +} +# We do not want to check here values affected by +# - the storage engine used +# - Operating system / Filesystem +# - start time of test +# 1 TABLE_CATALOG +# 2 TABLE_SCHEMA +# 3 TABLE_NAME +# 4 TABLE_TYPE +# 5 ENGINE affected by storage engine used +# 6 VERSION +# 7 ROW_FORMAT affected by storage engine used +# 8 TABLE_ROWS +# 9 AVG_ROW_LENGTH affected by storage engine used +# 10 DATA_LENGTH affected by storage engine used and maybe OS +# 11 MAX_DATA_LENGTH affected by storage engine used and maybe OS +# 12 INDEX_LENGTH affected by storage engine used and maybe OS +# 13 DATA_FREE affected by storage engine used and maybe OS +# 14 AUTO_INCREMENT +# 15 CREATE_TIME depends roughly on start time of test (*) +# 16 UPDATE_TIME depends roughly on start time of test (*) +# 17 CHECK_TIME depends roughly on start time of test and storage engine (*) +# 18 TABLE_COLLATION +# 19 CHECKSUM affected by storage engine used +# 20 CREATE_OPTIONS +# 21 TABLE_COMMENT affected by some storage engines +# (*) In case of view or temporary table NULL. +--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#" +eval $my_select; +--enable_ps_protocol +--sorted_result +eval $my_show; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +if ($have_bug_32285) +{ +--disable_ps_protocol +} +--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#" +eval $my_select; +--enable_ps_protocol +--sorted_result +eval $my_show; + +--echo # Establish connection testuser3 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser3, localhost, testuser3, , db_datadict); +if ($have_bug_32285) +{ +--disable_ps_protocol +} +--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#" +eval $my_select; +--enable_ps_protocol +--sorted_result +eval $my_show; + +--echo # Switch to connection default (user=root) +connection default; +# we see only 'public' tables +if ($have_bug_32285) +{ +--disable_ps_protocol +} +--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#" +eval $my_select; +--enable_ps_protocol +--sorted_result +eval $my_show; + +# Cleanup +--echo # Close connection testuser1, testuser2, testuser3 +disconnect testuser1; +disconnect testuser2; +disconnect testuser3; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE db_datadict; + + +--echo ######################################################################### +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLES modifications +--echo ######################################################################### +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +--disable_warnings +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +--replace_result $engine_type +eval +CREATE TABLE test.t1_my_table (f1 BIGINT) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +COMMENT = 'Initial Comment' ENGINE = $engine_type; +# Settings used in CREATE TABLE must be visible in information_schema.tables. +--vertical_results +--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#" +SELECT * FROM information_schema.tables +WHERE table_name = 't1_my_table'; +--horizontal_results +# +# Check modification of TABLE_NAME +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +RENAME TABLE test.t1_my_table TO test.t1_my_tablex; +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +# +# Check modification of TABLE_SCHEMA +SELECT table_schema,table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex; +SELECT table_schema,table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check modification of ENGINE +--replace_result $engine_type +SELECT table_name, engine FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +--replace_result $other_engine_type +eval +ALTER TABLE db_datadict.t1_my_tablex +ENGINE = $other_engine_type; +--replace_result $other_engine_type +SELECT table_name, engine FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check modification of TABLE_ROWS +SELECT table_name, table_rows FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +INSERT INTO db_datadict.t1_my_tablex VALUES(1),(2); +SELECT table_name, table_rows FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check indirect modification of TABLE_COLLATION +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex DEFAULT CHARACTER SET utf8; +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# Check direct modification of TABLE_COLLATION +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci; +SELECT table_name, table_collation FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check modification of TABLE_COMMENT +SELECT table_name, TABLE_COMMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex COMMENT 'Changed Comment'; +SELECT table_name, TABLE_COMMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check modification of AUTO_INCREMENT +SELECT table_name, AUTO_INCREMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex +ADD f2 BIGINT AUTO_INCREMENT, ADD PRIMARY KEY (f2); +SELECT table_name, AUTO_INCREMENT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check modification of ROW_FORMAT +SELECT table_name, ROW_FORMAT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex ROW_FORMAT = dynamic; +SELECT table_name, ROW_FORMAT FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check "growth" of UPDATE_TIME and modification of CHECKSUM +SELECT table_name, checksum FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +ALTER TABLE db_datadict.t1_my_tablex CHECKSUM = 1; +SELECT table_name, checksum IS NOT NULL FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +SELECT UPDATE_TIME, checksum INTO @UPDATE_TIME, @checksum +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# Enforce a time difference bigger than the smallest unit (1 second). +--real_sleep 1.1 +INSERT INTO db_datadict.t1_my_tablex SET f1 = 3; +SELECT UPDATE_TIME > @UPDATE_TIME + AS "Is current UPDATE_TIME bigger than before last INSERT?" +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +SELECT checksum <> @checksum + AS "Is current CHECKSUM different than before last INSERT?" +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Information is used later +SELECT CREATE_TIME INTO @CREATE_TIME FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check impact of DROP TABLE +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +DROP TABLE db_datadict.t1_my_tablex; +SELECT table_name FROM information_schema.tables +WHERE table_name LIKE 't1_my_table%'; +# +# Check "growth" of CREATE_TIME +--replace_result $other_engine_type +eval +CREATE TABLE test.t1_my_tablex (f1 BIGINT) +ENGINE = $other_engine_type; +SELECT CREATE_TIME > @CREATE_TIME + AS "Is current CREATE_TIME bigger than for the old dropped table?" +FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +DROP TABLE test.t1_my_tablex; +# +# Check a VIEW +CREATE VIEW test.t1_my_tablex AS SELECT 1; +--vertical_results +SELECT * FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +--horizontal_results +DROP VIEW test.t1_my_tablex; +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +# +# Check a temporary table +--replace_result $other_engine_type +eval +CREATE TEMPORARY TABLE test.t1_my_tablex +ENGINE = $other_engine_type + AS SELECT 1; +--vertical_results +SELECT table_name, table_type FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +--horizontal_results +DROP TEMPORARY TABLE test.t1_my_tablex; +# +# Check impact of DROP SCHEMA +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1_my_tablex +ENGINE = $engine_type AS +SELECT 1; +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.tables +WHERE table_name = 't1_my_tablex'; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = $engine_type; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.tables +SELECT * FROM information_schema.tables; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.tables SET table_schema = 'test' +WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.tables WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.tables; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx_on_tables ON information_schema.tables(table_schema); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.tables DROP PRIMARY KEY; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.tables ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.tables; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.tables RENAME db_datadict.tables; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.tables RENAME information_schema.xtables; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_tables_innodb.test b/mysql-test/suite/funcs_1/t/is_tables_innodb.test new file mode 100644 index 00000000000..31a3900c7c3 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_tables_innodb.test @@ -0,0 +1,22 @@ +# suite/funcs_1/t/is_tables_innodb.test +# +# Check the content of information_schema.tables about tables within +# the databases created by the user. +# Variant for storage engine InnoDB +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--source include/have_innodb.inc +let $engine_type= InnoDB; +--source suite/funcs_1/datadict/datadict_load.inc +--enable_abort_on_error + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE'; +--source suite/funcs_1/datadict/tables1.inc + +--source suite/funcs_1/include/cleanup.inc diff --git a/mysql-test/suite/funcs_1/t/is_tables_is.test b/mysql-test/suite/funcs_1/t/is_tables_is.test new file mode 100644 index 00000000000..66ad94f774b --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_tables_is.test @@ -0,0 +1,18 @@ +# suite/funcs_1/t/is_tables_is.test +# +# Check the content of information_schema.tables about tables within +# the database information_schema. +# +# Note: The INFORMATION_SCHEMA table PROFILING is optional (exists in MySQL +# Community version only) and therefore we exclude it from retrieval. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $my_where = WHERE table_schema = 'information_schema' +AND table_name <> 'profiling'; +--source suite/funcs_1/datadict/tables1.inc + diff --git a/mysql-test/suite/funcs_1/t/is_tables_memory.test b/mysql-test/suite/funcs_1/t/is_tables_memory.test new file mode 100644 index 00000000000..8b5da595462 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_tables_memory.test @@ -0,0 +1,22 @@ +# suite/funcs_1/t/is_tables_memory.test +# +# Check the content of information_schema.tables about tables within +# the databases created by the user. +# Variant for storage engine MEMORY +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $engine_type= MEMORY; +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +--source suite/funcs_1/datadict/datadict_load.inc +--enable_abort_on_error + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE'; +--source suite/funcs_1/datadict/tables1.inc + +--source suite/funcs_1/include/cleanup.inc diff --git a/mysql-test/suite/funcs_1/t/is_tables_myisam.test b/mysql-test/suite/funcs_1/t/is_tables_myisam.test new file mode 100644 index 00000000000..4fc88364d87 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_tables_myisam.test @@ -0,0 +1,22 @@ +# suite/funcs_1/t/is_tables_myisam.test +# +# Check the content of information_schema.tables about tables within +# the databases created by the user. +# Variant for storage engine MyISAM +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $engine_type= MyISAM; +SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; +--source suite/funcs_1/datadict/datadict_load.inc +--enable_abort_on_error + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE'; +--source suite/funcs_1/datadict/tables1.inc + +--source suite/funcs_1/include/cleanup.inc diff --git a/mysql-test/suite/funcs_1/t/is_tables_mysql.test b/mysql-test/suite/funcs_1/t/is_tables_mysql.test new file mode 100644 index 00000000000..a6c3a72a1cf --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_tables_mysql.test @@ -0,0 +1,14 @@ +# suite/funcs_1/t/is_tables_mysql.test +# +# Check the content of information_schema.tables about tables within +# the database mysql (= the system tables). +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +let $my_where = WHERE table_schema = 'mysql'; +--source suite/funcs_1/datadict/tables1.inc + diff --git a/mysql-test/suite/funcs_1/t/is_tables_ndb.test b/mysql-test/suite/funcs_1/t/is_tables_ndb.test new file mode 100644 index 00000000000..49ce60b08bd --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_tables_ndb.test @@ -0,0 +1,34 @@ +# suite/funcs_1/t/is_tables_ndb.test +# +# Check the content of information_schema.tables about tables within +# the databases created by the user. +# Variant for storage engine NDB +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +--source include/have_ndb.inc +let $engine_type= NDB; +--source suite/funcs_1/datadict/datadict_load.inc +--enable_abort_on_error + +# We look only for the tables created by datadict_load.inc. +let $my_where = WHERE table_schema LIKE 'test%' AND table_type = 'BASE TABLE'; +--source suite/funcs_1/datadict/tables1.inc + +# This test runs with a different set of tables. +# --source suite/funcs_1/include/cleanup.inc +DROP DATABASE test1; +DROP DATABASE test4; +DROP TABLE test.t1; +DROP TABLE test.t2; +DROP TABLE test.t3; +DROP TABLE test.t4; +DROP TABLE test.t7; +DROP TABLE test.t8; +DROP TABLE test.t9; +DROP TABLE test.t10; +DROP TABLE test.t11; diff --git a/mysql-test/suite/funcs_1/t/is_triggers.test b/mysql-test/suite/funcs_1/t/is_triggers.test new file mode 100644 index 00000000000..261f082fb50 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_triggers.test @@ -0,0 +1,253 @@ +# suite/funcs_1/t/is_triggers.test +# +# Check the layout of information_schema.triggers and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing triggers +# (there are no in the moment) within the databases information_schema +# and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = TRIGGERS; + +# The table INFORMATION_SCHEMA.TRIGGERS must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.12.1: INFORMATION_SCHEMA.TRIGGERS layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.TRIGGERS table has the following columns, +# in the following order: +# +# TRIGGER_CATALOG NULL +# TRIGGER_SCHEMA name of the database in which the trigger occurs +# TRIGGER_NAME +# EVENT_MANIPULATION event associated with the trigger +# ('INSERT', 'DELETE', or 'UPDATE') +# EVENT_OBJECT_CATALOG NULL +# EVENT_OBJECT_SCHEMA database in which the table associated with the +# trigger occurs +# EVENT_OBJECT_TABLE name of the table associated with the trigger +# ACTION_ORDER 0 +# ACTION_CONDITION NULL +# ACTION_STATEMENT +# ACTION_ORIENTATION ROW +# ACTION_TIMING 'BEFORE' or 'AFTER' +# ACTION_REFERENCE_OLD_TABLE NULL +# ACTION_REFERENCE_NEW_TABLE NULL +# ACTION_REFERENCE_OLD_ROW OLD +# ACTION_REFERENCE_NEW_ROW NEW +# CREATED NULL (0) +# SQL_MODE server SQL mode that was in effect at the time +# when the trigger was created +# (also used during trigger execution) +# DEFINER who defined the trigger +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + + +# Note: Retrieval of information within information_schema.columns about +# information_schema.tables is in is_columns_is.test. + +# Show that several columns are always NULL. +SELECT * FROM information_schema.triggers +WHERE trigger_catalog IS NOT NULL OR event_object_catalog IS NOT NULL + OR action_condition IS NOT NULL OR action_reference_old_table IS NOT NULL + OR action_reference_new_table IS NOT NULL; + + +--echo ################################################################################## +--echo # Testcase 3.2.18.2 + 3.2.18.3: INFORMATION_SCHEMA.TRIGGERS accessible information +--echo ################################################################################## +# 3.2.18.2: Ensure that the table shows the relevant information on every +# trigger on which the current user or PUBLIC has privileges. +# 3.2.18.3: Ensure that the table does not show any information on any trigger +# on which the current user and public have no privileges. +# The SUPER privilege is required for +# - creation of triggers +# - retrieval in INFORMATION_SCHEMA.TRIGGERS (affects size of result set) +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser4'@'localhost'; +CREATE USER 'testuser4'@'localhost'; + +GRANT SUPER ON *.* TO 'testuser1'@'localhost'; +GRANT SUPER ON *.* TO 'testuser3'@'localhost'; +GRANT SUPER ON *.* TO 'testuser4'@'localhost'; +GRANT ALL ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; + +let $my_select = SELECT * FROM information_schema.triggers +WHERE trigger_name = 'trg1'; +let $my_show = SHOW TRIGGERS FROM db_datadict; +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 INT, f2 INT, f3 INT) +ENGINE = $engine_type; +CREATE TRIGGER trg1 BEFORE INSERT +ON db_datadict.t1 FOR EACH ROW SET @test_before = 2, new.f1 = @test_before; +GRANT ALL ON db_datadict.t1 TO 'testuser2'@'localhost'; +GRANT SELECT ON db_datadict.t1 TO 'testuser3'@'localhost'; +eval $my_select; +eval $my_show; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +SHOW GRANTS FOR 'testuser2'@'localhost'; +--echo # No SUPER Privilege --> no result for query +eval $my_select; +eval $my_show; + +--echo # Establish connection testuser3 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser3, localhost, testuser3, , test); +SHOW GRANTS FOR 'testuser3'@'localhost'; +--echo # SUPER Privilege + SELECT Privilege on t1 --> result for query +eval $my_select; +eval $my_show; + +--echo # Establish connection testuser4 (user=testuser4) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser4, localhost, testuser4, , test); +SHOW GRANTS FOR 'testuser4'@'localhost'; +--echo # SUPER Privilege + no SELECT Privilege on t1 --> no result for query +eval $my_select; +eval $my_show; + +--echo # Switch to connection default and close connections testuser1 - testuser4 +connection default; +disconnect testuser1; +disconnect testuser2; +disconnect testuser3; +disconnect testuser4; +eval $my_select; +eval $my_show; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP USER 'testuser4'@'localhost'; +DROP DATABASE db_datadict; + + +--echo ######################################################################### +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TRIGGERS modifications +--echo ######################################################################### +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# FIXME: To be implemented + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1 (f1 BIGINT) +ENGINE = $engine_type; +CREATE TRIGGER db_datadict.trg1 BEFORE INSERT +ON db_datadict.t1 FOR EACH ROW SET @test_before = 2, new.f1 = @test_before; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.triggers +SELECT * FROM information_schema.triggers; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.triggers SET trigger_schema = 'test' +WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.triggers WHERE trigger_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.triggers; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx_on_triggers ON information_schema.triggers(trigger_schema); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.triggers DROP PRIMARY KEY; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.triggers ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.triggers; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.triggers RENAME db_datadict.triggers; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.triggers RENAME information_schema.xtriggers; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/is_user_privileges.test b/mysql-test/suite/funcs_1/t/is_user_privileges.test new file mode 100644 index 00000000000..dc39ad6fe4f --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_user_privileges.test @@ -0,0 +1,347 @@ +# suite/funcs_1/t/is_user_privileges.test +# +# Check the layout of information_schema.user_privileges, permissions and +# the impact of CREATE/ALTER/DROP SCHEMA on it. +# +# Note: +# This test is not intended +# - to show information about the all time existing tables +# within the databases information_schema and mysql +# - for checking storage engine properties +# Therefore please do not alter $engine_type and $other_engine_type. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = USER_PRIVILEGES; + +# The table INFORMATION_SCHEMA.USER_PRIVILEGES must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.16.1: INFORMATION_SCHEMA.USER_PRIVILEGES layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.USER_PRIVILEGES table has the following columns, +# in the following order: +# +# GRANTEE (shows a user to whom a user privilege has been granted), +# TABLE_CATALOG (always shows NULL), +# PRIVILEGE_TYPE (shows the granted privilege), +# IS_GRANTABLE (shows whether the privilege was granted WITH GRANT OPTION). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.user_privileges is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT grantee, table_catalog, privilege_type +FROM information_schema.user_privileges +WHERE table_catalog IS NOT NULL; + + +--echo ########################################################################## +--echo # Testcases 3.2.16.2+3.2.16.3+3.2.16.4: INFORMATION_SCHEMA.USER_PRIVILEGES +--echo # accessible information +--echo ########################################################################## +# 3.2.16.2: Ensure that the table shows the relevant information on every user +# privilege which has been granted to the current user or to PUBLIC, +# or has been granted by the current user. +# 3.2.16.3: Ensure that the table does not show any information on any user +# privileges which have been granted to users other than the current +# user or have been granted by any user other than the current user. +# 3.2.16.4: Ensure that the table does not show any information on any +# privileges that are not user privileges for the current user. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser3'@'localhost'; +CREATE USER 'testuser3'@'localhost'; + +GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost'; +GRANT SELECT ON mysql.user TO 'testuser1'@'localhost'; + +GRANT INSERT ON *.* TO 'testuser2'@'localhost'; +GRANT UPDATE ON *.* TO 'testuser2'@'localhost'; + +let $my_select1= SELECT * FROM information_schema.user_privileges +WHERE grantee LIKE '''testuser%''' +ORDER BY grantee, table_catalog, privilege_type; +let $my_select2= SELECT * FROM mysql.user +WHERE user LIKE 'testuser%' ORDER BY host, user; +let $my_show= SHOW GRANTS; +eval $my_select1; +eval $my_select2; + +--echo # +--echo # Add GRANT OPTION db_datadict.* to testuser1; +GRANT UPDATE ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +eval $my_select1; +eval $my_select2; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , db_datadict); +eval $my_select1; +eval $my_select2; +eval $my_show; + +--echo +--echo # Now add SELECT on *.* to testuser1; + +--echo # Switch to connection default +connection default; +GRANT SELECT ON *.* TO 'testuser1'@'localhost'; +--echo # +--echo # Here is shown correctly for testuser1; +eval $my_select1; +eval $my_select2; + +--echo # Switch to connection testuser1 +# check that this appears +connection testuser1; +eval $my_select1; +eval $my_select2; +eval $my_show; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , db_datadict); +eval $my_select1; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_select2; +eval $my_show; + +--echo # Establish connection testuser3 (user=testuser3) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser3, localhost, testuser3, , test); +eval $my_select1; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_select2; +eval $my_show; + +--echo +--echo # Revoke privileges from testuser1; +--echo # Switch to connection default +connection default; +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'testuser1'@'localhost'; +eval $my_select1; +eval $my_select2; + +--echo # Switch to connection testuser1 +# check for changes +connection testuser1; +eval $my_select1; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_select2; +eval $my_show; + +# OK, testuser1 has no privs here +--error ER_TABLEACCESS_DENIED_ERROR +CREATE TABLE db_datadict.tb_55 ( c1 TEXT ); +eval $my_select1; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_select2; +eval $my_show; +# OK, testuser1 has no privs here +--error ER_TABLEACCESS_DENIED_ERROR +CREATE TABLE db_datadict.tb_66 ( c1 TEXT ); + +--echo +--echo # Add ALL on db_datadict.* (and select on mysql.user) to testuser1; +--echo # Switch to connection default +connection default; +GRANT ALL ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION; +GRANT SELECT ON mysql.user TO 'testuser1'@'localhost'; +eval $my_select1; +eval $my_select2; + +--echo # Switch to connection testuser1 +connection testuser1; +eval $my_select1; +eval $my_select2; +eval $my_show; + +# OK, testuser1 has no privs here +--error ER_TABLEACCESS_DENIED_ERROR +CREATE TABLE db_datadict.tb_56 ( c1 TEXT ); + +# using 'USE' lets the server read the privileges new, so now the CREATE works +USE db_datadict; +eval $my_select1; +eval $my_select2; +eval $my_show; +--replace_result $other_engine_type +eval +CREATE TABLE tb_57 ( c1 TEXT ) +ENGINE = $other_engine_type; + +--echo +--echo # Revoke privileges from testuser1; +--echo # Switch to connection default +connection default; +REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'testuser1'@'localhost'; +eval $my_select1; +eval $my_select2; + +--echo # Switch to connection testuser1 +# check for changes +connection testuser1; +eval $my_select1; +--error ER_TABLEACCESS_DENIED_ERROR +eval $my_select2; +eval $my_show; +# WORKS, as the existing old privileges are used! +--replace_result $other_engine_type +eval +CREATE TABLE db_datadict.tb_58 ( c1 TEXT ) +ENGINE = $other_engine_type; +# existing privileges are "read" new when USE is called, user has no privileges +--error ER_DBACCESS_DENIED_ERROR +USE db_datadict; +#FIXME 3.2.16: check that it is correct that this now 'works': --error ER_TABLEACCESS_DENIED_ERROR +--replace_result $other_engine_type +eval +CREATE TABLE db_datadict.tb_59 ( c1 TEXT ) +ENGINE = $other_engine_type; + +# Cleanup +--echo # Switch to connection default and close connections testuser1,testuser2,testuser3 +connection default; +disconnect testuser1; +disconnect testuser2; +disconnect testuser3; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'testuser3'@'localhost'; +DROP DATABASE IF EXISTS db_datadict; + + +--echo ######################################################################################## +--echo # Testcases 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.USER_PRIVILEGES modifications +--echo ######################################################################################## +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +let $my_select = SELECT * FROM information_schema.user_privileges +WHERE grantee = '''testuser1''@''localhost'''; +let $my_show = SHOW GRANTS FOR 'testuser1'@'localhost'; +eval $my_select; +--error ER_NONEXISTING_GRANT +eval $my_show; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +eval $my_select; +eval $my_show; +GRANT SELECT, FILE ON *.* TO 'testuser1'@'localhost'; +eval $my_select; +eval $my_show; +DROP USER 'testuser1'@'localhost'; +eval $my_select; +--error ER_NONEXISTING_GRANT +eval $my_show; + + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA tables are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.user_privileges +SELECT * FROM information_schema.user_privileges; + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.user_privileges +SET PRIVILEGE_TYPE = 'gaming'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.user_privileges +WHERE grantee = '''testuser1''@''localhost'''; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.user_privileges; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX i1 ON information_schema.user_privileges(grantee); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.user_privileges ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.user_privileges; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.user_privileges +RENAME db_datadict.user_privileges; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.user_privileges +RENAME information_schema.xuser_privileges; + +# Cleanup +DROP USER 'testuser1'@'localhost'; + diff --git a/mysql-test/suite/funcs_1/t/is_views.test b/mysql-test/suite/funcs_1/t/is_views.test new file mode 100644 index 00000000000..9819fe1ffe0 --- /dev/null +++ b/mysql-test/suite/funcs_1/t/is_views.test @@ -0,0 +1,305 @@ +# suite/funcs_1/t/is_views.test +# +# Check the layout of information_schema.views and the impact of +# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it. +# +# Note: +# - This test should not check storage engine properties. +# - Please do not change the storage engines used within this test +# except you know that the impact is acceptable. +# Some storage engines might not support the modification of +# properties like in the following tests. +# +# Author: +# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of +# testsuite funcs_1 +# Create this script based on older scripts and new code. +# + +# --source suite/funcs_1/datadict/datadict.pre + +let $engine_type = MEMORY; +let $other_engine_type = MyISAM; + +let $is_table = VIEWS; + +# The table INFORMATION_SCHEMA.VIEWS must exist +eval SHOW TABLES FROM information_schema LIKE '$is_table'; + +--echo ####################################################################### +--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT +--echo ####################################################################### +# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT +# statement, just as if it were an ordinary user-defined table. +# +--source suite/funcs_1/datadict/is_table_query.inc + + +--echo ######################################################################### +--echo # Testcase 3.2.13.1: INFORMATION_SCHEMA.VIEWS layout +--echo ######################################################################### +# Ensure that the INFORMATION_SCHEMA.VIEWS table has the following columns, +# in the following order: +# +# TABLE_CATALOG (always shows NULL), +# TABLE_SCHEMA (shows the database, or schema, in which an accessible +# view resides), +# TABLE_NAME (shows the name of a view accessible to the current user), +# VIEW_DEFINITION (shows the SELECT statement that makes up the +# view's definition), +# CHECK_OPTION (shows the value of the WITH CHECK OPTION clause used to define +# the view, either NONE, LOCAL or CASCADED), +# IS_UPDATABLE (shows whether the view is an updatable view), +# DEFINER (added with 5.0.14), +# SECURITY_TYPE (added with 5.0.14). +# +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval DESCRIBE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW CREATE TABLE information_schema.$is_table; +--source suite/funcs_1/datadict/datadict_bug_12777.inc +eval SHOW COLUMNS FROM information_schema.$is_table; + +# Note: Retrieval of information within information_schema.columns about +# information_schema.views is in is_columns_is.test. + +# Show that TABLE_CATALOG is always NULL. +SELECT table_catalog, table_schema, table_name +FROM information_schema.views WHERE table_catalog IS NOT NULL; + + +--echo ################################################################################ +--echo # Testcase 3.2.13.2 + 3.2.13.3: INFORMATION_SCHEMA.VIEWS accessible information +--echo ################################################################################ +# 3.2.13.2: Ensure that the table shows the relevant information on every view for +# which the current user or PUBLIC has the SHOW CREATE VIEW privilege. +# 3.2.13.3: Ensure that the table does not show any information on any views for which +# the current user and PUBLIC have no SHOW CREATE VIEW privilege. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; + +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'testuser2'@'localhost'; +CREATE USER 'testuser2'@'localhost'; +--error 0,ER_CANNOT_USER +DROP USER 'test_no_views'@'localhost'; +CREATE USER 'test_no_views'@'localhost'; + +--replace_result $engine_type +eval +CREATE TABLE db_datadict.t1(f1 INT, f2 INT, f3 INT) +ENGINE = $engine_type; +CREATE VIEW db_datadict.v_granted_to_1 AS SELECT * FROM db_datadict.t1; +CREATE VIEW db_datadict.v_granted_glob AS SELECT f2, f3 FROM db_datadict.t1; + +GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost'; +GRANT SELECT ON db_datadict.v_granted_to_1 TO 'testuser1'@'localhost'; +GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'testuser2'@'localhost'; + +let $select = SELECT * FROM information_schema.views +WHERE table_schema = 'db_datadict' ORDER BY table_name; +eval $select; + +--echo # Establish connection testuser1 (user=testuser1) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser1, localhost, testuser1, , test); +eval $select; + +--echo # Establish connection testuser2 (user=testuser2) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (testuser2, localhost, testuser2, , test); +eval $select; + +--echo # Establish connection test_no_views (user=test_no_views) +--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK +connect (test_no_views, localhost, test_no_views, , test); +eval $select; + +# Cleanup +--echo # Switch to connection default and close all other connections +connection default; +disconnect testuser1; +disconnect testuser2; +disconnect test_no_views; +DROP USER 'testuser1'@'localhost'; +DROP USER 'testuser2'@'localhost'; +DROP USER 'test_no_views'@'localhost'; +DROP DATABASE db_datadict; + +--echo ######################################################################### +--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.VIEWS modifications +--echo ######################################################################### +# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or +# column) automatically inserts all relevant information on that +# object into every appropriate INFORMATION_SCHEMA table. +# 3.2.1.14: Ensure that the alteration of any existing database object +# automatically updates all relevant information on that object in +# every appropriate INFORMATION_SCHEMA table. +# 3.2.1.15: Ensure that the dropping of any existing database object +# automatically deletes all relevant information on that object from +# every appropriate INFORMATION_SCHEMA table. +# +--disable_warnings +DROP TABLE IF EXISTS test.t1_my_table; +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +--replace_result $engine_type +eval +CREATE TABLE test.t1_table (f1 BIGINT, f2 CHAR(10)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci +ENGINE = $engine_type; +--error 0,ER_CANNOT_USER +DROP USER 'testuser1'@'localhost'; +CREATE USER 'testuser1'@'localhost'; + +# Check just created VIEW +SELECT * FROM information_schema.views +WHERE table_name LIKE 't1_%'; +CREATE VIEW test.t1_view AS SELECT DISTINCT f1 FROM test.t1_table; +SELECT * FROM information_schema.views +WHERE table_name LIKE 't1_%'; +# +# Check modification of DEFINER, SECURITY_TYPE, IS_UPDATABLE, VIEW_DEFINITION, +# CHECK_OPTION +SELECT table_name,definer FROM information_schema.views +WHERE table_name = 't1_view'; +ALTER DEFINER = 'testuser1'@'localhost' VIEW test.t1_view AS +SELECT DISTINCT f1 FROM test.t1_table; +# The next result set could suffer from +# Bug#22763 Disrepancy between SHOW CREATE VIEW and I_S.VIEWS +# because the VIEW definition is missing. +# Therefore we exclude the problematic columns from the result set. +SELECT table_name,definer,security_type FROM information_schema.views +WHERE table_name LIKE 't1_%'; +ALTER DEFINER = 'root'@'localhost' SQL SECURITY INVOKER VIEW test.t1_view AS +SELECT f1 FROM test.t1_table WITH LOCAL CHECK OPTION; +SELECT table_name,definer,security_type FROM information_schema.views +WHERE table_name LIKE 't1_%'; +# +# Check modification of TABLE_SCHEMA +SELECT table_schema,table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +--error ER_FORBID_SCHEMA_CHANGE +RENAME TABLE test.t1_view TO db_datadict.t1_view; +# Workaround for missing move to another database +DROP VIEW test.t1_view; +CREATE VIEW db_datadict.t1_view AS SELECT * FROM test.t1_table; +SELECT table_schema,table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_schema,table_name; +# +# Check modification of TABLE_NAME +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +RENAME TABLE db_datadict.t1_view TO db_datadict.t1_viewx; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +# +# Check impact of DROP VIEW +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +DROP VIEW db_datadict.t1_viewx; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +CREATE VIEW db_datadict.t1_view AS SELECT * FROM test.t1_table; +# +# Check impact of DROP base TABLE of VIEW +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +DROP TABLE test.t1_table; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +--replace_result $engine_type +eval +CREATE TABLE test.t1_table (f1 BIGINT, f2 CHAR(10)) +DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci COMMENT = 'Initial Comment' +ENGINE = $engine_type; +# +# Check impact of DROP SCHEMA +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; +DROP DATABASE db_datadict; +SELECT table_name FROM information_schema.views +WHERE table_name LIKE 't1_%' +ORDER BY table_name; + +# Cleanup +DROP USER 'testuser1'@'localhost'; +DROP TABLE test.t1_table; + +--echo ######################################################################## +--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and +--echo # DDL on INFORMATION_SCHEMA table are not supported +--echo ######################################################################## +# 3.2.1.3: Ensure that no user may execute an INSERT statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.5: Ensure that no user may execute a DELETE statement on any +# INFORMATION_SCHEMA table. +# 3.2.1.8: Ensure that no user may create an index on an +# INFORMATION_SCHEMA table. +# 3.2.1.9: Ensure that no user may alter the definition of an +# INFORMATION_SCHEMA table. +# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table. +# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any +# other database. +# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data +# in an INFORMATION_SCHEMA table. +# +--disable_warnings +DROP DATABASE IF EXISTS db_datadict; +--enable_warnings +CREATE DATABASE db_datadict; +CREATE VIEW db_datadict.v1 AS SELECT 1; + +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.views +SELECT * FROM information_schema.views; +--error ER_DBACCESS_DENIED_ERROR +INSERT INTO information_schema.views(table_schema, table_name) +VALUES ('db2', 'v2'); + +--error ER_DBACCESS_DENIED_ERROR +UPDATE information_schema.views SET table_schema = 'test' +WHERE table_name = 't1'; + +--error ER_DBACCESS_DENIED_ERROR +DELETE FROM information_schema.views WHERE table_name = 't1'; +--error ER_DBACCESS_DENIED_ERROR +TRUNCATE information_schema.views; + +--error ER_DBACCESS_DENIED_ERROR +CREATE INDEX my_idx_on_views ON information_schema.views(table_schema); + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.views DROP PRIMARY KEY; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.views ADD f1 INT; + +--error ER_DBACCESS_DENIED_ERROR +DROP TABLE information_schema.views; + +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.views RENAME db_datadict.views; +--error ER_DBACCESS_DENIED_ERROR +ALTER TABLE information_schema.views RENAME information_schema.xviews; + +# Cleanup +DROP DATABASE db_datadict; + diff --git a/mysql-test/suite/funcs_1/t/memory__datadict.test b/mysql-test/suite/funcs_1/t/memory__datadict.test deleted file mode 100644 index b78a2511f3c..00000000000 --- a/mysql-test/suite/funcs_1/t/memory__datadict.test +++ /dev/null @@ -1,9 +0,0 @@ -#### suite/funcs_1/t/datadict_memory.test -# -let $engine_type= memory; -# $OTHER_ENGINE_TYPE must be -# - <> $engine_type -# - all time available like MyISAM or MEMORY -let $OTHER_ENGINE_TYPE= MyISAM; - ---source suite/funcs_1/datadict/datadict_master.inc diff --git a/mysql-test/suite/funcs_1/t/memory__load.test b/mysql-test/suite/funcs_1/t/memory__load.test deleted file mode 100644 index 44bd054f420..00000000000 --- a/mysql-test/suite/funcs_1/t/memory__load.test +++ /dev/null @@ -1,45 +0,0 @@ -##### suite/funcs_1/funcs_1/t/memory__load.test - -# Memory tables should be used -# -# Set $engine_type -let $engine_type= memory; - -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means all objects have to be (re)created within the current script. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means the current script must not (re)create any object and every -# testscript/case (re)creates only the objects it needs. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb1.inc - --source suite/funcs_1/include/memory_tb2.inc - --source suite/funcs_1/include/memory_tb3.inc - --source suite/funcs_1/include/memory_tb4.inc - - # The database test1 is needed for the VIEW testcases - --disable_warnings - DROP DATABASE IF EXISTS test1; - --enable_warnings - CREATE DATABASE test1; - USE test1; - --source suite/funcs_1/include/memory_tb2.inc - USE test; - - # These tables are needed for the stored procedure testscases - --source suite/funcs_1/include/sp_tb.inc - - let $run= 0; -} - diff --git a/mysql-test/suite/funcs_1/t/memory_bitdata.test b/mysql-test/suite/funcs_1/t/memory_bitdata.test index 3aa30c2d835..af5d0a9c53b 100644 --- a/mysql-test/suite/funcs_1/t/memory_bitdata.test +++ b/mysql-test/suite/funcs_1/t/memory_bitdata.test @@ -5,28 +5,12 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +let $message= NOT YET IMPLEMENTED: bitdata tests; +--source include/show_msg80.inc +exit; -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb4.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb4.inc --source suite/funcs_1/bitdata/bitdata_master.test - diff --git a/mysql-test/suite/funcs_1/t/memory_cursors.test b/mysql-test/suite/funcs_1/t/memory_cursors.test index 1361c83ecb0..dc38a3dd0a3 100644 --- a/mysql-test/suite/funcs_1/t/memory_cursors.test +++ b/mysql-test/suite/funcs_1/t/memory_cursors.test @@ -5,28 +5,13 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +let $message= NOT YET IMPLEMENTED: cursor tests; +--source include/show_msg80.inc +exit; -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb1.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb1.inc --source suite/funcs_1/cursors/cursors_master.test diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_02.test b/mysql-test/suite/funcs_1/t/memory_storedproc_02.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_03.test b/mysql-test/suite/funcs_1/t/memory_storedproc_03.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_06.test b/mysql-test/suite/funcs_1/t/memory_storedproc_06.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_07.test b/mysql-test/suite/funcs_1/t/memory_storedproc_07.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_08.test b/mysql-test/suite/funcs_1/t/memory_storedproc_08.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_10.test b/mysql-test/suite/funcs_1/t/memory_storedproc_10.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/memory_trig_0102.test b/mysql-test/suite/funcs_1/t/memory_trig_0102.test index efa739cfb14..c7b07cedfad 100644 --- a/mysql-test/suite/funcs_1/t/memory_trig_0102.test +++ b/mysql-test/suite/funcs_1/t/memory_trig_0102.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb3.inc --source suite/funcs_1/triggers/triggers_0102.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/memory_trig_03.test b/mysql-test/suite/funcs_1/t/memory_trig_03.test index 76980b6b1b0..b7205ce15d2 100644 --- a/mysql-test/suite/funcs_1/t/memory_trig_03.test +++ b/mysql-test/suite/funcs_1/t/memory_trig_03.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb3.inc --source suite/funcs_1/triggers/triggers_03.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/memory_trig_0407.test b/mysql-test/suite/funcs_1/t/memory_trig_0407.test index 05217a7f97f..01b4bc39159 100644 --- a/mysql-test/suite/funcs_1/t/memory_trig_0407.test +++ b/mysql-test/suite/funcs_1/t/memory_trig_0407.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb3.inc --source suite/funcs_1/triggers/triggers_0407.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/memory_trig_08.test b/mysql-test/suite/funcs_1/t/memory_trig_08.test index 8caae1ec45f..bc09d4f3943 100644 --- a/mysql-test/suite/funcs_1/t/memory_trig_08.test +++ b/mysql-test/suite/funcs_1/t/memory_trig_08.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb3.inc --source suite/funcs_1/triggers/triggers_08.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/memory_trig_09.test b/mysql-test/suite/funcs_1/t/memory_trig_09.test index 95a7fefbe90..682e07f9fad 100644 --- a/mysql-test/suite/funcs_1/t/memory_trig_09.test +++ b/mysql-test/suite/funcs_1/t/memory_trig_09.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb3.inc --source suite/funcs_1/triggers/triggers_09.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/memory_trig_1011ext.test b/mysql-test/suite/funcs_1/t/memory_trig_1011ext.test index 726b878854e..c6dfe54b64d 100644 --- a/mysql-test/suite/funcs_1/t/memory_trig_1011ext.test +++ b/mysql-test/suite/funcs_1/t/memory_trig_1011ext.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb3.inc --source suite/funcs_1/triggers/triggers_1011ext.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/memory_views.test b/mysql-test/suite/funcs_1/t/memory_views.test index 303d0bb2ac1..b506f08cf31 100644 --- a/mysql-test/suite/funcs_1/t/memory_views.test +++ b/mysql-test/suite/funcs_1/t/memory_views.test @@ -5,40 +5,18 @@ # Set $engine_type let $engine_type= memory; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -let $run= `SELECT @NO_REFRESH = 0`; -if ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/memory_tb2.inc - --disable_warnings - DROP DATABASE IF EXISTS test1; - --enable_warnings - CREATE DATABASE test1; - USE test1; - --source suite/funcs_1/include/memory_tb2.inc - USE test; - -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/memory_tb2.inc +--disable_warnings +DROP DATABASE IF EXISTS test1; +--enable_warnings +CREATE DATABASE test1; +USE test1; +--source suite/funcs_1/include/memory_tb2.inc +USE test; --source suite/funcs_1/views/views_master.inc - -# If we created the database in the above loop we now need to drop it -let $run= `SELECT @NO_REFRESH = 0`; -if ($run) -{ - DROP DATABASE IF EXISTS test1; -} +DROP DATABASE test1; +DROP TABLE test.tb2; diff --git a/mysql-test/suite/funcs_1/t/myisam__datadict.test b/mysql-test/suite/funcs_1/t/myisam__datadict.test deleted file mode 100644 index e4baba1de3a..00000000000 --- a/mysql-test/suite/funcs_1/t/myisam__datadict.test +++ /dev/null @@ -1,10 +0,0 @@ -#### suite/funcs_1/t/datadict_myisam.test -# - -let $engine_type= myisam; -# $OTHER_ENGINE_TYPE must be -# - <> $engine_type -# - all time available like MyISAM or MEMORY -let $OTHER_ENGINE_TYPE= MEMORY; - ---source suite/funcs_1/datadict/datadict_master.inc diff --git a/mysql-test/suite/funcs_1/t/myisam__load.test b/mysql-test/suite/funcs_1/t/myisam__load.test deleted file mode 100644 index b63044f128c..00000000000 --- a/mysql-test/suite/funcs_1/t/myisam__load.test +++ /dev/null @@ -1,45 +0,0 @@ -##### suite/funcs_1/funcs_1/t/myisam__load.test - -# MyISAM tables should be used -# -# Set $engine_type -let $engine_type= myisam; - -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means all objects have to be (re)created within the current script. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means the current script must not (re)create any object and every -# testscript/case (re)creates only the objects it needs. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb1.inc - --source suite/funcs_1/include/myisam_tb2.inc - --source suite/funcs_1/include/myisam_tb3.inc - --source suite/funcs_1/include/myisam_tb4.inc - - # The database test1 is needed for the VIEW testcases - --disable_warnings - DROP DATABASE IF EXISTS test1; - --enable_warnings - CREATE DATABASE test1; - USE test1; - --source suite/funcs_1/include/myisam_tb2.inc - USE test; - - # These tables are needed for the stored procedure testscases - --source suite/funcs_1/include/sp_tb.inc - - let $run= 0; -} - diff --git a/mysql-test/suite/funcs_1/t/myisam_bitdata.test b/mysql-test/suite/funcs_1/t/myisam_bitdata.test index 7ee15e02ea0..fc00cf478c7 100644 --- a/mysql-test/suite/funcs_1/t/myisam_bitdata.test +++ b/mysql-test/suite/funcs_1/t/myisam_bitdata.test @@ -5,28 +5,12 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +let $message= NOT YET IMPLEMENTED: bitdata tests; +--source include/show_msg80.inc +exit; -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb4.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb4.inc --source suite/funcs_1/bitdata/bitdata_master.test - diff --git a/mysql-test/suite/funcs_1/t/myisam_cursors.test b/mysql-test/suite/funcs_1/t/myisam_cursors.test index 841903148cd..390d6cc1896 100644 --- a/mysql-test/suite/funcs_1/t/myisam_cursors.test +++ b/mysql-test/suite/funcs_1/t/myisam_cursors.test @@ -5,28 +5,13 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. +let $message= NOT YET IMPLEMENTED: cursor tests; +--source include/show_msg80.inc +exit; -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb1.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb1.inc --source suite/funcs_1/cursors/cursors_master.test diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_0102.test b/mysql-test/suite/funcs_1/t/myisam_trig_0102.test index 77bde5f99ef..fd326b2f061 100644 --- a/mysql-test/suite/funcs_1/t/myisam_trig_0102.test +++ b/mysql-test/suite/funcs_1/t/myisam_trig_0102.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb3.inc --source suite/funcs_1/triggers/triggers_0102.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_03.test b/mysql-test/suite/funcs_1/t/myisam_trig_03.test index 6edaaf7d14c..77b2d16a2a6 100644 --- a/mysql-test/suite/funcs_1/t/myisam_trig_03.test +++ b/mysql-test/suite/funcs_1/t/myisam_trig_03.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb3.inc --source suite/funcs_1/triggers/triggers_03.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_0407.test b/mysql-test/suite/funcs_1/t/myisam_trig_0407.test index a28959b407e..e1e9b6fd230 100644 --- a/mysql-test/suite/funcs_1/t/myisam_trig_0407.test +++ b/mysql-test/suite/funcs_1/t/myisam_trig_0407.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb3.inc --source suite/funcs_1/triggers/triggers_0407.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_08.test b/mysql-test/suite/funcs_1/t/myisam_trig_08.test index dda01314052..225d994a732 100644 --- a/mysql-test/suite/funcs_1/t/myisam_trig_08.test +++ b/mysql-test/suite/funcs_1/t/myisam_trig_08.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb3.inc --source suite/funcs_1/triggers/triggers_08.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_09.test b/mysql-test/suite/funcs_1/t/myisam_trig_09.test index 9f2c932e608..f5c53f48adb 100644 --- a/mysql-test/suite/funcs_1/t/myisam_trig_09.test +++ b/mysql-test/suite/funcs_1/t/myisam_trig_09.test @@ -5,28 +5,10 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb3.inc --source suite/funcs_1/triggers/triggers_09.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test b/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test index b4d29476aa5..bbf226cdea6 100644 --- a/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test +++ b/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test @@ -14,19 +14,10 @@ let $engine_type= myisam; # - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) # That means all objects have to be (re)created within the current script. -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -# FIXME Replace the following, when "if" for mysqltest is available -let $run= `SELECT @NO_REFRESH = 0`; -while ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb3.inc - - let $run= 0; -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb3.inc --source suite/funcs_1/triggers/triggers_1011ext.inc +DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/myisam_views.test b/mysql-test/suite/funcs_1/t/myisam_views.test index 3fa50a3a2a0..7fc1b991dc6 100644 --- a/mysql-test/suite/funcs_1/t/myisam_views.test +++ b/mysql-test/suite/funcs_1/t/myisam_views.test @@ -5,33 +5,16 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); - -let $run= `SELECT @NO_REFRESH = 0`; -if ($run) -{ - - # Create some objects needed in many testcases - USE test; - --source suite/funcs_1/include/myisam_tb2.inc - --disable_warnings - DROP DATABASE IF EXISTS test1; - --enable_warnings - CREATE DATABASE test1; - USE test1; - --source suite/funcs_1/include/myisam_tb2.inc - USE test; - -} +# Create some objects needed in many testcases +USE test; +--source suite/funcs_1/include/myisam_tb2.inc +--disable_warnings +DROP DATABASE IF EXISTS test1; +--enable_warnings +CREATE DATABASE test1; +USE test1; +--source suite/funcs_1/include/myisam_tb2.inc +USE test; let $message= Attention: The nesting level @max_level in Testcase 3.3.1.A6 (Complicated nested VIEWs) has to be limited to 20 because of @@ -40,10 +23,6 @@ let $message= Attention: The nesting level @max_level in Testcase 3.3.1.A6 SET @limit1 = 20; --source suite/funcs_1/views/views_master.inc -# If we created the database in the above loop we now need to drop it -let $run= `SELECT @NO_REFRESH = 0`; -if ($run) -{ - DROP DATABASE IF EXISTS test1; -} +DROP DATABASE test1; +DROP TABLE test.tb2; From 8a4c6521995237d8baba402442ec02124b88a06d Mon Sep 17 00:00:00 2001 From: "aelkin/andrei@mysql1000.(none)" <> Date: Fri, 7 Mar 2008 21:14:28 +0200 Subject: [PATCH 079/139] Bug #26622 MASTER_POS_WAIT does not work as documented Affected tests fixing. After the fix for st_relay_log_info::wait_for_pos() that handles widely used select('master-bin.xxxx',pos) invoked by mysqltest there appeared to be four tests that either tried synchronizing when the slave was stopped or used incorrect synchronization method like to call `sync_with_master' from the current connection being to the master itself. Fixed with correcting the current connection or/and using the correct synchronization macro when possible. --- mysql-test/r/rpl_loaddata.result | 3 ++- mysql-test/r/rpl_slave_status.result | 1 + mysql-test/t/rpl_loaddata.test | 13 +++++++++++-- mysql-test/t/rpl_skip_error.test | 5 +++-- mysql-test/t/rpl_slave_status.test | 6 +++++- mysql-test/t/rpl_temporary.test | 5 +++-- 6 files changed, 25 insertions(+), 8 deletions(-) diff --git a/mysql-test/r/rpl_loaddata.result b/mysql-test/r/rpl_loaddata.result index be137079c7a..e704ada657b 100644 --- a/mysql-test/r/rpl_loaddata.result +++ b/mysql-test/r/rpl_loaddata.result @@ -77,7 +77,8 @@ load data infile '../std_data_ln/rpl_loaddata2.dat' into table t2 fields terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' starting by '>' ignore 1 lines; ERROR 23000: Duplicate entry '2003-03-22' for key 1 -drop table t2; +set @@global.sql_slave_skip_counter=1; +start slave; drop table t2; drop table t1; CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB; diff --git a/mysql-test/r/rpl_slave_status.result b/mysql-test/r/rpl_slave_status.result index 9a4ec4131b0..641a65f5ed7 100644 --- a/mysql-test/r/rpl_slave_status.result +++ b/mysql-test/r/rpl_slave_status.result @@ -53,3 +53,4 @@ Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master NULL drop table t1; +drop table t1; diff --git a/mysql-test/t/rpl_loaddata.test b/mysql-test/t/rpl_loaddata.test index a4781ed4faa..ee80bdfde45 100644 --- a/mysql-test/t/rpl_loaddata.test +++ b/mysql-test/t/rpl_loaddata.test @@ -147,12 +147,20 @@ terminated by ',' optionally enclosed by '%' escaped by '@' lines terminated by '\n##\n' starting by '>' ignore 1 lines; connection slave; wait_for_slave_to_stop; -drop table t2; + +# cleanup: + +set @@global.sql_slave_skip_counter=1; +start slave; + connection master; drop table t2; drop table t1; +sync_slave_with_master; + # BUG#17233 LOAD DATA INFILE: failure causes mysqld dbug_assert, binlog not flushed +connection master; CREATE TABLE t1 (word CHAR(20) NOT NULL PRIMARY KEY) ENGINE=INNODB; --error 1062 @@ -160,5 +168,6 @@ LOAD DATA INFILE "../std_data_ln/words.dat" INTO TABLE t1; DROP TABLE t1; -sync_with_master; +sync_slave_with_master; + # End of 4.1 tests diff --git a/mysql-test/t/rpl_skip_error.test b/mysql-test/t/rpl_skip_error.test index baa7a88b8bb..0e3fd5d9e0d 100644 --- a/mysql-test/t/rpl_skip_error.test +++ b/mysql-test/t/rpl_skip_error.test @@ -15,12 +15,13 @@ select * from t1; connection master; drop table t1; -sync_with_master; +sync_slave_with_master; # End of 4.1 tests # # #28839 Errors in strict mode silently stop SQL thread if --slave-skip-errors exists # +connection master; create table t1(a int primary key); insert into t1 values (1),(2); delete from t1 where @@server_id=1; @@ -36,5 +37,5 @@ select * from t1; show slave status; connection master; drop table t1; -sync_with_master; +sync_slave_with_master; # End of 5.0 tests diff --git a/mysql-test/t/rpl_slave_status.test b/mysql-test/t/rpl_slave_status.test index b97b769d181..527e230854a 100644 --- a/mysql-test/t/rpl_slave_status.test +++ b/mysql-test/t/rpl_slave_status.test @@ -29,8 +29,12 @@ start slave; --vertical_results show slave status; +# cleanup: slave io thread has been stopped "irrecoverably" +# so we clean up mess manually + connection master; drop table t1; -sync_with_master; +connection slave; +drop table t1; # end of 4.1 tests diff --git a/mysql-test/t/rpl_temporary.test b/mysql-test/t/rpl_temporary.test index a7a15aebe7a..516f3a026c9 100644 --- a/mysql-test/t/rpl_temporary.test +++ b/mysql-test/t/rpl_temporary.test @@ -130,7 +130,7 @@ drop table t1,t2; # don't get any memory leaks for this create temporary table t3 (f int); -sync_with_master; +sync_slave_with_master; # The server will now close done @@ -141,7 +141,8 @@ sync_with_master; connection master; create temporary table t4 (f int); create table t5 (f int); -sync_with_master; +sync_slave_with_master; +connection master; # find dumper's $id source include/get_binlog_dump_thread_id.inc; insert into t4 values (1); From c6f63bc5bbf4c60084715320591dfc745db75645 Mon Sep 17 00:00:00 2001 From: "iggy@amd64.(none)" <> Date: Fri, 7 Mar 2008 15:45:40 -0500 Subject: [PATCH 080/139] Bug #27101 mysqlhotcopy --record_log_pos retrieves wrong slave parameters - Make sure mysqlhotcopy doesn't create unrestorable slaves. --- scripts/mysqlhotcopy.sh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/mysqlhotcopy.sh b/scripts/mysqlhotcopy.sh index 8814e36b2fa..4819f512a65 100644 --- a/scripts/mysqlhotcopy.sh +++ b/scripts/mysqlhotcopy.sh @@ -733,7 +733,7 @@ sub record_log_pos { = @{$row_hash}{ qw / Master_Host Log_File Pos / }; } else { ($master_host, $log_file, $log_pos ) - = @{$row_hash}{ qw / Master_Host Master_Log_File Read_Master_Log_Pos / }; + = @{$row_hash}{ qw / Master_Host Relay_Master_Log_File Exec_Master_Log_Pos / }; } my $hostname = hostname(); @@ -836,9 +836,10 @@ log-pos-table from the values returned from "show master status" and log_file and log_pos columns, and establish the position in the binary logs that any slaves of this host should adopt if initialised from this dump. The slave status values are stored in master_host, -master_log_file, and master_log_pos, and these are useful if the host -performing the dump is a slave and other sibling slaves are to be -initialised from this dump. +master_log_file, and master_log_pos, corresponding to the coordinates +of the next to the last event the slave has executed. The slave or its +siblings can connect to the master next time and request replication +starting from the recorded values. The name of the log-pos table should be supplied in database.table format. A sample log-pos table definition: From 1cda9d124bcba3acce49c3ddc4d1bd9a0150d094 Mon Sep 17 00:00:00 2001 From: "tsmith@ramayana.hindu.god" <> Date: Mon, 10 Mar 2008 03:25:54 -0600 Subject: [PATCH 081/139] Bug #25486: mysqld_multi.server.sh missing from builds Make mysqld_multi.server executable, and allow it to be installed via chkconfig on LSB-compliant systems. --- scripts/make_binary_distribution.sh | 4 ++-- support-files/mysqld_multi.server.sh | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index 8598a022669..68af030f17a 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -327,8 +327,8 @@ if [ $BASE_SYSTEM != "netware" ] ; then < support-files/mysql.server.sh > $BASE/support-files/mysql.server $BASE/bin/replace /my/gnu/bin/hostname /bin/hostname -- $BASE/bin/mysqld_safe mv $BASE/support-files/binary-configure $BASE/configure - chmod a+x $BASE/bin/* $BASE/scripts/* $BASE/support-files/mysql-* \ - $BASE/support-files/mysql.server $BASE/configure + chmod a+x $BASE/bin/* $BASE/scripts/* $BASE/support-files/mysql-log-rotate \ + $BASE/support-files/*.server $BASE/configure $CP -r sql-bench/* $BASE/sql-bench rm -f $BASE/sql-bench/*.sh $BASE/sql-bench/Makefile* $BASE/lib/*.la rm -f $BASE/bin/*.sql diff --git a/support-files/mysqld_multi.server.sh b/support-files/mysqld_multi.server.sh index aaf3f2ebb40..75908a5db9d 100644 --- a/support-files/mysqld_multi.server.sh +++ b/support-files/mysqld_multi.server.sh @@ -7,6 +7,10 @@ # # This script can be used as /etc/init.d/mysql.server # +# Comments to support chkconfig on RedHat Linux +# chkconfig: 2345 64 36 +# description: A very fast and reliable SQL database engine. +# # Version 1.0 # From 3db8534ed4948aa62d29bc40741e802f76dd5611 Mon Sep 17 00:00:00 2001 From: "tnurnberg@mysql.com/white.intern.koehntopp.de" <> Date: Mon, 10 Mar 2008 11:12:12 +0100 Subject: [PATCH 082/139] Bug#34731: highest possible value for INT erroneously filtered by WHERE WHERE f1 < n ignored row if f1 was indexed integer column and f1 = TYPE_MAX ^ n = TYPE_MAX+1. The latter value when treated as TYPE overflowed (obviously). This was not handled, it is now. --- mysql-test/r/range.result | 39 ++++++++++++++++ mysql-test/t/range.test | 47 +++++++++++++++++++ sql/opt_range.cc | 98 +++++++++++++++++++++++---------------- 3 files changed, 144 insertions(+), 40 deletions(-) diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result index e0084b53320..f666030465e 100644 --- a/mysql-test/r/range.result +++ b/mysql-test/r/range.result @@ -1153,3 +1153,42 @@ explain select * from t1 where dateval >= '2007-01-01 00:00:00' and dateval <= ' id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range dateval dateval 4 NULL 2 Using where drop table t1; +CREATE TABLE t1 (f1 TINYINT(11) UNSIGNED NOT NULL, PRIMARY KEY (f1)); +INSERT INTO t1 VALUES (127),(254),(0),(1),(255); +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 256; +COUNT(*) +5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 256.0; +COUNT(*) +5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 255; +COUNT(*) +4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < -1; +COUNT(*) +0 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -1; +COUNT(*) +5 +DROP TABLE t1; +CREATE TABLE t1 ( f1 TINYINT(11) NOT NULL, PRIMARY KEY (f1)); +INSERT INTO t1 VALUES (127),(126),(0),(-128),(-127); +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 128; +COUNT(*) +5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 128.0; +COUNT(*) +5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 127; +COUNT(*) +4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -129; +COUNT(*) +5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -129.0; +COUNT(*) +5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -128; +COUNT(*) +4 +DROP TABLE t1; diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test index 87ba3510326..95e0d31ff8f 100644 --- a/mysql-test/t/range.test +++ b/mysql-test/t/range.test @@ -955,4 +955,51 @@ explain select * from t1 where dateval >= '2007-01-01 00:00:00' and dateval <= ' drop table t1; + +# +# Bug #34731: highest possible value for INT erroneously filtered by WHERE +# + +# test UNSIGNED. only occurs when indexed. +CREATE TABLE t1 (f1 TINYINT(11) UNSIGNED NOT NULL, PRIMARY KEY (f1)); + +INSERT INTO t1 VALUES (127),(254),(0),(1),(255); + +# test upper bound +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 256; +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 256.0; +# count 4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 255; + +# show we don't fiddle with lower bound on UNSIGNED +# count 0 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < -1; +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -1; + +DROP TABLE t1; + + +# test signed. only occurs when index. +CREATE TABLE t1 ( f1 TINYINT(11) NOT NULL, PRIMARY KEY (f1)); + +INSERT INTO t1 VALUES (127),(126),(0),(-128),(-127); + +# test upper bound +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 128; +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 128.0; +# count 4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 < 127; + +# test lower bound +# count 5 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -129; +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -129.0; +# count 4 +SELECT SQL_NO_CACHE COUNT(*) FROM t1 WHERE f1 > -128; + +DROP TABLE t1; + # End of 5.0 tests diff --git a/sql/opt_range.cc b/sql/opt_range.cc index a8cf0f67635..c3eddbd0abf 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -4405,52 +4405,70 @@ get_mm_leaf(PARAM *param, COND *conf_func, Field *field, KEY_PART *key_part, field->type() == FIELD_TYPE_DATETIME)) field->table->in_use->variables.sql_mode|= MODE_INVALID_DATES; err= value->save_in_field_no_warnings(field, 1); - if (err > 0 && field->cmp_type() != value->result_type()) + if (err > 0) { - if ((type == Item_func::EQ_FUNC || type == Item_func::EQUAL_FUNC) && - value->result_type() == item_cmp_type(field->result_type(), - value->result_type())) - + if (field->cmp_type() != value->result_type()) { - tree= new (alloc) SEL_ARG(field, 0, 0); - tree->type= SEL_ARG::IMPOSSIBLE; - goto end; - } - else - { - /* - TODO: We should return trees of the type SEL_ARG::IMPOSSIBLE - for the cases like int_field > 999999999999999999999999 as well. - */ - tree= 0; - if (err == 3 && field->type() == FIELD_TYPE_DATE && - (type == Item_func::GT_FUNC || type == Item_func::GE_FUNC || - type == Item_func::LT_FUNC || type == Item_func::LE_FUNC) ) + if ((type == Item_func::EQ_FUNC || type == Item_func::EQUAL_FUNC) && + value->result_type() == item_cmp_type(field->result_type(), + value->result_type())) { - /* - We were saving DATETIME into a DATE column, the conversion went ok - but a non-zero time part was cut off. - - In MySQL's SQL dialect, DATE and DATETIME are compared as datetime - values. Index over a DATE column uses DATE comparison. Changing - from one comparison to the other is possible: - - datetime(date_col)< '2007-12-10 12:34:55' -> date_col<='2007-12-10' - datetime(date_col)<='2007-12-10 12:34:55' -> date_col<='2007-12-10' - - datetime(date_col)> '2007-12-10 12:34:55' -> date_col>='2007-12-10' - datetime(date_col)>='2007-12-10 12:34:55' -> date_col>='2007-12-10' - - but we'll need to convert '>' to '>=' and '<' to '<='. This will - be done together with other types at the end of this function - (grep for field_is_equal_to_item) - */ + tree= new (alloc) SEL_ARG(field, 0, 0); + tree->type= SEL_ARG::IMPOSSIBLE; + goto end; } else - goto end; + { + /* + TODO: We should return trees of the type SEL_ARG::IMPOSSIBLE + for the cases like int_field > 999999999999999999999999 as well. + */ + tree= 0; + if (err == 3 && field->type() == FIELD_TYPE_DATE && + (type == Item_func::GT_FUNC || type == Item_func::GE_FUNC || + type == Item_func::LT_FUNC || type == Item_func::LE_FUNC) ) + { + /* + We were saving DATETIME into a DATE column, the conversion went ok + but a non-zero time part was cut off. + + In MySQL's SQL dialect, DATE and DATETIME are compared as datetime + values. Index over a DATE column uses DATE comparison. Changing + from one comparison to the other is possible: + + datetime(date_col)< '2007-12-10 12:34:55' -> date_col<='2007-12-10' + datetime(date_col)<='2007-12-10 12:34:55' -> date_col<='2007-12-10' + + datetime(date_col)> '2007-12-10 12:34:55' -> date_col>='2007-12-10' + datetime(date_col)>='2007-12-10 12:34:55' -> date_col>='2007-12-10' + + but we'll need to convert '>' to '>=' and '<' to '<='. This will + be done together with other types at the end of this function + (grep for field_is_equal_to_item) + */ + } + else + goto end; + } } - } - if (err < 0) + + /* + guaranteed at this point: err > 0; field and const of same type + If an integer got bounded (e.g. to within 0..255 / -128..127) + for < or >, set flags as for <= or >= (no NEAR_MAX / NEAR_MIN) + */ + else if (err == 1 && field->result_type() == INT_RESULT) + { + if (type == Item_func::LT_FUNC && (value->val_int() > 0)) + type = Item_func::LE_FUNC; + else if (type == Item_func::GT_FUNC && + !((Field_num*)field)->unsigned_flag && + !((Item_int*)value)->unsigned_flag && + (value->val_int() < 0)) + type = Item_func::GE_FUNC; + } + } + else if (err < 0) { field->table->in_use->variables.sql_mode= orig_sql_mode; /* This happens when we try to insert a NULL field in a not null column */ From 1322371fb21d6efb85181e2518d1a6cf198bd95d Mon Sep 17 00:00:00 2001 From: "sven@riska.(none)" <> Date: Tue, 11 Mar 2008 14:42:54 +0100 Subject: [PATCH 083/139] BUG#31024: STOP SLAVE does not stop attempted connect()s Problem: if the IO slave thread is attempting to connect, STOP SLAVE waits for the attempt to finish. It may take a long time. Fix: don't wait, stop the slave immediately. --- sql/slave.cc | 15 ++++++++++++++- sql/sql_repl.h | 6 ------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/sql/slave.cc b/sql/slave.cc index d4d0655f366..5488b3c312a 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -699,7 +699,20 @@ int terminate_slave_thread(THD* thd, pthread_mutex_t* term_lock, while (*slave_running) // Should always be true { DBUG_PRINT("loop", ("killing slave thread")); - KICK_SLAVE(thd); + + pthread_mutex_lock(&thd->LOCK_delete); +#ifndef DONT_USE_THR_ALARM + /* + Error codes from pthread_kill are: + EINVAL: invalid signal number (can't happen) + ESRCH: thread already killed (can happen, should be ignored) + */ + IF_DBUG(int err= ) pthread_kill(thd->real_id, thr_client_alarm); + DBUG_ASSERT(err != EINVAL); +#endif + thd->awake(THD::NOT_KILLED); + pthread_mutex_unlock(&thd->LOCK_delete); + /* There is a small chance that slave thread might miss the first alarm. To protect againts it, resend the signal until it reacts diff --git a/sql/sql_repl.h b/sql/sql_repl.h index 1fbc6eb30cf..cf400218cc2 100644 --- a/sql/sql_repl.h +++ b/sql/sql_repl.h @@ -35,12 +35,6 @@ extern I_List binlog_do_db, binlog_ignore_db; extern int max_binlog_dump_events; extern my_bool opt_sporadic_binlog_dump_fail; -#define KICK_SLAVE(thd) do { \ - pthread_mutex_lock(&(thd)->LOCK_delete); \ - (thd)->awake(THD::NOT_KILLED); \ - pthread_mutex_unlock(&(thd)->LOCK_delete); \ - } while(0) - int start_slave(THD* thd, MASTER_INFO* mi, bool net_report); int stop_slave(THD* thd, MASTER_INFO* mi, bool net_report); bool change_master(THD* thd, MASTER_INFO* mi); From 878b333680560343eb6d3e56c0553c12c0fb0b54 Mon Sep 17 00:00:00 2001 From: "kent@mysql.com/kent-amd64.(none)" <> Date: Tue, 11 Mar 2008 15:21:58 +0100 Subject: [PATCH 084/139] make_win_bin_dist: Include .pdb files for tools and libraries (bug#35104) --- scripts/make_win_bin_dist | 40 ++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/scripts/make_win_bin_dist b/scripts/make_win_bin_dist index 56510dc857b..8a57b545ac7 100755 --- a/scripts/make_win_bin_dist +++ b/scripts/make_win_bin_dist @@ -26,8 +26,7 @@ set -e # NOTE: Pattern matching with "{..,..}" can't be used, not portable. # ---------------------------------------------------------------------- -# FIXME FIXME "debug", own build or handled here? -# FIXME FIXME add way to copy from other builds executables +# FIXME why "libmysql.dll" installed both in "bin" and "lib/opt"? usage() { @@ -150,13 +149,16 @@ cp myisam/$TARGET/*.exe $DESTDIR/bin/ cp server-tools/instance-manager/$TARGET/*.{exe,map} $DESTDIR/bin/ if [ x"$TARGET" != x"release" ] ; then cp server-tools/instance-manager/$TARGET/*.pdb $DESTDIR/bin/ + cp client/$TARGET/mysql.pdb $DESTDIR/bin/ + cp client/$TARGET/mysqladmin.pdb $DESTDIR/bin/ + cp client/$TARGET/mysqlbinlog.pdb $DESTDIR/bin/ + cp client/$TARGET/mysqldump.pdb $DESTDIR/bin/ + cp client/$TARGET/mysqlimport.pdb $DESTDIR/bin/ + cp client/$TARGET/mysqlshow.pdb $DESTDIR/bin/ fi cp tests/$TARGET/*.exe $DESTDIR/bin/ cp libmysql/$TARGET/libmysql.dll $DESTDIR/bin/ -# FIXME really needed?! -mv $DESTDIR/bin/comp_err.exe $DESTDIR/bin/comp-err.exe - if [ -f "sql/$TARGET/mysqld-nt.exe" ] ; then BASENAME="mysqld-nt" # Old style non CMake build else @@ -191,10 +193,6 @@ if [ -d win/data ] ; then cp -pR win/data $DESTDIR/ fi -# FIXME maybe a flag to define "release build", or do the -# check from the calling script that all these are there, -# and with the correct content. - mkdir $DESTDIR/Docs cp Docs/INSTALL-BINARY $DESTDIR/Docs/ cp Docs/manual.chm $DESTDIR/Docs/ || /bin/true @@ -218,11 +216,13 @@ copy_embedded() $DESTDIR/include cp libmysqld/libmysqld.def $DESTDIR/include/ cp libmysqld/$TARGET/mysqlserver.lib $DESTDIR/Embedded/static/release/ - cp libmysqld/$TARGET/mysqlserver.pdb $DESTDIR/Embedded/static/release/ cp libmysqld/$TARGET/libmysqld.dll $DESTDIR/Embedded/DLL/release/ cp libmysqld/$TARGET/libmysqld.exp $DESTDIR/Embedded/DLL/release/ cp libmysqld/$TARGET/libmysqld.lib $DESTDIR/Embedded/DLL/release/ - cp libmysqld/$TARGET/libmysqld.pdb $DESTDIR/Embedded/DLL/release/ + if [ x"$TARGET" != x"release" ] ; then + cp libmysqld/$TARGET/mysqlserver.pdb $DESTDIR/Embedded/static/release/ + cp libmysqld/$TARGET/libmysqld.pdb $DESTDIR/Embedded/DLL/release/ + fi if [ x"$PACK_DEBUG" = x"" -a -f "libmysqld/debug/libmysqld.lib" -o \ x"$PACK_DEBUG" = x"yes" ] ; then @@ -287,7 +287,6 @@ cp include/mysql.h \ # ---------------------------------------------------------------------- # Client libraries, and other libraries -# FIXME why "libmysql.dll" installed both in "bin" and "lib/opt"? # ---------------------------------------------------------------------- mkdir -p $DESTDIR/lib/opt @@ -299,16 +298,31 @@ cp libmysql/$TARGET/libmysql.dll \ strings/$TARGET/strings.lib \ zlib/$TARGET/zlib.lib $DESTDIR/lib/opt/ +if [ x"$TARGET" != x"release" ] ; then + cp libmysql/$TARGET/libmysql.pdb \ + libmysql/$TARGET/mysqlclient.pdb \ + mysys/$TARGET/mysys.pdb \ + regex/$TARGET/regex.pdb \ + strings/$TARGET/strings.pdb \ + zlib/$TARGET/zlib.pdb $DESTDIR/lib/opt/ +fi + if [ x"$PACK_DEBUG" = x"" -a -f "libmysql/debug/libmysql.lib" -o \ x"$PACK_DEBUG" = x"yes" ] ; then mkdir -p $DESTDIR/lib/debug cp libmysql/debug/libmysql.dll \ libmysql/debug/libmysql.lib \ + libmysql/debug/libmysql.pdb \ libmysql/debug/mysqlclient.lib \ + libmysql/debug/mysqlclient.pdb \ mysys/debug/mysys.lib \ + mysys/debug/mysys.pdb \ regex/debug/regex.lib \ + regex/debug/regex.pdb \ strings/debug/strings.lib \ - zlib/debug/zlib.lib $DESTDIR/lib/debug/ + strings/debug/strings.pdb \ + zlib/debug/zlib.lib \ + zlib/debug/zlib.pdb $DESTDIR/lib/debug/ fi # ---------------------------------------------------------------------- From d7e6ba4794560f3258adee7873dce0401dc6690f Mon Sep 17 00:00:00 2001 From: "mleich@five.local.lan" <> Date: Tue, 11 Mar 2008 19:54:35 +0100 Subject: [PATCH 085/139] Post fix for WL#4203 Reorganize and fix the data dictionary tests of testsuite funcs_1 because the goal to fix Bug#34532 Some funcs_1 tests do not clean up at end of testing was partially missed. Some minor additional modifications are for WL#4304 Cleanup in funcs_1 tests --- .../suite/funcs_1/cursors/cursors_master.test | 1 - .../suite/funcs_1/datadict/datadict_load.inc | 86 +- .../funcs_1/r/innodb_storedproc_02.result | 0 .../funcs_1/r/innodb_storedproc_03.result | 0 .../funcs_1/r/innodb_storedproc_07.result | 0 .../funcs_1/r/innodb_storedproc_08.result | 0 .../funcs_1/r/innodb_storedproc_10.result | 0 .../suite/funcs_1/r/innodb_triggers.result | 2331 --- .../suite/funcs_1/r/innodb_views.result | 12478 +++++++++++++- .../suite/funcs_1/r/is_columns_innodb.result | 1 - .../suite/funcs_1/r/is_columns_memory.result | 1 - .../suite/funcs_1/r/is_columns_myisam.result | 1 - .../suite/funcs_1/r/is_columns_ndb.result | 1 - .../suite/funcs_1/r/is_tables_innodb.result | 1 - .../suite/funcs_1/r/is_tables_memory.result | 1 - .../suite/funcs_1/r/is_tables_myisam.result | 1 - .../suite/funcs_1/r/is_tables_ndb.result | 1 - .../funcs_1/r/memory_storedproc_02.result | 0 .../funcs_1/r/memory_storedproc_03.result | 0 .../funcs_1/r/memory_storedproc_07.result | 0 .../funcs_1/r/memory_storedproc_08.result | 0 .../funcs_1/r/memory_storedproc_10.result | 0 .../suite/funcs_1/r/memory_triggers.result | 2262 --- .../suite/funcs_1/r/memory_views.result | 12478 +++++++++++++- .../funcs_1/r/myisam_storedproc_02.result | 0 .../funcs_1/r/myisam_storedproc_03.result | 0 .../funcs_1/r/myisam_storedproc_07.result | 0 .../funcs_1/r/myisam_storedproc_08.result | 0 .../funcs_1/r/myisam_storedproc_10.result | 0 .../suite/funcs_1/r/myisam_triggers.result | 2266 --- .../suite/funcs_1/r/myisam_views.result | 14142 +++++++++++++++- .../suite/funcs_1/t/innodb_storedproc.test | 3 + .../suite/funcs_1/t/memory_storedproc.test | 2 + .../suite/funcs_1/t/myisam_storedproc.test | 2 + .../suite/funcs_1/t/myisam_trig_1011ext.test | 9 - .../suite/funcs_1/views/views_master.inc | 849 +- 36 files changed, 38051 insertions(+), 8866 deletions(-) mode change 100755 => 100644 mysql-test/suite/funcs_1/r/innodb_storedproc_02.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/innodb_storedproc_03.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/innodb_storedproc_07.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/innodb_storedproc_08.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/innodb_storedproc_10.result delete mode 100644 mysql-test/suite/funcs_1/r/innodb_triggers.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/memory_storedproc_02.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/memory_storedproc_03.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/memory_storedproc_07.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/memory_storedproc_08.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/memory_storedproc_10.result delete mode 100644 mysql-test/suite/funcs_1/r/memory_triggers.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/myisam_storedproc_02.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/myisam_storedproc_03.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/myisam_storedproc_07.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/myisam_storedproc_08.result mode change 100755 => 100644 mysql-test/suite/funcs_1/r/myisam_storedproc_10.result delete mode 100644 mysql-test/suite/funcs_1/r/myisam_triggers.result diff --git a/mysql-test/suite/funcs_1/cursors/cursors_master.test b/mysql-test/suite/funcs_1/cursors/cursors_master.test index 19961503b77..cf4c9e56dfa 100644 --- a/mysql-test/suite/funcs_1/cursors/cursors_master.test +++ b/mysql-test/suite/funcs_1/cursors/cursors_master.test @@ -1,4 +1,3 @@ #### suite/funcs_1/cursors/cursors_master.test - let $message= NOT YET IMPLEMENTED: cursor tests; --source include/show_msg80.inc diff --git a/mysql-test/suite/funcs_1/datadict/datadict_load.inc b/mysql-test/suite/funcs_1/datadict/datadict_load.inc index 4a9bdc9356d..542f3bb8eb6 100644 --- a/mysql-test/suite/funcs_1/datadict/datadict_load.inc +++ b/mysql-test/suite/funcs_1/datadict/datadict_load.inc @@ -67,56 +67,40 @@ let $engine_myisam= `SELECT @ENGINE_MYISAM = 1`; let $engine_innodb= `SELECT @ENGINE_INNODB = 1`; let $engine_memory= `SELECT @ENGINE_MEMORY = 1`; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. -# -eval SET @NO_REFRESH = IF( '$NO_REFRESH' = '', 0, 1); -let $run= `SELECT @NO_REFRESH = 0`; -if ($run) +--disable_warnings +DROP DATABASE IF EXISTS test1; +--enable_warnings +CREATE DATABASE test1; +USE test; + +if ($engine_innodb) { - --disable_warnings - DROP DATABASE IF EXISTS test1; - --enable_warnings - CREATE DATABASE test1; - USE test; - - # until a statement 'eval --source suite/funcs_1/include/$var_tb1.inc - # works we need to have similar statements for each $engine - if ($engine_innodb) - { - --source suite/funcs_1/include/innodb_tb1.inc - --source suite/funcs_1/include/innodb_tb2.inc - --source suite/funcs_1/include/innodb_tb3.inc - --source suite/funcs_1/include/innodb_tb4.inc - USE test1; - --source suite/funcs_1/include/innodb_tb2.inc - } - - if ($engine_memory) - { - --source suite/funcs_1/include/memory_tb1.inc - --source suite/funcs_1/include/memory_tb2.inc - --source suite/funcs_1/include/memory_tb3.inc - --source suite/funcs_1/include/memory_tb4.inc - USE test1; - --source suite/funcs_1/include/memory_tb2.inc - } - - if ($engine_myisam) - { - --source suite/funcs_1/include/myisam_tb1.inc - --source suite/funcs_1/include/myisam_tb2.inc - --source suite/funcs_1/include/myisam_tb3.inc - --source suite/funcs_1/include/myisam_tb4.inc - USE test1; - --source suite/funcs_1/include/myisam_tb2.inc - } - USE test; - --source suite/funcs_1/include/sp_tb.inc + --source suite/funcs_1/include/innodb_tb1.inc + --source suite/funcs_1/include/innodb_tb2.inc + --source suite/funcs_1/include/innodb_tb3.inc + --source suite/funcs_1/include/innodb_tb4.inc + USE test1; + --source suite/funcs_1/include/innodb_tb2.inc } + +if ($engine_memory) +{ + --source suite/funcs_1/include/memory_tb1.inc + --source suite/funcs_1/include/memory_tb2.inc + --source suite/funcs_1/include/memory_tb3.inc + --source suite/funcs_1/include/memory_tb4.inc + USE test1; + --source suite/funcs_1/include/memory_tb2.inc +} + +if ($engine_myisam) +{ + --source suite/funcs_1/include/myisam_tb1.inc + --source suite/funcs_1/include/myisam_tb2.inc + --source suite/funcs_1/include/myisam_tb3.inc + --source suite/funcs_1/include/myisam_tb4.inc + USE test1; + --source suite/funcs_1/include/myisam_tb2.inc +} +USE test; +--source suite/funcs_1/include/sp_tb.inc diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/innodb_triggers.result b/mysql-test/suite/funcs_1/r/innodb_triggers.result deleted file mode 100644 index f6f61040e6a..00000000000 --- a/mysql-test/suite/funcs_1/r/innodb_triggers.result +++ /dev/null @@ -1,2331 +0,0 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -drop table if exists tb3 ; -create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) -) engine = innodb; -Warnings: -Note 1265 Data truncated for column 'f150' at row 1 -Note 1265 Data truncated for column 'f151' at row 1 -Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; - -Testcase: 3.5: --------------- -create User test_general@localhost; -set password for test_general@localhost = password('PWD'); -revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost; -create User test_super@localhost; -set password for test_super@localhost = password('PWD'); -grant ALL on *.* to test_super@localhost with grant OPTION; -connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); - -Testcase: 3.5.1.1: ------------------- -use test; -Create trigger trg1_1 BEFORE INSERT -on tb3 for each row set @test_before = 2, new.f142 = @test_before; -Create trigger trg1_2 AFTER INSERT -on tb3 for each row set @test_after = 6; -Create trigger trg1_4 BEFORE UPDATE -on tb3 for each row set @test_before = 27, -new.f142 = @test_before, -new.f122 = 'Before Update Trigger'; -Create trigger trg1_3 AFTER UPDATE -on tb3 for each row set @test_after = '15'; -Create trigger trg1_5 BEFORE DELETE on tb3 for each row -select count(*) into @test_before from tb3 as tr_tb3 -where f121 = 'Test 3.5.1.1'; -Create trigger trg1_6 AFTER DELETE on tb3 for each row -select count(*) into @test_after from tb3 as tr_tb3 -where f121 = 'Test 3.5.1.1'; -set @test_before = 1; -set @test_after = 5; -select @test_before, @test_after; -@test_before @test_after -1 5 -Insert into tb3 (f121, f122, f142, f144, f134) -values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 First Row 2 0000000005 1 -select @test_before, @test_after; -@test_before @test_after -2 6 -set @test_before = 18; -set @test_after = 8; -select @test_before, @test_after; -@test_before @test_after -18 8 -Update tb3 set tb3.f122 = 'Update', -tb3.f142 = @test_before, -tb3.f144 = @test_after -where tb3.f121 = 'Test 3.5.1.1'; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -select @test_before, @test_after; -@test_before @test_after -27 15 -Insert into tb3 (f121, f122, f142, f144, f134) -values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); -set @test_before = 0; -set @test_after = 0; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -Test 3.5.1.1 Second Row 2 0000000006 2 -select @test_before, @test_after; -@test_before @test_after -0 0 -Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -select @test_before, @test_after; -@test_before @test_after -2 1 -drop trigger trg1_1; -drop trigger trg1_2; -drop trigger trg1_3; -drop trigger trg1_4; -drop trigger trg1_5; -drop trigger trg1_6; -delete from tb3 where f121='Test 3.5.1.1'; - -Testcase: 3.5.1.2: ------------------- -Create trigger trg_1 after insert -on tb3 for each statement set @x= 1; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statement set @x= 1' at line 2 -drop trigger trg_1; - -Testcase 3.5.1.3: ------------------ -CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1 -CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1 -CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set @ret1 = 'test' for each row' at line 1 -CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1 -CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1 -drop trigger trg3_1; -drop trigger trg3_2; -drop trigger trg3_3; -drop trigger trg3_4; -drop trigger trg3_5; - -Testcase: 3.5.1.5: ------------------- -CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 for each row set new.f120 = 'e'' at line 1 -CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1 -CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tb3 for each row set new.f120 = 'g'' at line 1 -CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set new.f120 = 'g'' at line 1 -CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1 -CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row set new.f120 = 'g'' at line 1 -drop trigger trg4_1; -drop trigger trg4_2; -drop trigger trg4_3; -drop trigger trg4_4; -drop trigger trg4_5; -drop trigger trg4_6; - -Testcase 3.5.1.6: - Need to fix -------------------------------- - -Testcase 3.5.1.7: - need to fix -------------------------------- -drop table if exists t1; -Warnings: -Note 1051 Unknown table 't1' -create table t1 (f1 int, f2 char(25),f3 int) engine=innodb; -CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 -for each row set new.f3 = '14'; -CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ -BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; -insert into t1 (f2) values ('insert 3.5.1.7'); -select * from t1; -f1 f2 f3 -NULL insert 3.5.1.7 14 -update t1 set f2='update 3.5.1.7'; -select * from t1; -f1 f2 f3 -NULL update 3.5.1.7 42 -select trigger_name from information_schema.triggers; -trigger_name -trg5_1 -trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX -drop trigger trg5_1; -drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ; -drop table t1; - -Testcase 3.5.1.8: ------------------ -CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '100 before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@name before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 -for each row set new.f120 ='X'; -ERROR HY000: Trigger in wrong schema -drop database if exists trig_db; -create database trig_db; -use trig_db; -create table t1 (f1 integer) engine = innodb; -use test; -CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 -for each row set @ret_trg6_2 = 5; -ERROR HY000: Trigger in wrong schema -use trig_db; -CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 -for each row set @ret_trg6_3 = 18; -ERROR HY000: Trigger in wrong schema -use test; -drop database trig_db; -drop trigger trg6_1; -drop trigger trg6_3; - -Testcase 3.5.1.9:(cannot be inplemented at this point) ------------------------------------------------------- - -Testcase 3.5.1.10: ------------------- -CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X'; -CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y'; -ERROR HY000: Trigger already exists -drop trigger trg7_1; - -Testcase 3.5.1.?: ------------------ -drop table if exists t1; -drop table if exists t2; -create table t1 (f1 char(50), f2 integer) engine = innodb; -create table t2 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t1 -for each row set new.f1 ='trig t1'; -create trigger trig before update on t2 -for each row set new.f1 ='trig t2'; -ERROR HY000: Trigger already exists -insert into t1 value ('insert to t1',1); -select * from t1; -f1 f2 -trig t1 1 -update t1 set f1='update to t1'; -select * from t1; -f1 f2 -update to t1 1 -insert into t2 value ('insert to t2',2); -update t2 set f1='update to t1'; -select * from t2; -f1 f2 -update to t1 2 -drop table t1; -drop table t2; -drop trigger trig; - -Testcase 3.5.1.11: ------------------- -drop database if exists trig_db1; -drop database if exists trig_db2; -drop database if exists trig_db3; -create database trig_db1; -create database trig_db2; -create database trig_db3; -use trig_db1; -create table t1 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t1 -for each row set new.f1 ='trig1', @test_var1='trig1'; -use trig_db2; -create table t2 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t2 -for each row set new.f1 ='trig2', @test_var2='trig2'; -use trig_db3; -create table t1 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t1 -for each row set new.f1 ='trig3', @test_var3='trig3'; -set @test_var1= '', @test_var2= '', @test_var3= ''; -use trig_db1; -insert into t1 (f1,f2) values ('insert to db1 t1',1); -insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2); -insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3); -insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); -select @test_var1, @test_var2, @test_var3; -@test_var1 @test_var2 @test_var3 -trig1 trig2 trig3 -select * from t1; -f1 f2 -trig1 1 -trig1 2 -select * from trig_db2.t2; -f1 f2 -trig2 3 -select * from trig_db3.t1; -f1 f2 -trig3 4 -select * from t1; -f1 f2 -trig1 1 -trig1 2 -use test; -drop database trig_db1; -drop database trig_db2; -drop database trig_db3; - -Testcase 3.5.2.1/2/3: ---------------------- -drop database if exists trig_db1; -drop database if exists trig_db2; -create database trig_db1; -create database trig_db2; -use trig_db1; -create table t1 (f1 char(50), f2 integer) engine = innodb; -create table trig_db2.t1 (f1 char(50), f2 integer) engine = innodb; -create trigger trig1_b before insert on t1 -for each row set @test_var1='trig1_b'; -create trigger trig_db1.trig1_a after insert on t1 -for each row set @test_var2='trig1_a'; -create trigger trig_db2.trig2 before insert on trig_db2.t1 -for each row set @test_var3='trig2'; -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; -trigger_schema trigger_name event_object_table -trig_db1 trig1_b t1 -trig_db1 trig1_a t1 -trig_db2 trig2 t1 -set @test_var1= '', @test_var2= '', @test_var3= ''; -insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); -insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352); -select @test_var1, @test_var2, @test_var3; -@test_var1 @test_var2 @test_var3 -trig1_b trig1_a trig2 -drop database trig_db1; -drop database trig_db2; - -Testcase 3.5.3: ---------------- -drop database if exists priv_db; -create database priv_db; -use priv_db; -create table t1 (f1 char(20)); -create User test_noprivs@localhost; -set password for test_noprivs@localhost = password('PWD'); -create User test_yesprivs@localhost; -set password for test_yesprivs@localhost = password('PWD'); - -Testcase 3.5.3.2/6: -------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke SUPER on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); - -Testcase 3.5.3.2: ------------------ -select current_user; -current_user -test_noprivs@localhost -use priv_db; -create trigger trg1_1 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.2_1-no'; -ERROR 42000: Access denied; you need the SUPER privilege for this operation -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.2-no'); -select f1 from t1; -f1 -insert 3.5.3.2-no -select current_user; -current_user -test_yesprivs@localhost -use priv_db; -create trigger trg1_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.2_2-yes'; -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.2-yes'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes - -Testcase 3.5.3.6: ------------------ -use priv_db; -drop trigger trg1_2; -ERROR 42000: Access denied; you need the SUPER privilege for this operation -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.6-yes'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -use priv_db; -drop trigger trg1_2; -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.6-no'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -drop trigger trg1_2; - -Testcase 3.5.3.7a: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke UPDATE on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER, UPDATE on *.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -select current_user; -current_user -test_noprivs@localhost -use priv_db; -show grants; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1a'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -drop trigger trg4a_1; -use priv_db; -select current_user; -current_user -test_yesprivs@localhost -show grants; -Grants for test_yesprivs@localhost -GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -create trigger trg4a_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2a'; -insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -drop trigger trg4a_2; - -Testcase 3.5.3.7b: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs; -grant ALL on priv_db.* to test_noprivs@localhost; -revoke UPDATE on priv_db.* from test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE on priv_db.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -insert 3.5.3.7-1b -update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -drop trigger trg4b_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4b_2 before UPDATE on t1 for each row -set new.f1 = 'trig 3.5.3.7-2b'; -insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -insert 3.5.3.7-2b -update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -drop trigger trg4b_2; - -Testcase 3.5.3.7c ------------------ -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.t1 to test_noprivs@localhost; -revoke UPDATE on priv_db.t1 from test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1c'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -drop trigger trg4c_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4c_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2c'; -insert into t1 (f1) values ('insert 3.5.3.7-2c'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -drop trigger trg4c_2; - -Testcase 3.5.3.7d: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1d'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -insert 3.5.3.7-1d -drop trigger trg4d_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4d_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2d'; -insert into t1 (f1) values ('insert 3.5.3.7-2d'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -insert 3.5.3.7-1d -trig 3.5.3.7-2d -drop trigger trg4d_2; - -Testcase 3.5.3.8a: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke SELECT on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER, SELECT on *.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -select current_user; -current_user -test_noprivs@localhost -use priv_db; -show grants; -Grants for test_noprivs@localhost -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var = 'before trig 3.5.3.8-1a'; -select @test_var; -@test_var -before trig 3.5.3.8-1a -insert into t1 (f1) values ('insert 3.5.3.8-1a'); -select @test_var; -@test_var -before trig 3.5.3.8-1a -drop trigger trg5a_1; -use priv_db; -select current_user; -current_user -test_yesprivs@localhost -show grants; -Grants for test_yesprivs@localhost -GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -create trigger trg5a_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var= 'before trig 3.5.3.8-2a'; -select @test_var; -@test_var -before trig 3.5.3.8-2a -insert into t1 (f1) values ('insert 3.5.3.8-2a'); -select @test_var; -@test_var -insert 3.5.3.8-2a -drop trigger trg5a_2; - -Testcase: 3.5.3.8b ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.* to test_noprivs@localhost; -revoke SELECT on priv_db.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var= 'before trig 3.5.3.8-1b'; -insert into t1 (f1) values ('insert 3.5.3.8-1b'); -select @test_var; -@test_var -before trig 3.5.3.8-1b -update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; -select @test_var; -@test_var -before trig 3.5.3.8-1b -drop trigger trg5b_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5b_2 before UPDATE on t1 for each row -set @test_var= new.f1; -set @test_var= 'before trig 3.5.3.8-2b'; -insert into t1 (f1) values ('insert 3.5.3.8-2b'); -select @test_var; -@test_var -before trig 3.5.3.8-2b -update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; -select @test_var; -@test_var -update 3.5.3.8-2b -drop trigger trg5b_2; - -Testcase 3.5.3.8c: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.t1 to test_noprivs@localhost; -revoke SELECT on priv_db.t1 from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var= 'before trig 3.5.3.8-1c'; -insert into t1 (f1) values ('insert 3.5.3.8-1c'); -select @test_var; -@test_var -before trig 3.5.3.8-1c -drop trigger trg5c_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5c_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var='before trig 3.5.3.8-2c'; -insert into t1 (f1) values ('insert 3.5.3.8-2c'); -select @test_var; -@test_var -insert 3.5.3.8-2c -drop trigger trg5c_2; - -Testcase: 3.5.3.8d: -------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var='before trig 3.5.3.8-1d'; -insert into t1 (f1) values ('insert 3.5.3.8-1d'); -select @test_var; -@test_var -before trig 3.5.3.8-1d -drop trigger trg5d_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5d_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var='before trig 3.5.3.8-2d'; -insert into t1 (f1) values ('insert 3.5.3.8-2d'); -select @test_var; -@test_var -insert 3.5.3.8-2d -drop trigger trg5d_2; -drop database if exists priv_db; -drop user test_yesprivs@localhost; -drop user test_noprivs@localhost; -drop user test_noprivs; - -Testcase 3.5.4: ---------------- -use test; - -Testcase 3.5.4.1: ------------------ -create database db_drop; -Use db_drop; -create table t1 (f1 char(30)) engine=innodb; -grant INSERT, SELECT on db_drop.t1 to test_general; -Use db_drop; -Create trigger trg1 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.1'; -Use db_drop; -Insert into t1 values ('Insert error 3.5.4.1'); -Select * from t1; -f1 -Trigger 3.5.4.1 -drop trigger trg1; -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; -trigger_schema trigger_name event_object_table -Insert into t1 values ('Insert no trigger 3.5.4.1'); -Select * from t1; -f1 -Trigger 3.5.4.1 -Insert no trigger 3.5.4.1 -drop trigger trg1; -drop database if exists db_drop; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.4.2: ------------------ -create database db_drop2; -Use db_drop2; -drop table if exists t1_432 ; -create table t1_432 (f1 char (30)) engine=innodb; -Drop trigger tr_does_not_exit; -ERROR HY000: Trigger does not exist -drop table if exists t1_432 ; -drop database if exists db_drop2; - -Testcase 3.5.4.3: ------------------ -create database db_drop3; -Use db_drop3; -drop table if exists t1_433 ; -drop table if exists t1_433a ; -create table t1_433 (f1 char (30)) engine=innodb; -create table t1_433a (f1a char (5)) engine=innodb; -CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row -set new.f1 = 'Trigger 3.5.4.3'; -Drop trigger t1.433.trg3; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.trg3' at line 1 -Drop trigger db_drop3.t1.433.trg3; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.433.trg3' at line 1 -Drop trigger mysql.trg3; -ERROR HY000: Trigger does not exist -Drop trigger tbx.trg3; -ERROR HY000: Trigger does not exist -Drop trigger db_drop3.trg3; -drop table if exists t1_433; -drop table if exists t1_433a; -drop database if exists db_drop3; - -Testcase 3.5.4.4: ------------------ -create database db_drop4; -Use db_drop4; -create table t1 (f1 char(30)) engine=innodb; -grant INSERT, SELECT on db_drop4.t1 to test_general; -Create trigger trg4 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.4'; -Use db_drop4; -Insert into t1 values ('Insert 3.5.4.4'); -Select * from t1; -f1 -Trigger 3.5.4.4 -Drop database db_drop4; -Show databases; -Database -information_schema -mysql -test -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers -where information_schema.triggers.trigger_name='trg4'; -trigger_schema trigger_name event_object_table -create database db_drop4; -Use db_drop4; -create table t1 (f1 char(30)) engine=innodb; -grant INSERT, SELECT on db_drop4.t1 to test_general; -Insert into t1 values ('2nd Insert 3.5.4.4'); -Select * from t1; -f1 -2nd Insert 3.5.4.4 -drop trigger trg4; -ERROR HY000: Trigger does not exist -drop database if exists db_drop4; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.4.5: ------------------ -create database db_drop5; -Use db_drop5; -create table t1 (f1 char(50)) engine=innodb; -grant INSERT, SELECT on t1 to test_general; -Create trigger trg5 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.5'; -Use db_drop5; -Insert into t1 values ('Insert 3.5.4.5'); -Select * from t1; -f1 -Trigger 3.5.4.5 -Drop table t1; -Show tables; -Tables_in_db_drop5 -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers -where information_schema.triggers.trigger_name='trg5'; -trigger_schema trigger_name event_object_table -create table t1 (f1 char(50)) engine=innodb; -grant INSERT, SELECT on t1 to test_general; -Insert into t1 values ('2nd Insert 3.5.4.5'); -Select * from t1; -f1 -2nd Insert 3.5.4.5 -drop trigger trg5; -ERROR HY000: Trigger does not exist -drop database if exists db_drop5; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.5: ---------------- -use test; - -Testcase 3.5.5.1: ------------------ -Create trigger trg1 before INSERT on t100 for each row set new.f2=1000; -ERROR 42S02: Table 'test.t100' doesn't exist - -Testcase 3.5.5.2: ------------------ -Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); -Create trigger trg2 before INSERT -on t1_temp for each row set new.f2=9999; -ERROR HY000: Trigger's 't1_temp' is view or temporary table -drop table t1_temp; - -Testcase 3.5.5.3: ------------------ -Create view vw3 as select f118 from tb3; -Create trigger trg3 before INSERT -on vw3 for each row set new.f118='s'; -ERROR HY000: 'test.vw3' is not BASE TABLE -drop view vw3; - -Testcase 3.5.5.4: ------------------ -create database dbtest_one; -create database dbtest_two; -use dbtest_two; -create table t2 (f1 char(15)); -use dbtest_one; -create trigger trg4 before INSERT -on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4'; -ERROR HY000: Trigger in wrong schema -grant INSERT, SELECT on dbtest_two.t2 to test_general; -grant SELECT on dbtest_one.* to test_general; -use dbtest_two; -Insert into t2 values ('1st Insert 3.5.5.4'); -Warnings: -Warning 1265 Data truncated for column 'f1' at row 1 -Select * from t2; -f1 -1st Insert 3.5. -use dbtest_one; -Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); -Warnings: -Warning 1265 Data truncated for column 'f1' at row 1 -Select * from dbtest_two.t2; -f1 -1st Insert 3.5. -2nd Insert 3.5. -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; -DROP DATABASE if exists dbtest_one; -drop database if EXISTS dbtest_two; - -Testcase 3.5.6: ---------------- -use test; - -Testcase 3.5.6.1 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.2 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.3: ------------------ -Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1 -Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TIME INSERT on tb3 for each row set new.f132=15' at line 1 -drop trigger tb3.trg3_1; -drop trigger tb3.trg3_2; - -Testcase 3.5.6.4 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.5 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.1 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.2 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.3 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.4: ------------------ -Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT on tb3 for each row set new.f132=5' at line 1 -Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUE on tb3 for each row set new.f132=1' at line 1 -drop trigger tb3.trg4_1; -drop trigger tb3.trg4_2; - -Testcase 3.5.7.5 / 3.5.7.6: ---------------------------- -Create trigger trg5_1 BEFORE INSERT -on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; -Create trigger trg5_2 BEFORE INSERT -on tb3 for each row set new.f122='Trigger2 3.5.7.5'; -ERROR HY000: Trigger already exists -Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); -Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; -f121 f122 -Test 3.5.7.5/6 Trigger1 3.5.7.5/6 -update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6'; -Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; -f121 f122 -Test 3.5.7.5/6 Update 3.5.7.6 -drop trigger trg5_1; -drop trigger trg5_2; -delete from tb3 where f121='Test 3.5.7.5/6'; - -Testcase 3.5.7.7 / 3.5.7.8: ---------------------------- -set @test_var='Before trig 3.5.7.7'; -Create trigger trg6_1 AFTER INSERT -on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; -Create trigger trg6_2 AFTER INSERT -on tb3 for each row set @test_var='Trigger2 3.5.7.7'; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -Before trig 3.5.7.7 -Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7'); -Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; -f121 f122 -Test 3.5.7.7/8 Insert 3.5.7.7 -select @test_var; -@test_var -Trigger1 3.5.7.7/8 -update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8'; -Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; -f121 f122 -Test 3.5.7.7/8 Update 3.5.7.8 -select @test_var; -@test_var -Trigger1 3.5.7.7/8 -drop trigger trg6_1; -drop trigger trg6_2; -delete from tb3 where f121='Test 3.5.7.7/8'; - -Testcase 3.5.7.9/10: --------------------- -Create trigger trg7_1 BEFORE UPDATE -on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; -Create trigger trg7_2 BEFORE UPDATE -on tb3 for each row set new.f122='Trigger2 3.5.7.9'; -ERROR HY000: Trigger already exists -Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); -Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; -f121 f122 -Test 3.5.7.9/10 Insert 3.5.7.9 -update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10'; -Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; -f121 f122 -Test 3.5.7.9/10 Trigger1 3.5.7.9/10 -drop trigger trg7_1; -drop trigger trg7_2; -delete from tb3 where f121='Test 3.5.7.9/10'; - -Testcase 3.5.7.11/12: ---------------------- -set @test_var='Before trig 3.5.7.11'; -Create trigger trg8_1 AFTER UPDATE -on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; -Create trigger trg8_2 AFTER UPDATE -on tb3 for each row set @test_var='Trigger2 3.5.7.11'; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -Before trig 3.5.7.11 -Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12'); -select @test_var; -@test_var -Before trig 3.5.7.11 -Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; -f121 f122 -Test 3.5.7.11/12 Insert 3.5.7.11/12 -update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12'; -Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; -f121 f122 -Test 3.5.7.11/12 update 3.5.7.12 -select @test_var; -@test_var -Trigger 3.5.7.11/12 -delete from tb3 where f121='Test 3.5.7.11/12'; -drop trigger trg8_1; -drop trigger trg8_2; -delete from tb3 where f121='Test 3.5.7.11/12'; - -Testcase 3.5.7.13/14: ---------------------- -set @test_var=1; -Create trigger trg9_1 BEFORE DELETE -on tb3 for each row set @test_var=@test_var+1; -Create trigger trg9_2 BEFORE DELETE -on tb3 for each row set @test_var=@test_var+10; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -1 -Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13'); -Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; -f121 f122 -Test 3.5.7.13/14 Insert 3.5.7.13 -select @test_var; -@test_var -1 -delete from tb3 where f121='Test 3.5.7.13/14'; -Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; -f121 f122 -select @test_var; -@test_var -2 -delete from tb3 where f121='Test 3.5.7.13/14'; -select @test_var; -@test_var -2 -drop trigger trg9_1; -drop trigger trg9_2; -delete from tb3 where f121='Test 3.5.7.13/14'; - -Testcase 3.5.7.15/16: ---------------------- -set @test_var=1; -Create trigger trg_3_406010_1 AFTER DELETE -on tb3 for each row set @test_var=@test_var+5; -Create trigger trg_3_406010_2 AFTER DELETE -on tb3 for each row set @test_var=@test_var+50; -ERROR HY000: Trigger already exists -Create trigger trg_3_406010_1 AFTER INSERT -on tb3 for each row set @test_var=@test_var+1; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -1 -Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16'); -Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; -f121 f122 -Test 3.5.7.15/16 Insert 3.5.7.15/16 -select @test_var; -@test_var -1 -delete from tb3 where f121='Test 3.5.7.15/16'; -Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; -f121 f122 -select @test_var; -@test_var -6 -delete from tb3 where f121='Test 3.5.7.15/16'; -select @test_var; -@test_var -6 -drop trigger trg_3_406010_1; -drop trigger trg_3_406010_2; -delete from tb3 where f121='Test 3.5.7.15/16'; - -Testcase 3.5.7.17 (see Testcase 3.5.1.1) ----------------------------------------- - -Testcase 3.5.8.1: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.8.2: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.8.3/4: -------------------- -create database db_test; -grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; -grant LOCK TABLES on db_test.* to test_general; -Use db_test; -create table t1_i ( -i120 char ascii not null DEFAULT b'101', -i136 smallint zerofill not null DEFAULT 999, -i144 int zerofill not null DEFAULT 99999, -i163 decimal (63,30)) engine=innodb; -create table t1_u ( -u120 char ascii not null DEFAULT b'101', -u136 smallint zerofill not null DEFAULT 999, -u144 int zerofill not null DEFAULT 99999, -u163 decimal (63,30)) engine=innodb; -create table t1_d ( -d120 char ascii not null DEFAULT b'101', -d136 smallint zerofill not null DEFAULT 999, -d144 int zerofill not null DEFAULT 99999, -d163 decimal (63,30)) engine=innodb; -Insert into t1_u values ('a',111,99999,999.99); -Insert into t1_u values ('b',222,99999,999.99); -Insert into t1_u values ('c',333,99999,999.99); -Insert into t1_u values ('d',222,99999,999.99); -Insert into t1_u values ('e',222,99999,999.99); -Insert into t1_u values ('f',333,99999,999.99); -Insert into t1_d values ('a',111,99999,999.99); -Insert into t1_d values ('b',222,99999,999.99); -Insert into t1_d values ('c',333,99999,999.99); -Insert into t1_d values ('d',444,99999,999.99); -Insert into t1_d values ('e',222,99999,999.99); -Insert into t1_d values ('f',222,99999,999.99); - -3.5.8.4 - multiple SQL ----------------------- -use test; -Create trigger trg1 AFTER INSERT on tb3 for each row -BEGIN -insert into db_test.t1_i -values (new.f120, new.f136, new.f144, new.f163); -update db_test.t1_u -set u144=new.f144, u163=new.f163 -where u136=new.f136; -delete from db_test.t1_d where d136= new.f136; -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; -END// -Use test; -set @test_var=0; -Insert into tb3 (f120, f122, f136, f144, f163) -values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); -Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; -f120 f122 f136 f144 f163 -1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; -i120 i136 i144 i163 -1 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; -u120 u136 u144 u163 -a 00111 0000099999 999.990000000000000000000000000000 -b 00222 0000023456 1.050000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -d 00222 0000023456 1.050000000000000000000000000000 -e 00222 0000023456 1.050000000000000000000000000000 -f 00333 0000099999 999.990000000000000000000000000000 -select * from db_test.t1_d; -d120 d136 d144 d163 -a 00111 0000099999 999.990000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -d 00444 0000099999 999.990000000000000000000000000000 -select @test_var; -@test_var -3.150000000000000000000000000000 - -3.5.8.4 - single SQL - insert ------------------------------ -Create trigger trg2 BEFORE UPDATE on tb3 for each row -insert into db_test.t1_i -values (new.f120, new.f136, new.f144, new.f163); -update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' - where f122='Test 3.5.8.4'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; -i120 i136 i144 i163 -1 00222 0000023456 1.050000000000000000000000000000 -I 00222 0000023456 1.050000000000000000000000000000 - -3.5.8.4 - single SQL - update ------------------------------ -drop trigger trg2; -Create trigger trg3 BEFORE UPDATE on tb3 for each row -update db_test.t1_u -set u120=new.f120 -where u136=new.f136; -update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' - where f122='Test 3.5.8.4-Single Insert'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; -u120 u136 u144 u163 -a 00111 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -f 00333 0000099999 999.990000000000000000000000000000 - -3.5.8.3/4 - single SQL - delete -------------------------------- -drop trigger trg3; -Create trigger trg4 AFTER UPDATE on tb3 for each row -delete from db_test.t1_d where d136= new.f136; -update tb3 set f120='D', f136=444, -f122='Test 3.5.8.4-Single Delete' - where f122='Test 3.5.8.4-Single Update'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_d; -d120 d136 d144 d163 -a 00111 0000099999 999.990000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 - -3.5.8.3/4 - single SQL - select -------------------------------- -drop trigger trg4; -Create trigger trg5 AFTER UPDATE on tb3 for each row -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; -set @test_var=0; -update tb3 set f120='S', f136=111, -f122='Test 3.5.8.4-Single Select' - where f122='Test 3.5.8.4-Single Delete'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000 -select @test_var; -@test_var -999.990000000000000000000000000000 -drop trigger trg1; -drop trigger trg5; -drop database if exists db_test; -delete from tb3 where f122 like 'Test 3.5.8.4%'; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.8.5 (IF): ----------------------- -create trigger trg2 before insert on tb3 for each row -BEGIN -IF new.f120='1' then -set @test_var='one', new.f120='2'; -ELSEIF new.f120='2' then -set @test_var='two', new.f120='3'; -ELSEIF new.f120='3' then -set @test_var='three', new.f120='4'; -END IF; -IF (new.f120='4') and (new.f136=10) then -set @test_var2='2nd if', new.f120='d'; -ELSE -set @test_var2='2nd else', new.f120='D'; -END IF; -END// -set @test_var='Empty', @test_var2=0; -Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 one 2nd else -Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 two 2nd else -D Test 3.5.8.5-if 00102 two 2nd else -Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 three 2nd if -D Test 3.5.8.5-if 00102 three 2nd if -d Test 3.5.8.5-if 00010 three 2nd if -Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 three 2nd else -D Test 3.5.8.5-if 00102 three 2nd else -d Test 3.5.8.5-if 00010 three 2nd else -D Test 3.5.8.5-if 00103 three 2nd else -create trigger trg3 before update on tb3 for each row -BEGIN -ELSEIF new.f120='2' then -END IF; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ELSEIF new.f120='2' then -END IF; -END' at line 3 -drop trigger trg3// -create trigger trg4 before update on tb3 for each row -BEGIN -IF (new.f120='4') and (new.f136=10) then -set @test_var2='2nd if', new.f120='d'; -ELSE -set @test_var2='2nd else', new.f120='D'; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7 -drop trigger trg4; -drop trigger trg2; -delete from tb3 where f121='Test 3.5.8.5-if'; - -Testcase 3.5.8.5-case: ----------------------- -create trigger trg3 before insert on tb3 for each row -BEGIN -SET new.f120=char(ascii(new.f120)-32); -CASE -when new.f136<100 then set new.f136=new.f136+120; -when new.f136<10 then set new.f144=777; -when new.f136>100 then set new.f120=new.f136-1; -END case; -CASE -when new.f136=200 then set @test_var=CONCAT(new.f120, '='); -ELSE set @test_var=concat(new.f120, '*'); -END case; -CASE new.f144 -when 1 then set @test_var=concat(@test_var, 'one'); -when 2 then set @test_var=concat(@test_var, 'two'); -when 3 then set @test_var=concat(@test_var, 'three'); -when 4 then set @test_var=concat(@test_var, 'four'); -when 5 then set @test_var=concat(@test_var, 'five'); -when 6 then set @test_var=concat(@test_var, 'six'); -when 7 then set @test_var=concat(@test_var, 'seven'); -when 8 then set @test_var=concat(@test_var, 'eight'); -when 9 then set @test_var=concat(@test_var, 'nine'); -when 10 then set @test_var=concat(@test_var, 'ten'); -when 11 then set @test_var=concat(@test_var, 'eleven'); -when 12 then set @test_var=concat(@test_var, 'twelve'); -when 13 then set @test_var=concat(@test_var, 'thirteen'); -when 14 then set @test_var=concat(@test_var, 'fourteen'); -when 15 then set @test_var=concat(@test_var, 'fifteen'); -ELSE set @test_var=CONCAT(new.f120, '*', new.f144); -END case; -END// -set @test_var='Empty'; -Insert into tb3 (f120, f122, f136, f144) -values ('a', 'Test 3.5.8.5-case', 5, 7); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 A*seven -Insert into tb3 (f120, f122, f136, f144) -values ('b', 'Test 3.5.8.5-case', 71,16); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 B*0000000016 -B Test 3.5.8.5-case 00191 0000000016 B*0000000016 -Insert into tb3 (f120, f122, f136, f144) -values ('c', 'Test 3.5.8.5-case', 80,1); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 C=one -B Test 3.5.8.5-case 00191 0000000016 C=one -C Test 3.5.8.5-case 00200 0000000001 C=one -Insert into tb3 (f120, f122, f136) -values ('d', 'Test 3.5.8.5-case', 152); -Warnings: -Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1*0000099999 -B Test 3.5.8.5-case 00191 0000000016 1*0000099999 -C Test 3.5.8.5-case 00200 0000000001 1*0000099999 -1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 -Insert into tb3 (f120, f122, f136, f144) -values ('e', 'Test 3.5.8.5-case', 200, 8); -Warnings: -Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1=eight -B Test 3.5.8.5-case 00191 0000000016 1=eight -C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -Insert into tb3 (f120, f122, f136, f144) -values ('f', 'Test 3.5.8.5-case', 100, 8); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1=eight -B Test 3.5.8.5-case 00191 0000000016 1=eight -C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -create trigger trg3a before update on tb3 for each row -BEGIN -CASE -when new.f136<100 then set new.f120='p'; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 -drop trigger trg3a; -drop trigger trg3; -delete from tb3 where f121='Test 3.5.8.5-case'; - -Testcase 3.5.8.5-loop/leave: ----------------------------- -Create trigger trg4 after insert on tb3 for each row -BEGIN -set @counter=0, @flag='Initial'; -Label1: loop -if new.f136 new.f136 END REPEAT rp_label; -END// -set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) -values ('Test 3.5.8.5-repeat', 13); -select @counter1, @counter2; -@counter1 @counter2 -15 8 -Create trigger trg6_2 after update on tb3 for each row -BEGIN -REPEAT -SET @counter2 = @counter2 + 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5 -drop trigger trg6; -delete from tb3 where f122='Test 3.5.8.5-repeat'; - -Testcase 3.5.8.5-while: ------------------------ -Create trigger trg7 after insert on tb3 for each row -wl_label: WHILE @counter1 < new.f136 DO -SET @counter1 = @counter1 + 1; -IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; -END IF; -SET @counter2 = @counter2 + 1; -END WHILE wl_label// -set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) -values ('Test 3.5.8.5-while', 7); -select @counter1, @counter2; -@counter1 @counter2 -7 4 -Create trigger trg7_2 after update on tb3 for each row -BEGIN -WHILE @counter1 < new.f136 -SET @counter1 = @counter1 + 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; -END' at line 4 -delete from tb3 where f122='Test 3.5.8.5-while'; -drop trigger trg7; - -Testcase 3.5.8.6: (requirement void) ------------------------------------- - -Testcase 3.5.8.7: (Disabled as a result of bug _____) ------------------------------------------------------ - -Testcase 3.5.9.1/2: -------------------- -Create trigger trg1 BEFORE UPDATE on tb3 for each row -set new.f142 = 94087, @counter=@counter+1; -TotalRows -19 -Affected -17 -NotAffected -2 -NewValuew -0 -set @counter=0; -Update tb3 Set f142='1' where f130<100; -select count(*) as ExpectedChanged, @counter as TrigCounter -from tb3 where f142=94087; -ExpectedChanged TrigCounter -17 17 -select count(*) as ExpectedNotChange from tb3 -where f130<100 and f142<>94087; -ExpectedNotChange -0 -select count(*) as NonExpectedChanged from tb3 -where f130>=130 and f142=94087; -NonExpectedChanged -0 -drop trigger trg1; - -Testcase 3.5.9.3: ------------------ -Create trigger trg2_a before update on tb3 for each row -set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, -@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, -@tr_var_b4_163=old.f163; -Create trigger trg2_b after update on tb3 for each row -set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, -@tr_var_af_122=old.f122, @tr_var_af_136=old.f136, -@tr_var_af_163=old.f163; -Create trigger trg2_c before delete on tb3 for each row -set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, -@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, -@tr_var_b4_163=old.f163; -Create trigger trg2_d after delete on tb3 for each row -set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, -@tr_var_af_122=old.f122, @tr_var_af_136=old.f136, -@tr_var_af_163=old.f163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -0 0 0 0 0 -Insert into tb3 (f122, f136, f163) -values ('Test 3.5.9.3', 7, 123.17); -Update tb3 Set f136=8 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; -f118 f121 f122 f136 f163 -a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -0 0 0 0 0 -delete from tb3 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; -f118 f121 f122 f136 f163 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -drop trigger trg2_a; -drop trigger trg2_b; -drop trigger trg2_c; -drop trigger trg2_d; - -Testcase 3.5.9.4: ------------------ -Create trigger trg3_a before insert on tb3 for each row -set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, -@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, -@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; -Create trigger trg3_b after insert on tb3 for each row -set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, -@tr_var_af_122=new.f122, @tr_var_af_136=new.f136, -@tr_var_af_151=new.f151, @tr_var_af_163=new.f163; -Create trigger trg3_c before update on tb3 for each row -set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, -@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, -@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; -Create trigger trg3_d after update on tb3 for each row -set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, -@tr_var_af_122=new.f122, @tr_var_af_136=new.f136, -@tr_var_af_151=new.f151, @tr_var_af_163=new.f163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -0 0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -0 0 0 0 0 0 -Insert into tb3 (f122, f136, f151, f163) -values ('Test 3.5.9.4', 7, DEFAULT, 995.24); -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4%'; -f118 f121 f122 f136 f151 f163 -a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_151, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -0 0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -0 0 0 0 0 0 -Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL -where f122='Test 3.5.9.4'; -Warnings: -Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f136' at row 20 -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4-trig'; -f118 f121 f122 f136 f151 f163 -a NULL Test 3.5.9.4-trig 00000 999 NULL -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -a NULL Test 3.5.9.4-trig 0 999 NULL -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_151, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -a NULL Test 3.5.9.4-trig 0 999 NULL -drop trigger trg3_a; -drop trigger trg3_b; -drop trigger trg3_c; -drop trigger trg3_d; -delete from tb3 where f122='Test 3.5.9.4-trig'; - -Testcase 3.5.9.5: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.6: ------------------ -create trigger trg4a before insert on tb3 for each row -set @temp1= old.f120; -ERROR HY000: There is no OLD row in on INSERT trigger -create trigger trg4b after insert on tb3 for each row -set old.f120= 'test'; -ERROR HY000: Updating of OLD row is not allowed in trigger -drop trigger trg4a; -drop trigger trg4b; - -Testcase 3.5.9.7: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.8: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.9: ------------------ -create trigger trg5a before DELETE on tb3 for each row -set @temp1=new.f122; -ERROR HY000: There is no NEW row in on DELETE trigger -create trigger trg5b after DELETE on tb3 for each row -set new.f122='test'; -ERROR HY000: There is no NEW row in on DELETE trigger -drop trigger trg5a; -drop trigger trg5b; - -Testcase 3.5.9.10: (implied in previous tests) ----------------------------------------------- - -Testcase 3.5.9.11: covered by 3.5.9.9 -------------------------------------- - -Testcase 3.5.9.12: covered by 3.5.9.6 -------------------------------------- - -Testcase 3.5.9.13: ------------------- -create trigger trg6a before UPDATE on tb3 for each row -set old.f118='C', new.f118='U'; -ERROR HY000: Updating of OLD row is not allowed in trigger -create trigger trg6b after INSERT on tb3 for each row -set old.f136=163, new.f118='U'; -ERROR HY000: Updating of OLD row is not allowed in trigger -create trigger trg6c after UPDATE on tb3 for each row -set old.f136=NULL; -ERROR HY000: Updating of OLD row is not allowed in trigger -drop trigger trg6a; -drop trigger trg6b; -drop trigger trg6c; - -Testcase 3.5.9.14: (implied in previous tests) ----------------------------------------------- - -Testcase 3.5.10.1/2/3: ----------------------- -Create view vw11 as select * from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -Create trigger trg1a before insert on tb3 -for each row set new.f163=111.11; -Create trigger trg1b after insert on tb3 -for each row set @test_var='After Insert'; -Create trigger trg1c before update on tb3 -for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update'; -Create trigger trg1d after update on tb3 -for each row set @test_var='After Update'; -Create trigger trg1e before delete on tb3 -for each row set @test_var=5; -Create trigger trg1f after delete on tb3 -for each row set @test_var= 2* @test_var+7; -Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1); -Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); -Insert into vw11 (f122, f151) values ('Not in View', 3); -select f121, f122, f151, f163 -from tb3 where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 -NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 -NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 -select f121, f122, f151, f163 -from tb3 where f122 like 'Not in View'; -f121 f122 f151 f163 -NULL Not in View 3 111.110000000000000000000000000000 -Update vw11 set f163=1; -select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -set @test_var=0; -Select @test_var as 'before delete'; -before delete -0 -delete from vw11 where f151=1; -select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -Select @test_var as 'after delete'; -after delete -17 -drop view vw11; -drop trigger trg1a; -drop trigger trg1b; -drop trigger trg1c; -drop trigger trg1d; -drop trigger trg1e; -drop trigger trg1f; -delete from tb3 where f122 like 'Test 3.5.10.1/2/3%'; - -Testcase 3.5.10.4: ------------------- -create table tb_load (f1 int, f2 char(25),f3 int) engine=innodb; -Create trigger trg4 before insert on tb_load -for each row set new.f3=-(new.f1 div 5), @counter= @counter+1; -set @counter= 0; -select @counter as 'Rows Loaded Before'; -Rows Loaded Before -0 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; -select @counter as 'Rows Loaded After'; -Rows Loaded After -10 -Select * from tb_load limit 10; -f1 f2 f3 --5000 a` 1000 --4999 aaa 999 --4998 abaa 999 --4997 acaaa 999 --4996 adaaaa 999 --4995 aeaaaaa 999 --4994 afaaaaaa 998 --4993 agaaaaaaa 998 --4992 a^aaaaaaaa 998 --4991 a_aaaaaaaaa 998 -drop trigger trg4; -drop table tb_load; - -Testcase 3.5.10.5: (implemented in trig_frkey.test) ---------------------------------------------------- - -Testcase 3.5.10.6: (implemented in trig_frkey.test) ---------------------------------------------------- - -Testcase 3.5.10.extra: ----------------------- -create table t1_sp (var136 tinyint, var151 decimal) engine=innodb; -create trigger trg before insert on t1_sp -for each row set @counter=@counter+1; -create procedure trig_sp() -begin -declare done int default 0; -declare var151 decimal; -declare var136 tinyint; -declare cur1 cursor for select f136, f151 from tb3; -declare continue handler for sqlstate '01000' set done = 1; -open cur1; -fetch cur1 into var136, var151; -wl_loop: WHILE NOT done DO -insert into t1_sp values (var136, var151); -fetch cur1 into var136, var151; -END WHILE wl_loop; -close cur1; -end// -set @counter=0; -select @counter; -@counter -0 -call trig_sp(); -ERROR 02000: No data to FETCH -select @counter; -@counter -20 -select count(*) from tb3; -count(*) -20 -select count(*) from t1_sp; -count(*) -20 -drop procedure trig_sp; -drop trigger trg; -drop table t1_sp; - -Testcase 3.5.11.1 (implemented in trig_perf.test) -------------------------------------------------- -drop user test_general@localhost; -drop user test_general; -drop user test_super@localhost; - -Testcase y.y.y.2: Check for triggers starting triggers ------------------------------------------------------- -use test; -drop table if exists t1; -drop table if exists t2_1; -drop table if exists t2_2; -drop table if exists t2_3; -drop table if exists t2_4; -drop table if exists t3; -create table t1 (f1 integer); -create table t2_1 (f1 integer); -create table t2_2 (f1 integer); -create table t2_3 (f1 integer); -create table t2_4 (f1 integer); -create table t3 (f1 integer); -insert into t1 values (1); -create trigger tr1 after insert on t1 for each row -BEGIN -insert into t2_1 (f1) values (new.f1+1); -insert into t2_2 (f1) values (new.f1+1); -insert into t2_3 (f1) values (new.f1+1); -insert into t2_4 (f1) values (new.f1+1); -END// -create trigger tr2_1 after insert on t2_1 for each row -insert into t3 (f1) values (new.f1+10); -create trigger tr2_2 after insert on t2_2 for each row -insert into t3 (f1) values (new.f1+100); -create trigger tr2_3 after insert on t2_3 for each row -insert into t3 (f1) values (new.f1+1000); -create trigger tr2_4 after insert on t2_4 for each row -insert into t3 (f1) values (new.f1+10000); -insert into t1 values (1); -select * from t3; -f1 -12 -102 -1002 -10002 -drop trigger tr1; -drop trigger tr2_1; -drop trigger tr2_2; -drop trigger tr2_3; -drop trigger tr2_4; -drop table t1, t2_1, t2_2, t2_3, t2_4, t3; - -Testcase y.y.y.3: Circular trigger reference --------------------------------------------- -use test; -drop table if exists t1; -drop table if exists t2; -drop table if exists t3; -drop table if exists t4; -create table t1 (f1 integer) engine = innodb; -create table t2 (f2 integer) engine = innodb; -create table t3 (f3 integer) engine = innodb; -create table t4 (f4 integer) engine = innodb; -insert into t1 values (0); -create trigger tr1 after insert on t1 -for each row insert into t2 (f2) values (new.f1+1); -create trigger tr2 after insert on t2 -for each row insert into t3 (f3) values (new.f2+1); -create trigger tr3 after insert on t3 -for each row insert into t4 (f4) values (new.f3+1); -create trigger tr4 after insert on t4 -for each row insert into t1 (f1) values (new.f4+1); -insert into t1 values (1); -ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. -select * from t1; -f1 -0 -select * from t2; -f2 -select * from t3; -f3 -select * from t4; -f4 -drop trigger tr1; -drop trigger tr2; -drop trigger tr3; -drop trigger tr4; -drop table t1; -drop table t2; -drop table t3; -drop table t4; - -Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889) ----------------------------------------------------------------------- -set @sql_mode='traditional'; -create table t1_sp ( -count integer, -var136 tinyint, -var151 decimal) engine=innodb; -create procedure trig_sp() -begin -declare done int default 0; -declare var151 decimal; -declare var136 tinyint; -declare cur1 cursor for select f136, f151 from tb3; -declare continue handler for sqlstate '01000' set done = 1; -set @counter= @counter+1; -open cur1; -fetch cur1 into var136, var151; -wl_loop: WHILE NOT done DO -insert into t1_sp values (@counter, var136, var151); -fetch cur1 into var136, var151; -END WHILE wl_loop; -close cur1; -end// -create trigger trg before insert on t1_sp -for each row call trig_sp(); -set @counter=0; -select @counter; -@counter -0 -call trig_sp(); -ERROR HY000: Recursive stored routines are not allowed. -select @counter; -@counter -1 -select count(*) from tb3; -count(*) -20 -select count(*) from t1_sp; -count(*) -0 -drop procedure trig_sp; -drop trigger trg; -drop table t1_sp; - -Testcase y.y.y.5: Roleback of nested trigger references -------------------------------------------------------- -set @@sql_mode='traditional'; -use test; -drop table if exists t1; -drop table if exists t2; -drop table if exists t3; -drop table if exists t4; -create table t1 (f1 integer) engine = innodb; -create table t2 (f2 integer) engine = innodb; -create table t3 (f3 integer) engine = innodb; -create table t4 (f4 tinyint) engine = innodb; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1 -insert into t1 values (1); -create trigger tr1 after insert on t1 -for each row insert into t2 (f2) values (new.f1+1); -create trigger tr2 after insert on t2 -for each row insert into t3 (f3) values (new.f2+1); -create trigger tr3 after insert on t3 -for each row insert into t4 (f4) values (new.f3+1000); -set autocommit=0; -start transaction; -insert into t1 values (1); -ERROR 22003: Out of range value adjusted for column 'f4' at row 1 -commit; -select * from t1; -f1 -1 -select * from t2; -f2 -select * from t3; -f3 -drop trigger tr1; -drop trigger tr2; -drop trigger tr3; -drop table t1; -drop table t2; -drop table t3; -drop table t4; - -Testcase x.x.x.1: ------------------ -DROP TABLE IF EXISTS t0, t1, t2; -CREATE TABLE t0 (col1 char(50)) ENGINE=innodb; -CREATE TABLE t1 (id INT NOT NULL, col1 char(50), -PRIMARY KEY (id)) ENGINE=innodb; -CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, -INDEX par_ind (f_id), col1 char(50), -FOREIGN KEY (f_id) REFERENCES t1(id) -ON DELETE SET NULL) ENGINE=innodb; -insert into t1 values (1,'Department A'); -insert into t1 values (2,'Department B'); -insert into t1 values (3,'Department C'); -insert into t2 values (1,2,'Emp 1'); -insert into t2 values (2,2,'Emp 2'); -insert into t2 values (3,2,'Emp 3'); -create trigger trig after insert on t0 for each row -delete from t1 where col1=new.col1; -select * from t2; -id f_id col1 -1 2 Emp 1 -2 2 Emp 2 -3 2 Emp 3 -lock tables t0 write, t1 write; -insert into t0 values ('Department B'); -unlock tables; -select * from t2; -id f_id col1 -1 NULL Emp 1 -2 NULL Emp 2 -3 NULL Emp 3 -drop trigger trig; -drop table t2, t1; - -Testcase x.x.x.2: ------------------ -DROP TABLE IF EXISTS t1, t2; -CREATE TABLE t1 (id INT NOT NULL, col1 char(50), -PRIMARY KEY (id)) ENGINE=innodb; -CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, -INDEX par_ind (f_id), col1 char(50), -FOREIGN KEY (f_id) REFERENCES t1(id) -ON UPDATE CASCADE) ENGINE=innodb; -insert into t1 values (1,'Department A'); -insert into t1 values (2,'Department B'); -insert into t1 values (3,'Department C'); -insert into t2 values (1,2,'Emp 1'); -insert into t2 values (2,3,'Emp 2'); -insert into t2 values (3,4,'Emp 3'); -ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test/t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`f_id`) REFERENCES `t1` (`id`) ON UPDATE CASCADE) -create trigger tr_t2 before insert on t2 for each row -insert into t1 values(new.f_id, concat('New Department ', new.f_id)); -lock tables t1 write, t2 write; -insert into t2 values (3,4,'Emp 3'); -unlock tables; -select * from t1; -id col1 -1 Department A -2 Department B -3 Department C -4 New Department 4 -select * from t2; -id f_id col1 -1 2 Emp 1 -2 3 Emp 2 -3 4 Emp 3 -drop trigger tr_t2; -drop table t2, t1; - -Foreign Key tests disabled (bug 11472 - stored in trig_frkey2.test) -------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_views.result b/mysql-test/suite/funcs_1/r/innodb_views.result index f091e49c96b..20d8c0ba2f3 100644 --- a/mysql-test/suite/funcs_1/r/innodb_views.result +++ b/mysql-test/suite/funcs_1/r/innodb_views.result @@ -122,11 +122,7 @@ USE test; -------------------------------------------------------------------------------- There are some statements where the ps-protocol is switched off. -Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill --------------------------------------------------------------------------------- - -! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables +Bug#32285: mysqltest, --ps-protocol, strange output, float/double/real with zerofill -------------------------------------------------------------------------------- insert into test.tb2 (f59,f60) values (76710,226546); insert into test.tb2 (f59,f60) values(2760,985654); @@ -168,6 +164,58 @@ insert into tb2 (f59,f60,f61) values (109,108,104); INSERT INTO tb2 (f59,f60) VALUES( 299,899 ); INSERT INTO tb2 (f59,f60) VALUES( 242,79 ); INSERT INTO tb2 (f59,f60) VALUES( 424,89 ); +SELECT * FROM tb2 ORDER BY f59, f60, f61; +f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 +1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set +2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set +3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set +4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set +4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set +7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set +8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set +9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set +10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set Use test; Testcase 3.3.1.1 @@ -183,46 +231,60 @@ Insert into t1 values (500,9866); Drop view if exists v1 ; CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 where f59=250; -select * FROM v1 limit 0,10; +select * FROM v1 order by f60,f61 limit 0,10; f59 f60 f61 250 87895654 NULL Drop view if exists v1 ; CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 limit 100; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59,f60,f61 limit 0,10; f59 f60 f61 1 1 0000000001 2 2 0000000002 3 3 0000000003 4 4 0000000004 +4 74 NULL 5 5 0000000005 6 6 0000000006 7 7 0000000007 8 8 0000000008 9 9 0000000009 -10 10 0000000010 CREATE or REPLACE VIEW v1 AS select f59,f60,f61 -FROM test.tb2 limit 4,3; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59,f60,f61 limit 4,3; f59 f60 f61 +4 74 NULL 5 5 0000000005 6 6 0000000006 -7 7 0000000007 CREATE or REPLACE VIEW v1 AS select distinct f59 -FROM test.tb2 limit 4,3; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59 limit 4,3; f59 5 6 7 ALTER VIEW v1 AS select f59 -FROM test.tb2 limit 6,2; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59 limit 6,2; f59 +6 +7 +CREATE or REPLACE VIEW v1 AS select f59 +from tb2 order by f59; +select * FROM v1 order by f59 limit 0,10; +f59 +1 +2 +3 +4 +4 +5 +6 7 8 +9 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 limit 100; +from tb2 order by f59 asc; select * FROM v1 limit 0,10; f59 1 @@ -236,21 +298,7 @@ f59 8 9 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 asc limit 100; -select * FROM v1 limit 0,10; -f59 -1 -2 -3 -4 -4 -5 -6 -7 -8 -9 -CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 desc limit 100; +from tb2 order by f59 desc; select * FROM v1 limit 0,10; f59 569300 @@ -264,8 +312,8 @@ f59 987 660 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -278,8 +326,8 @@ f59 9 10 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 asc limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59 asc; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -292,22 +340,22 @@ f59 9 10 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 desc limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59 desc; +select * FROM v1 order by f59 limit 0,10; f59 -569300 -76710 -9112 -7876 -3410 -3330 -2760 -2550 -987 -660 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 CREATE or REPLACE VIEW v1 AS (select f59 from tb2) -union (select f59 from t1) limit 100; -select * FROM v1 limit 0,10; +union (select f59 from t1); +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -321,7 +369,7 @@ f59 10 CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION DISTINCT(select f59 FROM t1) ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -335,103 +383,3101 @@ f59 10 CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION ALL(select f59 FROM t1) ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59 limit 0,10; f59 1 2 3 4 +4 5 6 7 8 9 -10 CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH LOCAL CHECK OPTION ; -select * FROM v1 limit 0,50; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH CASCADED CHECK OPTION ; -select * FROM v1 limit 0,10; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 WITH CASCADED CHECK OPTION; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; F59 F60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 -10 10 CREATE or REPLACE VIEW v1 AS select f59, f60 from test.tb2 where f59=3330 ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f60 limit 0,10; f59 f60 3330 764376 DROP VIEW v1 ; @@ -494,8 +3540,8 @@ DROP VIEW v1; Testcase 3.3.1.3 + 3.1.1.4 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or REPLACE AS Select * from tb2 my_table limit 50' at line 1 +CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or REPLACE AS Select * from tb2 my_table' at line 1 CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select * from tb2 my_table limit 50; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH CASCADED CHECK OPTION AS Select * @@ -504,8 +3550,8 @@ CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select * from tb2 my_table limit 50; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LOCAL CHECK OPTION AS Select * from tb2 my_table limit 50' at line 1 -SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE VIEW As v1 limit 100' at line 1 +SELECT * FROM tb2 my_table CREATE VIEW As v1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE VIEW As v1' at line 1 CREATE or REPLACE VIEW v1 Select f59, f60 from test.tb2 my_table where f59 = 250 ; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Select f59, f60 @@ -580,8 +3626,8 @@ Union ALL (Select from f1 t1); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from f59 tb2) Union ALL (Select from f1 t1)' at line 1 CREATE or REPLACE view v1 as Select f59, f60 -from tb2 by order f59 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by order f59 limit 100' at line 2 +from tb2 by order f59; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by order f59' at line 2 CREATE or REPLACE view v1 as Select f59, f60 from tb2 by group f59 ; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by group f59' at line 2 @@ -589,12 +3635,12 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp Testcase 3.3.1.5 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -CREATE VIEW v1 SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM tb2 limit 100' at line 1 -CREATE v1 AS SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'v1 AS SELECT * FROM tb2 limit 100' at line 1 -VIEW v1 AS SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 AS SELECT * FROM tb2 limit 100' at line 1 +CREATE VIEW v1 SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM tb2' at line 1 +CREATE v1 AS SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'v1 AS SELECT * FROM tb2' at line 1 +VIEW v1 AS SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 AS SELECT * FROM tb2' at line 1 CREATE VIEW v1 AS SELECT 1; DROP VIEW v1; VIEW v1 AS SELECT 1; @@ -612,45 +3658,43 @@ Testcase 3.3.1.6 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; CREATE or REPLACE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = MERGE VIEW v1 -as SELECT * from tb2 limit 100 ; -Warnings: -Warning 1354 View merge algorithm can't be used here for now (assumed undefined algorithm) +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM = VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE = ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE - ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 Drop view if exists v1 ; CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1; @@ -676,7 +3720,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp Testcase 3.3.1.7 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -Create view test.v1 AS Select * from test.tb2 limit 100 ; +Create view test.v1 AS Select * from test.tb2; Alter view test.v1 AS Select F59 from test. tb2 limit 100 ; Drop view test.v1 ; Create view v1 AS Select * from test.tb2 limit 100 ; @@ -875,60 +3919,159 @@ v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI SELECT * FROM test.v1; f1 1 -CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2; +CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2; SHOW CREATE VIEW test.v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` limit 2 -SELECT * FROM test.v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100; +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` order by `tb2`.`f59` limit 2 +SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2; SHOW CREATE VIEW test.v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100 -SELECT * FROM test.v1; +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` +SELECT * FROM test.v1 order by F59 limit 10,100; F59 -76710 -2760 -569300 -660 -250 -340 -3410 -2550 -3330 -441 -24 -323 -34 -4 +10 15 -22 -394 -94 -195 -292 -987 -7876 -321 -9112 -500 -500 -500 -107 -109 -207 -209 -27 -29 17 19 +22 +24 +27 +29 +34 +94 +107 107 109 -299 +109 +195 +207 +209 242 +250 +292 +299 +321 +323 +340 +394 424 +441 +500 +500 +500 +660 +987 +2550 +2760 +3330 +3410 +7876 +9112 +76710 +569300 Drop table test.t1 ; Drop view test.v1 ; @@ -942,11 +4085,59 @@ ERROR HY000: 'test.tb2' is not VIEW Testcase 3.3.1.15 -------------------------------------------------------------------------------- Drop table if exists test.v1 ; -CREATE OR REPLACE view test.v1 as select * from tb2 LIMIT 2; +CREATE OR REPLACE view test.v1 as select * from tb2; SELECT * FROM test.v1; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set +10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set 2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set +207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set +321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set +4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set +660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set +76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set +9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set +9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set Drop view test.v1 ; Testcase 3.3.1.16 + 3.3.1.17 @@ -1079,8 +4270,8 @@ ERROR HY000: View's SELECT and view's field list have different column counts Testcase 3.3.1.21 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2; -SELECT * FROM test.v1; +CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2; +SELECT * FROM test.v1 order by F59, F60 desc LIMIT 2; F59 F60 1 1 2 2 @@ -1089,7 +4280,7 @@ Drop view if exists test.v1 ; Testcase 3.3.1.22 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 LIMIT 2; +CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 WHERE f59 < 3; SELECT * FROM test.v1; product 1 @@ -1176,20 +4367,68 @@ DROP TEMPORARY TABLE t2; Testcase 3.3.1.26 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; Select * from test.v1; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set +10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set 2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set +207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set +321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set +4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set +660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set +76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set +9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set +9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set Drop view test.v1 ; Testcase 3.3.1.27 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS test.v1; Drop VIEW IF EXISTS test.v1_1 ; -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; Create view test.v1_1 AS Select F59 from test.v1 ; -Select * from test.v1_1 limit 20 ; +Select * from test.v1_1 order by F59 limit 2; F59 1 2 @@ -1203,58 +4442,2557 @@ create database test2 ; Create view test2.v2 AS Select * from test.tb2 limit 50,50; use test2 ; Create view v1 AS Select * from test.tb2 limit 50 ; -Select * from v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +Select * from v1 order by f59,f60,f61,f62,f63,f64,f65; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set Select * from test2.v2 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 Drop view if exists test2.v1 ; @@ -1317,18 +7055,18 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view if exists test.v1_firstview ; Drop view if exists test.v1_secondview ; Drop view if exists test.v1 ; @@ -1346,18 +7084,18 @@ CREATE VIEW v1 AS SELECT test.v1_firstview.F59, test.v1_firstview.F60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; F59 F60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view v1 ; Drop view test.v1_firstview ; Drop view test.v1_secondview ; @@ -1372,18 +7110,18 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.tb2 ON test.v1_firstview.f59 = test.tb2.f59; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view test.v1 ; Drop view test.v1_firstview; @@ -1396,18 +7134,18 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ; CREATE VIEW v1 AS SELECT v1_firstview.f59, v1_firstview.f60 FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop database test2 ; Testcase 3.3.1.37 @@ -1419,18 +7157,18 @@ Drop view if exists test.v1_1 ; Drop view if exists test.v1_1 ; Drop view if exists test.v1_main ; Create view test.v1 as Select f59, f60 FROM test.tb2; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 -10 10 Create table t1(f59 int, f60 int); Insert into t1 values (90,507) ; Create view v1_1 as Select f59,f60 from t1 ; @@ -1440,18 +7178,18 @@ f59 f60 Create view v1_main as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1 ON test.tb2.f59 = test.v1.f59; -Select * from v1_main limit 0,10; +Select * from v1_main order by f59 limit 0,10; f59 1 2 3 4 4 +4 +4 5 6 7 -8 -9 Drop table t1; Drop view test.v1 ; Drop view test.v1_1 ; @@ -1736,29 +7474,29 @@ Drop view if exists test.v1 ; Drop view if exists test.v1_main; Drop view if exists test1.v1_1 ; Drop database if exists test3 ; -Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ; -Select * from test.v1 ; +Create view test.v1 as Select f59, f60 FROM test.tb2; +Select * from test.v1 order by f59,f60 limit 20; f59 f60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 10 10 -76710 226546 -2760 985654 -569300 9114376 -660 876546 -250 87895654 -340 9984376 -3410 996546 -2550 775654 -3330 764376 -441 16546 +15 87 +17 15 +19 18 +22 93 +24 51654 +27 25 +29 28 +34 41 +94 74 Create table test1.t1 (f59 int,f60 int) ; Insert into test1.t1 values (199,507) ; Create view test1.v1_1 as Select f59,f60 from test1.t1 ; @@ -1791,7 +7529,7 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS Select f59 from (Select * FROM tb2 limit 20) tx ; ERROR HY000: View's SELECT contains a subquery in the FROM clause -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; ERROR 42S02: Table 'test.v1' doesn't exist Drop view if exists test.v1 ; @@ -1845,12 +7583,110 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2; INSERT INTO test.v1 values(122,432); SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -122 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 122 +f60 432 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ; SELECT * FROM test.tb2 where f59 = 3000 limit 0,20; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -3000 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 3000 +f60 432 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set DELETE FROM test.v1 where test.v1.f59 = 3000 and test.v1.f60 = 432; SELECT * FROM test.tb2 where f59 = 3000 and f60 = 432; @@ -1872,20 +7708,218 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04; UPDATE test.v1 SET f59 = 30 where F59 = 04 ; affected rows: 2 info: Rows matched: 2 Changed: 2 Warnings: 0 -SELECT * FROM test.v1 where f59 = 30 ; +SELECT * FROM test.v1 where f59 = 30 order by f59; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 SELECT * FROM test.tb2 where f59 = 30 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -30 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -30 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 30 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 30 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set UPDATE tb2 SET f59 = 100 where f59 = 30 ; affected rows: 2 info: Rows matched: 2 Changed: 2 Warnings: 0 SELECT * FROM tb2 where f59 = 100 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -SELECT * FROM test.v1 ; +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +SELECT * FROM test.v1 order by f59 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 drop view if exists test.v1 ; Drop TABLE IF EXISTS test.t1 ; @@ -1961,7 +7995,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 where f59 = 195 WITH CHECK OPTION ; UPDATE test.v1 SET f59 = 198 where f59=195 ; ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; f59 f60 195 87 drop view if exists test.v1 ; @@ -1975,7 +8009,7 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ; CREATE VIEW test.v2 as SELECT * FROM test.v1 ; UPDATE test.v1 SET F59 = 919 where f59 = 0987 ; ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; f59 f60 987 41 UPDATE test.v2 SET F59 = 9879 where f59 = 919 ; @@ -1991,12 +8025,12 @@ DROP VIEW IF EXISTS test.v1; CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER) ENGINE = innodb; INSERT INTO t1 VALUES ('A', 1); -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 A 1 CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2 WITH CASCADED CHECK OPTION ; -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 1 UPDATE v1 SET f2 = 2 WHERE f2 = 1; @@ -2004,7 +8038,7 @@ affected rows: 1 info: Rows matched: 1 Changed: 1 Warnings: 0 INSERT INTO v1 VALUES('B',2); affected rows: 1 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 2 B 2 @@ -2012,7 +8046,7 @@ UPDATE v1 SET f2 = 4; ERROR HY000: CHECK OPTION failed 'test.v1' INSERT INTO v1 VALUES('B',3); ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 2 B 2 @@ -9648,8 +15682,8 @@ WHERE v3_to_v1_options LIKE ' %' AND errno <> 0 ORDER BY v3_to_v1_options; v3_to_v1_options statement v3_to_v1_violation errno SELECT * FROM t1_results -WHERE v3_to_v1_options LIKE 'WITH %' -AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0 +WHERE v3_to_v1_options LIKE 'WITH %' + AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0 ORDER BY v3_to_v1_options; v3_to_v1_options statement v3_to_v1_violation errno SELECT * FROM t1_results @@ -9669,116 +15703,5189 @@ DROP TABLE t1_results; Testcase 3.3.1.50 - 3.3.1.53 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS test.v1; -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ; -SELECT * FROM test.v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +CREATE VIEW test.v1 AS SELECT * FROM test.tb2; +SELECT * FROM test.v1 order by f59,f60,f61 ; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ; -SELECT * FROM test.v1 ; +CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2; +SELECT * FROM test.v1 order by F59, F61 limit 50; F59 F61 1 0000000001 2 0000000002 3 0000000003 -100 0000000004 5 0000000005 6 0000000006 7 0000000007 8 0000000008 9 0000000009 10 0000000010 -76710 NULL -2760 NULL -569300 NULL -660 NULL -250 NULL -340 NULL -3410 NULL -2550 NULL -3330 NULL -441 NULL -24 NULL -323 NULL -34 NULL -100 NULL 15 NULL -22 NULL -394 NULL -94 NULL -195 NULL -292 NULL -987 NULL -7876 NULL -321 0000000765 -9112 0000008771 -500 0000000900 -500 0000000900 -500 0000000900 -107 0000000106 -109 0000000104 -207 0000000206 -209 0000000204 -27 0000000026 -29 0000000024 17 0000000016 19 0000000014 +22 NULL +24 NULL +27 0000000026 +29 0000000024 +34 NULL +94 NULL +100 NULL +100 0000000004 +107 0000000106 107 0000000106 109 0000000104 -299 NULL +109 0000000104 +195 NULL +207 0000000206 +209 0000000204 242 NULL +250 NULL +292 NULL +299 NULL +321 0000000765 +323 NULL +340 NULL +394 NULL 424 NULL +441 NULL +500 0000000900 +500 0000000900 +500 0000000900 +660 NULL +987 NULL +2550 NULL +2760 NULL +3330 NULL +3410 NULL +7876 NULL +9112 0000008771 +76710 NULL +569300 NULL drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ; -SELECT * FROM test.v1; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61; +SELECT * FROM test.v1 order by f59,f60,f61 ; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ; -SELECT * FROM test.v1 limit 50; +CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2; +SELECT * FROM test.v1 order by f59,f61 desc limit 20; F59 f61 1 0000000001 2 0000000002 3 0000000003 -100 0000000004 5 0000000005 6 0000000006 7 0000000007 8 0000000008 9 0000000009 10 0000000010 -76710 NULL -2760 NULL -569300 NULL -660 NULL -250 NULL -340 NULL -3410 NULL -2550 NULL -3330 NULL -441 NULL +15 NULL +17 0000000016 +19 0000000014 +22 NULL +24 NULL +27 0000000026 +29 0000000024 +34 NULL +94 NULL +100 0000000004 +100 NULL drop view test.v1 ; Testcase 3.3.1.54 @@ -9797,7 +20904,7 @@ Insert into t2 values (2,2000) ; Insert into t2 values (31,97) ; Create view test.v1 as select t1.f59, t1.f60 from t1,t2 where t1.f59=t2.f59 ; -Select * from test.v1 limit 50 ; +Select * from test.v1 order by f59 limit 50 ; f59 f60 1 10 2 20 @@ -9870,7 +20977,7 @@ create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 from t1 inner join t2 where t1.f59 = t2.f59 ; -select * from test.v1; +select * from test.v1 order by t1_f59 ; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 2 2 double double 6 6 3 3 single-f3 single-f3 4 6 @@ -9883,7 +20990,7 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 Create or replace view test.v1 as Select t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2 cross join t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; t1_f59 t2_f59 1 2 1 3 @@ -9909,7 +21016,7 @@ t1_f59 t2_f59 Create or replace view test.v1 as Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2,t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; t1_f59 t2_f59 1 2 1 3 @@ -9935,7 +21042,7 @@ t1_f59 t2_f59 Create or replace view test.v1 as Select f59, f60, f61, a, b FROM t2 natural join t1; -Select * from v1; +Select * from v1 order by f59; f59 f60 f61 a b 2 double 6 2 2 Select f59, f60, f61, a, b @@ -9946,11 +21053,11 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 +NULL 4 NULL single NULL 4 2 2 double double 6 6 3 3 single-f3 single-f3 4 6 -NULL 4 NULL single NULL 4 Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; @@ -9961,7 +21068,7 @@ NULL 4 NULL single NULL 4 Create or replace view test.v1 as Select f59, f60, f61, t1.a, t2.b FROM t2 natural left outer join t1; -Select * from v1; +Select * from v1 order by f59; f59 f60 f61 a b 2 double 6 2 2 3 single-f3 6 NULL 3 @@ -9976,7 +21083,7 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 right outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 1 NULL single NULL 3 NULL 2 2 double double 6 6 @@ -9991,11 +21098,11 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 Create or replace view test.v1 as Select f59, f60, a, b FROM t2 natural right outer join t1; -Select * from v1; +Select * from v1 order by f59 desc; f59 f60 a b -1 single 1 NULL -2 double 2 2 3 single-f3 3 NULL +2 double 2 2 +1 single 1 NULL Select f59, f60, a, b FROM t2 natural right outer join t1; f59 f60 a b @@ -10016,18 +21123,18 @@ Insert into t1 values (107,501,601) ; Insert into t1 values (901,801,401) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 1 2 3 -100 5 6 7 8 9 10 +15 Drop view if exists test.v1 ; Drop table if exists t1 ; Drop view if exists v1; @@ -10037,7 +21144,7 @@ Insert into t1 values (207,201,201) ; Insert into t1 values (201,201,201) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 207 Drop view if exists test.v1 ; @@ -10049,7 +21156,7 @@ Insert into t1 values (27,21,21) ; Insert into t1 values (21,21,21) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 27 Drop view test.v1 ; @@ -10064,18 +21171,18 @@ Insert into t1 values (17,51,61) ; Insert into t1 values (91,81,41) ; Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union ALL (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 17 Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union Distinct (Select f59 from t1 where f60=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 Drop view test.v1 ; @@ -10087,7 +21194,7 @@ insert into t1 values (107,501,601); insert into t1 values (901,801,401); create or replace view test.v1 as select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59; -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 107 @@ -10095,7 +21202,7 @@ create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union all (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 107 @@ -10104,14 +21211,14 @@ create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union distinct (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 drop view if exists test.v1 ; @@ -10122,15 +21229,64 @@ Testcase 3.3.1.64 Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT F59 FROM test.tb2 where test.tb2.F59 = 109; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59 limit 0,10; F59 109 109 ALTER VIEW test.v1 AS SELECT * FROM test.tb2 WHERE test.tb2.f59 = 242 ; -SELECT * FROM test.v1 limit 0,10; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +SELECT * FROM test.v1 order by f59 limit 0,10; +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set Drop view test.v1 ; Testcase 3.3.1.65, 3.3.1.A4, 3.3.1.66, 3.3.1.67 @@ -10275,15 +21431,13 @@ ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or functi EXPLAIN SELECT * FROM test3.v32; ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -FIXME - Setting join_limit to 30 - hangs for higher values +FIXME - Setting join_limit to 28 - hangs for higher values ---------------------------------------------------------- -SET @join_limit = 30; +SET @join_limit = 28; SET @max_level = @join_limit - 1; DROP DATABASE IF EXISTS test3; DROP TABLE IF EXISTS test1.t1; DROP TABLE IF EXISTS test2.t1; -DROP VIEW IF EXISTS test1.v29; -DROP VIEW IF EXISTS test1.v28; DROP VIEW IF EXISTS test1.v27; DROP VIEW IF EXISTS test1.v26; DROP VIEW IF EXISTS test1.v25; @@ -10390,15 +21544,11 @@ CREATE OR REPLACE VIEW test1.v26 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v25 tab2; CREATE OR REPLACE VIEW test1.v27 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v26 tab2; -CREATE OR REPLACE VIEW test1.v28 AS SELECT f1, f2 -FROM test2.t1 tab1 NATURAL JOIN test1.v27 tab2; -CREATE OR REPLACE VIEW test1.v29 AS SELECT f1, f2 -FROM test3.t1 tab1 NATURAL JOIN test1.v28 tab2; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; View Create View -v29 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v29` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v28` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) +v27 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v27` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test1`.`t1` `tab1` join `test1`.`v26` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; f1 f2 5 five @@ -10407,14 +21557,14 @@ differs on some platforms FIXME Is this a bug ? -------------------------------------------------------------------------------- EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; -CREATE VIEW test1.v30 AS SELECT f1, f2 -FROM test3.t1 tab1 NATURAL JOIN test1.v29 tab2; -SHOW CREATE VIEW test1.v30; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; +CREATE VIEW test1.v28 AS SELECT f1, f2 +FROM test3.t1 tab1 NATURAL JOIN test1.v27 tab2; +SHOW CREATE VIEW test1.v28; View Create View -v30 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v30` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v29` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) +v28 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v28` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v27` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v30; +CAST(f2 AS CHAR) AS f2 FROM test1.v28; f1 f2 5 five @@ -10423,33 +21573,31 @@ differs on some platforms FIXME Is this a bug ? -------------------------------------------------------------------------------- EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v30; -DROP VIEW IF EXISTS test1.v30; -CREATE OR REPLACE VIEW test1.v0 AS +CAST(f2 AS CHAR) AS f2 FROM test1.v28; +DROP VIEW IF EXISTS test1.v28; +CREATE OR REPLACE VIEW test1.v0 AS SELECT f1 as f2, f2 as f1 FROM test2.t1; -CREATE OR REPLACE VIEW test2.v0 AS +CREATE OR REPLACE VIEW test2.v0 AS SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; CREATE OR REPLACE VIEW test3.v0 AS SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; CREATE OR REPLACE VIEW test3.v0 AS SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; -DROP VIEW IF EXISTS test1.v29; -DROP VIEW IF EXISTS test1.v28; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; DROP VIEW IF EXISTS test1.v27; DROP VIEW IF EXISTS test1.v26; DROP VIEW IF EXISTS test1.v25; @@ -10501,8 +21649,57 @@ Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ; INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ; affected rows: 1 SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -2005 101 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 2005 +f60 101 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set SELECT f59,f60 FROM test.v1 where f59 = 2005 and f60 = 0101 ; f59 f60 2005 101 @@ -10518,9 +21715,58 @@ UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105; affected rows: 1 info: Rows matched: 1 Changed: 1 Warnings: 0 SELECT * FROM tb2 where f59 = 8 and f60 = 105; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -8 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105; +f59 8 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ; f59 f60 8 105 Drop view test.v1 ; @@ -10534,12 +21780,211 @@ UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ; affected rows: 4 info: Rows matched: 4 Changed: 4 Warnings: 0 SELECT * FROM tb2 where f59 = 891 and f60 = 105; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105; +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ; f59 f60 891 105 891 105 @@ -10556,7 +22001,7 @@ DELETE FROM test.v1 where f59 = 789 ; affected rows: 1 SELECT * FROM tb2 where f59 = 789 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -SELECT f59,f60 FROM test.v1 where f59 = 789; +SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ; f59 f60 Drop view test.v1 ; @@ -10569,7 +22014,7 @@ DELETE FROM test.v1 where f59 = 711 ; affected rows: 1 SELECT * FROM tb2 where f59 = 711 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -SELECT f59,f60 FROM test.v1 where f59 = 711; +SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ; f59 f60 Drop view test.v1 ; @@ -10887,17 +22332,13 @@ SET @variant4= 'CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61'; SET @variant5= 'CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0'; SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1'; SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2'; - -Some server responses suffer from -Bug#10773 Incorrect message is displayed while updating a view --------------------------------------------------------------------------------- SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)'; SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1'; CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10905,7 +22346,7 @@ CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1); INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10913,7 +22354,7 @@ CREATE VIEW v1 AS SELECT f61 FROM v2; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10921,7 +22362,7 @@ CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10929,7 +22370,7 @@ CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10937,7 +22378,7 @@ CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10945,7 +22386,7 @@ CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10953,7 +22394,7 @@ CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10961,7 +22402,7 @@ CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10991,11 +22432,11 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(5) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11015,12 +22456,12 @@ f4x char(5) YES NULL report char(10) YES NULL DESCRIBE v1; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4x report -1 NULL ABC t1 0 -1 NULL ABC v1 0 0 NULL ABC t1 1 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5); ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(10); @@ -11038,14 +22479,14 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(10) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 0 NULL ABC t1 1 2 NULL <-- 10 --> t1 2 2 NULL <-- 10 --> v1 2 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11074,7 +22515,7 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(8) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11083,7 +22524,7 @@ f1 f2 f4 report 2 NULL <-- 10 - v1 2 3 NULL <-- 10 - t1 3 3 NULL <-- 10 - v1 3 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11107,7 +22548,7 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11118,7 +22559,7 @@ f1 f2 f4 report 3 NULL <-- 10 - v1 3 4 NULL <------ 20 --------> t1 4 4 NULL <------ 20 --------> v1 4 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11130,9 +22571,9 @@ f1 f2 f4 report 4 NULL <------ 20 --------> t1 4 4 NULL <------ 20 --------> v1 4 ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30); -INSERT INTO t1 SET f1 = '<------------- 30 ----------->', +INSERT INTO t1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 't1 5'; -INSERT INTO v1 SET f1 = '<------------- 30 ----------->', +INSERT INTO v1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 'v1 5'; DESCRIBE t1; Field Type Null Key Default Extra @@ -11146,7 +22587,7 @@ f1 varchar(30) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11159,7 +22600,7 @@ f1 f2 f4 report 4 NULL <------ 20 --------> v1 4 <------------- 30 -----------> NULL <------ 20 --------> t1 5 <------------- 30 -----------> NULL <------ 20 --------> v1 5 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11183,7 +22624,7 @@ f4 varchar(20) YES NULL report char(10) YES NULL DESCRIBE v1; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report -1 ABC t1 0 -1 ABC v1 0 @@ -11197,7 +22638,7 @@ f1 f4 report <------------- 30 -----------> <------ 20 --------> t1 5 <------------- 30 -----------> <------ 20 --------> v1 5 ABC <------ 20 --------> t1 6 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL; INSERT INTO t1 SET f1 = 'ABC', f2 = '1500-12-04', @@ -11216,7 +22657,7 @@ f1 varchar(30) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 -1 ABC t1 0 NULL -1 ABC v1 0 NULL @@ -11232,7 +22673,7 @@ f1 f4 report f2 ABC <------ 20 --------> t1 6 NULL ABC <------ 20 --------> t1 7 1500-12-04 ABC <------ 20 --------> v1 7 1500-12-04 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11266,7 +22707,7 @@ f1 varchar(30) YES NULL f2 float YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 -1 ABC t1 0 NULL -1 ABC v1 0 NULL @@ -11281,10 +22722,10 @@ f1 f4 report f2 <------------- 30 -----------> <------ 20 --------> v1 5 NULL ABC <------ 20 --------> t1 6 NULL ABC <------ 20 --------> t1 7 NULL -ABC <------ 20 --------> v1 7 NULL ABC <------ 20 --------> t1 8 -0.00033 +ABC <------ 20 --------> v1 7 NULL ABC <------ 20 --------> v1 8 -0.00033 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11299,8 +22740,8 @@ f1 f2 f4 report <------------- 30 -----------> NULL <------ 20 --------> v1 5 ABC NULL <------ 20 --------> t1 6 ABC NULL <------ 20 --------> t1 7 -ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> t1 8 +ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> v1 8 ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2); INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4, @@ -11323,7 +22764,7 @@ f1 varchar(30) YES NULL f2 float YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 f3 -1 ABC t1 0 NULL NULL -1 ABC v1 0 NULL NULL @@ -11338,12 +22779,12 @@ f1 f4 report f2 f3 <------------- 30 -----------> <------ 20 --------> v1 5 NULL NULL ABC <------ 20 --------> t1 6 NULL NULL ABC <------ 20 --------> t1 7 NULL NULL -ABC <------ 20 --------> v1 7 NULL NULL ABC <------ 20 --------> t1 8 -0.00033 NULL -ABC <------ 20 --------> v1 8 -0.00033 NULL ABC <------ 20 --------> t1 9 -0.00033 -2.20 +ABC <------ 20 --------> v1 7 NULL NULL +ABC <------ 20 --------> v1 8 -0.00033 NULL ABC <------ 20 --------> v1 9a -0.00033 NULL -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11358,10 +22799,10 @@ f1 f2 f4 report <------------- 30 -----------> NULL <------ 20 --------> v1 5 ABC NULL <------ 20 --------> t1 6 ABC NULL <------ 20 --------> t1 7 -ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> t1 8 -ABC -0.00033 <------ 20 --------> v1 8 ABC -0.00033 <------ 20 --------> t1 9 +ABC NULL <------ 20 --------> v1 7 +ABC -0.00033 <------ 20 --------> v1 8 ABC -0.00033 <------ 20 --------> v1 9a DROP TABLE t1; DROP VIEW v1; @@ -11376,10 +22817,10 @@ DESCRIBE v1; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 ABC 3 -SELECT * FROM v1; +SELECT * FROM v1 order by 2; f1 my_sqrt ABC 1.7320508075689 ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30); @@ -11392,21 +22833,21 @@ DESCRIBE v1; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 ABC 3 ABC DEF -SELECT * FROM v1; +SELECT * FROM v1 order by 2; f1 my_sqrt -ABC 1.7320508075689 ABC 0 +ABC 1.7320508075689 SELECT SQRT('DEF'); SQRT('DEF') 0 Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'DEF' CREATE VIEW v2 AS SELECT SQRT('DEF'); -SELECT * FROM v2; +SELECT * FROM v2 order by 1; SQRT('DEF') 0 Warnings: @@ -11416,27 +22857,30 @@ DESCRIBE v2; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM v2; +SELECT * FROM v2 order by 2; f1 my_sqrt +ABC 0 ABC 1.7320508075689 -ABC 0 CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v1; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v2; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t1; DROP TABLE t2; DROP VIEW v1; diff --git a/mysql-test/suite/funcs_1/r/is_columns_innodb.result b/mysql-test/suite/funcs_1/r/is_columns_innodb.result index d7f801f2dcd..101e7140645 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_innodb.result +++ b/mysql-test/suite/funcs_1/r/is_columns_innodb.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/is_columns_memory.result b/mysql-test/suite/funcs_1/r/is_columns_memory.result index 154ad27e403..7f49fcb97d0 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_memory.result +++ b/mysql-test/suite/funcs_1/r/is_columns_memory.result @@ -1,5 +1,4 @@ SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/is_columns_myisam.result b/mysql-test/suite/funcs_1/r/is_columns_myisam.result index 2365dda1b24..a30acc64a8d 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_myisam.result +++ b/mysql-test/suite/funcs_1/r/is_columns_myisam.result @@ -1,5 +1,4 @@ SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/is_columns_ndb.result b/mysql-test/suite/funcs_1/r/is_columns_ndb.result index a1a1e076271..4ae1723140e 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_ndb.result +++ b/mysql-test/suite/funcs_1/r/is_columns_ndb.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/is_tables_innodb.result b/mysql-test/suite/funcs_1/r/is_tables_innodb.result index fccf1cf5cb9..c160ac7f749 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_innodb.result +++ b/mysql-test/suite/funcs_1/r/is_tables_innodb.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/is_tables_memory.result b/mysql-test/suite/funcs_1/r/is_tables_memory.result index db3f40bf8a0..c1dfc42e1db 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_memory.result +++ b/mysql-test/suite/funcs_1/r/is_tables_memory.result @@ -1,5 +1,4 @@ SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/is_tables_myisam.result b/mysql-test/suite/funcs_1/r/is_tables_myisam.result index 27fed7591ac..f48128f6794 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_myisam.result +++ b/mysql-test/suite/funcs_1/r/is_tables_myisam.result @@ -1,5 +1,4 @@ SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION'; -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/is_tables_ndb.result b/mysql-test/suite/funcs_1/r/is_tables_ndb.result index 5b9863a4673..189f7f3464a 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_ndb.result +++ b/mysql-test/suite/funcs_1/r/is_tables_ndb.result @@ -1,4 +1,3 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test; diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/memory_triggers.result b/mysql-test/suite/funcs_1/r/memory_triggers.result deleted file mode 100644 index 482472d8651..00000000000 --- a/mysql-test/suite/funcs_1/r/memory_triggers.result +++ /dev/null @@ -1,2262 +0,0 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -set @@global.max_heap_table_size = 4294967295; -set @@session.max_heap_table_size = 4294967295; -drop table if exists tb3; -create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) -) engine = memory; -Warnings: -Note 1265 Data truncated for column 'f150' at row 1 -Note 1265 Data truncated for column 'f151' at row 1 -Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; - -Testcase: 3.5: --------------- -create User test_general@localhost; -set password for test_general@localhost = password('PWD'); -revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost; -create User test_super@localhost; -set password for test_super@localhost = password('PWD'); -grant ALL on *.* to test_super@localhost with grant OPTION; -connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); - -Testcase: 3.5.1.1: ------------------- -use test; -Create trigger trg1_1 BEFORE INSERT -on tb3 for each row set @test_before = 2, new.f142 = @test_before; -Create trigger trg1_2 AFTER INSERT -on tb3 for each row set @test_after = 6; -Create trigger trg1_4 BEFORE UPDATE -on tb3 for each row set @test_before = 27, -new.f142 = @test_before, -new.f122 = 'Before Update Trigger'; -Create trigger trg1_3 AFTER UPDATE -on tb3 for each row set @test_after = '15'; -Create trigger trg1_5 BEFORE DELETE on tb3 for each row -select count(*) into @test_before from tb3 as tr_tb3 -where f121 = 'Test 3.5.1.1'; -Create trigger trg1_6 AFTER DELETE on tb3 for each row -select count(*) into @test_after from tb3 as tr_tb3 -where f121 = 'Test 3.5.1.1'; -set @test_before = 1; -set @test_after = 5; -select @test_before, @test_after; -@test_before @test_after -1 5 -Insert into tb3 (f121, f122, f142, f144, f134) -values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 First Row 2 0000000005 1 -select @test_before, @test_after; -@test_before @test_after -2 6 -set @test_before = 18; -set @test_after = 8; -select @test_before, @test_after; -@test_before @test_after -18 8 -Update tb3 set tb3.f122 = 'Update', -tb3.f142 = @test_before, -tb3.f144 = @test_after -where tb3.f121 = 'Test 3.5.1.1'; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -select @test_before, @test_after; -@test_before @test_after -27 15 -Insert into tb3 (f121, f122, f142, f144, f134) -values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); -set @test_before = 0; -set @test_after = 0; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -Test 3.5.1.1 Second Row 2 0000000006 2 -select @test_before, @test_after; -@test_before @test_after -0 0 -Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -select @test_before, @test_after; -@test_before @test_after -2 1 -drop trigger trg1_1; -drop trigger trg1_2; -drop trigger trg1_3; -drop trigger trg1_4; -drop trigger trg1_5; -drop trigger trg1_6; -delete from tb3 where f121='Test 3.5.1.1'; - -Testcase: 3.5.1.2: ------------------- -Create trigger trg_1 after insert -on tb3 for each statement set @x= 1; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statement set @x= 1' at line 2 -drop trigger trg_1; - -Testcase 3.5.1.3: ------------------ -CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1 -CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1 -CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set @ret1 = 'test' for each row' at line 1 -CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1 -CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1 -drop trigger trg3_1; -drop trigger trg3_2; -drop trigger trg3_3; -drop trigger trg3_4; -drop trigger trg3_5; - -Testcase: 3.5.1.5: ------------------- -CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 for each row set new.f120 = 'e'' at line 1 -CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1 -CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tb3 for each row set new.f120 = 'g'' at line 1 -CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set new.f120 = 'g'' at line 1 -CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1 -CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row set new.f120 = 'g'' at line 1 -drop trigger trg4_1; -drop trigger trg4_2; -drop trigger trg4_3; -drop trigger trg4_4; -drop trigger trg4_5; -drop trigger trg4_6; - -Testcase 3.5.1.6: - Need to fix -------------------------------- - -Testcase 3.5.1.7: - need to fix -------------------------------- -drop table if exists t1; -Warnings: -Note 1051 Unknown table 't1' -create table t1 (f1 int, f2 char(25),f3 int) engine=memory; -CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 -for each row set new.f3 = '14'; -CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ -BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; -insert into t1 (f2) values ('insert 3.5.1.7'); -select * from t1; -f1 f2 f3 -NULL insert 3.5.1.7 14 -update t1 set f2='update 3.5.1.7'; -select * from t1; -f1 f2 f3 -NULL update 3.5.1.7 42 -select trigger_name from information_schema.triggers; -trigger_name -trg5_1 -trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX -drop trigger trg5_1; -drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ; -drop table t1; - -Testcase 3.5.1.8: ------------------ -CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '100 before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@name before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 -for each row set new.f120 ='X'; -ERROR HY000: Trigger in wrong schema -drop database if exists trig_db; -create database trig_db; -use trig_db; -create table t1 (f1 integer) engine = memory; -use test; -CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 -for each row set @ret_trg6_2 = 5; -ERROR HY000: Trigger in wrong schema -use trig_db; -CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 -for each row set @ret_trg6_3 = 18; -ERROR HY000: Trigger in wrong schema -use test; -drop database trig_db; -drop trigger trg6_1; -drop trigger trg6_3; - -Testcase 3.5.1.9:(cannot be inplemented at this point) ------------------------------------------------------- - -Testcase 3.5.1.10: ------------------- -CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X'; -CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y'; -ERROR HY000: Trigger already exists -drop trigger trg7_1; - -Testcase 3.5.1.?: ------------------ -drop table if exists t1; -drop table if exists t2; -create table t1 (f1 char(50), f2 integer) engine = memory; -create table t2 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t1 -for each row set new.f1 ='trig t1'; -create trigger trig before update on t2 -for each row set new.f1 ='trig t2'; -ERROR HY000: Trigger already exists -insert into t1 value ('insert to t1',1); -select * from t1; -f1 f2 -trig t1 1 -update t1 set f1='update to t1'; -select * from t1; -f1 f2 -update to t1 1 -insert into t2 value ('insert to t2',2); -update t2 set f1='update to t1'; -select * from t2; -f1 f2 -update to t1 2 -drop table t1; -drop table t2; -drop trigger trig; - -Testcase 3.5.1.11: ------------------- -drop database if exists trig_db1; -drop database if exists trig_db2; -drop database if exists trig_db3; -create database trig_db1; -create database trig_db2; -create database trig_db3; -use trig_db1; -create table t1 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t1 -for each row set new.f1 ='trig1', @test_var1='trig1'; -use trig_db2; -create table t2 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t2 -for each row set new.f1 ='trig2', @test_var2='trig2'; -use trig_db3; -create table t1 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t1 -for each row set new.f1 ='trig3', @test_var3='trig3'; -set @test_var1= '', @test_var2= '', @test_var3= ''; -use trig_db1; -insert into t1 (f1,f2) values ('insert to db1 t1',1); -insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2); -insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3); -insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); -select @test_var1, @test_var2, @test_var3; -@test_var1 @test_var2 @test_var3 -trig1 trig2 trig3 -select * from t1; -f1 f2 -trig1 1 -trig1 2 -select * from trig_db2.t2; -f1 f2 -trig2 3 -select * from trig_db3.t1; -f1 f2 -trig3 4 -select * from t1; -f1 f2 -trig1 1 -trig1 2 -use test; -drop database trig_db1; -drop database trig_db2; -drop database trig_db3; - -Testcase 3.5.2.1/2/3: ---------------------- -drop database if exists trig_db1; -drop database if exists trig_db2; -create database trig_db1; -create database trig_db2; -use trig_db1; -create table t1 (f1 char(50), f2 integer) engine = memory; -create table trig_db2.t1 (f1 char(50), f2 integer) engine = memory; -create trigger trig1_b before insert on t1 -for each row set @test_var1='trig1_b'; -create trigger trig_db1.trig1_a after insert on t1 -for each row set @test_var2='trig1_a'; -create trigger trig_db2.trig2 before insert on trig_db2.t1 -for each row set @test_var3='trig2'; -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; -trigger_schema trigger_name event_object_table -trig_db1 trig1_b t1 -trig_db1 trig1_a t1 -trig_db2 trig2 t1 -set @test_var1= '', @test_var2= '', @test_var3= ''; -insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); -insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352); -select @test_var1, @test_var2, @test_var3; -@test_var1 @test_var2 @test_var3 -trig1_b trig1_a trig2 -drop database trig_db1; -drop database trig_db2; - -Testcase 3.5.3: ---------------- -drop database if exists priv_db; -create database priv_db; -use priv_db; -create table t1 (f1 char(20)); -create User test_noprivs@localhost; -set password for test_noprivs@localhost = password('PWD'); -create User test_yesprivs@localhost; -set password for test_yesprivs@localhost = password('PWD'); - -Testcase 3.5.3.2/6: -------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke SUPER on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); - -Testcase 3.5.3.2: ------------------ -select current_user; -current_user -test_noprivs@localhost -use priv_db; -create trigger trg1_1 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.2_1-no'; -ERROR 42000: Access denied; you need the SUPER privilege for this operation -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.2-no'); -select f1 from t1; -f1 -insert 3.5.3.2-no -select current_user; -current_user -test_yesprivs@localhost -use priv_db; -create trigger trg1_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.2_2-yes'; -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.2-yes'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes - -Testcase 3.5.3.6: ------------------ -use priv_db; -drop trigger trg1_2; -ERROR 42000: Access denied; you need the SUPER privilege for this operation -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.6-yes'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -use priv_db; -drop trigger trg1_2; -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.6-no'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -drop trigger trg1_2; - -Testcase 3.5.3.7a: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke UPDATE on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER, UPDATE on *.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -select current_user; -current_user -test_noprivs@localhost -use priv_db; -show grants; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1a'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -drop trigger trg4a_1; -use priv_db; -select current_user; -current_user -test_yesprivs@localhost -show grants; -Grants for test_yesprivs@localhost -GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -create trigger trg4a_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2a'; -insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -drop trigger trg4a_2; - -Testcase 3.5.3.7b: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs; -grant ALL on priv_db.* to test_noprivs@localhost; -revoke UPDATE on priv_db.* from test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE on priv_db.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -insert 3.5.3.7-1b -update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -drop trigger trg4b_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4b_2 before UPDATE on t1 for each row -set new.f1 = 'trig 3.5.3.7-2b'; -insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -insert 3.5.3.7-2b -update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -drop trigger trg4b_2; - -Testcase 3.5.3.7c ------------------ -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.t1 to test_noprivs@localhost; -revoke UPDATE on priv_db.t1 from test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1c'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -drop trigger trg4c_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4c_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2c'; -insert into t1 (f1) values ('insert 3.5.3.7-2c'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -drop trigger trg4c_2; - -Testcase 3.5.3.7d: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1d'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -insert 3.5.3.7-1d -drop trigger trg4d_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4d_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2d'; -insert into t1 (f1) values ('insert 3.5.3.7-2d'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -insert 3.5.3.7-1d -trig 3.5.3.7-2d -drop trigger trg4d_2; - -Testcase 3.5.3.8a: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke SELECT on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER, SELECT on *.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -select current_user; -current_user -test_noprivs@localhost -use priv_db; -show grants; -Grants for test_noprivs@localhost -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var = 'before trig 3.5.3.8-1a'; -select @test_var; -@test_var -before trig 3.5.3.8-1a -insert into t1 (f1) values ('insert 3.5.3.8-1a'); -select @test_var; -@test_var -before trig 3.5.3.8-1a -drop trigger trg5a_1; -use priv_db; -select current_user; -current_user -test_yesprivs@localhost -show grants; -Grants for test_yesprivs@localhost -GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -create trigger trg5a_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var= 'before trig 3.5.3.8-2a'; -select @test_var; -@test_var -before trig 3.5.3.8-2a -insert into t1 (f1) values ('insert 3.5.3.8-2a'); -select @test_var; -@test_var -insert 3.5.3.8-2a -drop trigger trg5a_2; - -Testcase: 3.5.3.8b ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.* to test_noprivs@localhost; -revoke SELECT on priv_db.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var= 'before trig 3.5.3.8-1b'; -insert into t1 (f1) values ('insert 3.5.3.8-1b'); -select @test_var; -@test_var -before trig 3.5.3.8-1b -update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; -select @test_var; -@test_var -before trig 3.5.3.8-1b -drop trigger trg5b_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5b_2 before UPDATE on t1 for each row -set @test_var= new.f1; -set @test_var= 'before trig 3.5.3.8-2b'; -insert into t1 (f1) values ('insert 3.5.3.8-2b'); -select @test_var; -@test_var -before trig 3.5.3.8-2b -update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; -select @test_var; -@test_var -update 3.5.3.8-2b -drop trigger trg5b_2; - -Testcase 3.5.3.8c: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.t1 to test_noprivs@localhost; -revoke SELECT on priv_db.t1 from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var= 'before trig 3.5.3.8-1c'; -insert into t1 (f1) values ('insert 3.5.3.8-1c'); -select @test_var; -@test_var -before trig 3.5.3.8-1c -drop trigger trg5c_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5c_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var='before trig 3.5.3.8-2c'; -insert into t1 (f1) values ('insert 3.5.3.8-2c'); -select @test_var; -@test_var -insert 3.5.3.8-2c -drop trigger trg5c_2; - -Testcase: 3.5.3.8d: -------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var='before trig 3.5.3.8-1d'; -insert into t1 (f1) values ('insert 3.5.3.8-1d'); -select @test_var; -@test_var -before trig 3.5.3.8-1d -drop trigger trg5d_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5d_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var='before trig 3.5.3.8-2d'; -insert into t1 (f1) values ('insert 3.5.3.8-2d'); -select @test_var; -@test_var -insert 3.5.3.8-2d -drop trigger trg5d_2; -drop database if exists priv_db; -drop user test_yesprivs@localhost; -drop user test_noprivs@localhost; -drop user test_noprivs; - -Testcase 3.5.4: ---------------- -use test; - -Testcase 3.5.4.1: ------------------ -create database db_drop; -Use db_drop; -create table t1 (f1 char(30)) engine=memory; -grant INSERT, SELECT on db_drop.t1 to test_general; -Use db_drop; -Create trigger trg1 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.1'; -Use db_drop; -Insert into t1 values ('Insert error 3.5.4.1'); -Select * from t1; -f1 -Trigger 3.5.4.1 -drop trigger trg1; -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; -trigger_schema trigger_name event_object_table -Insert into t1 values ('Insert no trigger 3.5.4.1'); -Select * from t1; -f1 -Trigger 3.5.4.1 -Insert no trigger 3.5.4.1 -drop trigger trg1; -drop database if exists db_drop; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.4.2: ------------------ -create database db_drop2; -Use db_drop2; -drop table if exists t1_432 ; -create table t1_432 (f1 char (30)) engine=memory; -Drop trigger tr_does_not_exit; -ERROR HY000: Trigger does not exist -drop table if exists t1_432 ; -drop database if exists db_drop2; - -Testcase 3.5.4.3: ------------------ -create database db_drop3; -Use db_drop3; -drop table if exists t1_433 ; -drop table if exists t1_433a ; -create table t1_433 (f1 char (30)) engine=memory; -create table t1_433a (f1a char (5)) engine=memory; -CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row -set new.f1 = 'Trigger 3.5.4.3'; -Drop trigger t1.433.trg3; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.trg3' at line 1 -Drop trigger db_drop3.t1.433.trg3; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.433.trg3' at line 1 -Drop trigger mysql.trg3; -ERROR HY000: Trigger does not exist -Drop trigger tbx.trg3; -ERROR HY000: Trigger does not exist -Drop trigger db_drop3.trg3; -drop table if exists t1_433; -drop table if exists t1_433a; -drop database if exists db_drop3; - -Testcase 3.5.4.4: ------------------ -create database db_drop4; -Use db_drop4; -create table t1 (f1 char(30)) engine=memory; -grant INSERT, SELECT on db_drop4.t1 to test_general; -Create trigger trg4 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.4'; -Use db_drop4; -Insert into t1 values ('Insert 3.5.4.4'); -Select * from t1; -f1 -Trigger 3.5.4.4 -Drop database db_drop4; -Show databases; -Database -information_schema -mysql -test -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers -where information_schema.triggers.trigger_name='trg4'; -trigger_schema trigger_name event_object_table -create database db_drop4; -Use db_drop4; -create table t1 (f1 char(30)) engine=memory; -grant INSERT, SELECT on db_drop4.t1 to test_general; -Insert into t1 values ('2nd Insert 3.5.4.4'); -Select * from t1; -f1 -2nd Insert 3.5.4.4 -drop trigger trg4; -ERROR HY000: Trigger does not exist -drop database if exists db_drop4; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.4.5: ------------------ -create database db_drop5; -Use db_drop5; -create table t1 (f1 char(50)) engine=memory; -grant INSERT, SELECT on t1 to test_general; -Create trigger trg5 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.5'; -Use db_drop5; -Insert into t1 values ('Insert 3.5.4.5'); -Select * from t1; -f1 -Trigger 3.5.4.5 -Drop table t1; -Show tables; -Tables_in_db_drop5 -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers -where information_schema.triggers.trigger_name='trg5'; -trigger_schema trigger_name event_object_table -create table t1 (f1 char(50)) engine=memory; -grant INSERT, SELECT on t1 to test_general; -Insert into t1 values ('2nd Insert 3.5.4.5'); -Select * from t1; -f1 -2nd Insert 3.5.4.5 -drop trigger trg5; -ERROR HY000: Trigger does not exist -drop database if exists db_drop5; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.5: ---------------- -use test; - -Testcase 3.5.5.1: ------------------ -Create trigger trg1 before INSERT on t100 for each row set new.f2=1000; -ERROR 42S02: Table 'test.t100' doesn't exist - -Testcase 3.5.5.2: ------------------ -Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); -Create trigger trg2 before INSERT -on t1_temp for each row set new.f2=9999; -ERROR HY000: Trigger's 't1_temp' is view or temporary table -drop table t1_temp; - -Testcase 3.5.5.3: ------------------ -Create view vw3 as select f118 from tb3; -Create trigger trg3 before INSERT -on vw3 for each row set new.f118='s'; -ERROR HY000: 'test.vw3' is not BASE TABLE -drop view vw3; - -Testcase 3.5.5.4: ------------------ -create database dbtest_one; -create database dbtest_two; -use dbtest_two; -create table t2 (f1 char(15)); -use dbtest_one; -create trigger trg4 before INSERT -on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4'; -ERROR HY000: Trigger in wrong schema -grant INSERT, SELECT on dbtest_two.t2 to test_general; -grant SELECT on dbtest_one.* to test_general; -use dbtest_two; -Insert into t2 values ('1st Insert 3.5.5.4'); -Warnings: -Warning 1265 Data truncated for column 'f1' at row 1 -Select * from t2; -f1 -1st Insert 3.5. -use dbtest_one; -Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); -Warnings: -Warning 1265 Data truncated for column 'f1' at row 1 -Select * from dbtest_two.t2; -f1 -1st Insert 3.5. -2nd Insert 3.5. -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; -DROP DATABASE if exists dbtest_one; -drop database if EXISTS dbtest_two; - -Testcase 3.5.6: ---------------- -use test; - -Testcase 3.5.6.1 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.2 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.3: ------------------ -Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1 -Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TIME INSERT on tb3 for each row set new.f132=15' at line 1 -drop trigger tb3.trg3_1; -drop trigger tb3.trg3_2; - -Testcase 3.5.6.4 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.5 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.1 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.2 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.3 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.4: ------------------ -Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT on tb3 for each row set new.f132=5' at line 1 -Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUE on tb3 for each row set new.f132=1' at line 1 -drop trigger tb3.trg4_1; -drop trigger tb3.trg4_2; - -Testcase 3.5.7.5 / 3.5.7.6: ---------------------------- -Create trigger trg5_1 BEFORE INSERT -on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; -Create trigger trg5_2 BEFORE INSERT -on tb3 for each row set new.f122='Trigger2 3.5.7.5'; -ERROR HY000: Trigger already exists -Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); -Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; -f121 f122 -Test 3.5.7.5/6 Trigger1 3.5.7.5/6 -update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6'; -Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; -f121 f122 -Test 3.5.7.5/6 Update 3.5.7.6 -drop trigger trg5_1; -drop trigger trg5_2; -delete from tb3 where f121='Test 3.5.7.5/6'; - -Testcase 3.5.7.7 / 3.5.7.8: ---------------------------- -set @test_var='Before trig 3.5.7.7'; -Create trigger trg6_1 AFTER INSERT -on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; -Create trigger trg6_2 AFTER INSERT -on tb3 for each row set @test_var='Trigger2 3.5.7.7'; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -Before trig 3.5.7.7 -Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7'); -Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; -f121 f122 -Test 3.5.7.7/8 Insert 3.5.7.7 -select @test_var; -@test_var -Trigger1 3.5.7.7/8 -update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8'; -Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; -f121 f122 -Test 3.5.7.7/8 Update 3.5.7.8 -select @test_var; -@test_var -Trigger1 3.5.7.7/8 -drop trigger trg6_1; -drop trigger trg6_2; -delete from tb3 where f121='Test 3.5.7.7/8'; - -Testcase 3.5.7.9/10: --------------------- -Create trigger trg7_1 BEFORE UPDATE -on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; -Create trigger trg7_2 BEFORE UPDATE -on tb3 for each row set new.f122='Trigger2 3.5.7.9'; -ERROR HY000: Trigger already exists -Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); -Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; -f121 f122 -Test 3.5.7.9/10 Insert 3.5.7.9 -update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10'; -Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; -f121 f122 -Test 3.5.7.9/10 Trigger1 3.5.7.9/10 -drop trigger trg7_1; -drop trigger trg7_2; -delete from tb3 where f121='Test 3.5.7.9/10'; - -Testcase 3.5.7.11/12: ---------------------- -set @test_var='Before trig 3.5.7.11'; -Create trigger trg8_1 AFTER UPDATE -on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; -Create trigger trg8_2 AFTER UPDATE -on tb3 for each row set @test_var='Trigger2 3.5.7.11'; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -Before trig 3.5.7.11 -Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12'); -select @test_var; -@test_var -Before trig 3.5.7.11 -Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; -f121 f122 -Test 3.5.7.11/12 Insert 3.5.7.11/12 -update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12'; -Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; -f121 f122 -Test 3.5.7.11/12 update 3.5.7.12 -select @test_var; -@test_var -Trigger 3.5.7.11/12 -delete from tb3 where f121='Test 3.5.7.11/12'; -drop trigger trg8_1; -drop trigger trg8_2; -delete from tb3 where f121='Test 3.5.7.11/12'; - -Testcase 3.5.7.13/14: ---------------------- -set @test_var=1; -Create trigger trg9_1 BEFORE DELETE -on tb3 for each row set @test_var=@test_var+1; -Create trigger trg9_2 BEFORE DELETE -on tb3 for each row set @test_var=@test_var+10; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -1 -Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13'); -Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; -f121 f122 -Test 3.5.7.13/14 Insert 3.5.7.13 -select @test_var; -@test_var -1 -delete from tb3 where f121='Test 3.5.7.13/14'; -Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; -f121 f122 -select @test_var; -@test_var -2 -delete from tb3 where f121='Test 3.5.7.13/14'; -select @test_var; -@test_var -2 -drop trigger trg9_1; -drop trigger trg9_2; -delete from tb3 where f121='Test 3.5.7.13/14'; - -Testcase 3.5.7.15/16: ---------------------- -set @test_var=1; -Create trigger trg_3_406010_1 AFTER DELETE -on tb3 for each row set @test_var=@test_var+5; -Create trigger trg_3_406010_2 AFTER DELETE -on tb3 for each row set @test_var=@test_var+50; -ERROR HY000: Trigger already exists -Create trigger trg_3_406010_1 AFTER INSERT -on tb3 for each row set @test_var=@test_var+1; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -1 -Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16'); -Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; -f121 f122 -Test 3.5.7.15/16 Insert 3.5.7.15/16 -select @test_var; -@test_var -1 -delete from tb3 where f121='Test 3.5.7.15/16'; -Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; -f121 f122 -select @test_var; -@test_var -6 -delete from tb3 where f121='Test 3.5.7.15/16'; -select @test_var; -@test_var -6 -drop trigger trg_3_406010_1; -drop trigger trg_3_406010_2; -delete from tb3 where f121='Test 3.5.7.15/16'; - -Testcase 3.5.7.17 (see Testcase 3.5.1.1) ----------------------------------------- - -Testcase 3.5.8.1: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.8.2: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.8.3/4: -------------------- -create database db_test; -grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; -grant LOCK TABLES on db_test.* to test_general; -Use db_test; -create table t1_i ( -i120 char ascii not null DEFAULT b'101', -i136 smallint zerofill not null DEFAULT 999, -i144 int zerofill not null DEFAULT 99999, -i163 decimal (63,30)) engine=memory; -create table t1_u ( -u120 char ascii not null DEFAULT b'101', -u136 smallint zerofill not null DEFAULT 999, -u144 int zerofill not null DEFAULT 99999, -u163 decimal (63,30)) engine=memory; -create table t1_d ( -d120 char ascii not null DEFAULT b'101', -d136 smallint zerofill not null DEFAULT 999, -d144 int zerofill not null DEFAULT 99999, -d163 decimal (63,30)) engine=memory; -Insert into t1_u values ('a',111,99999,999.99); -Insert into t1_u values ('b',222,99999,999.99); -Insert into t1_u values ('c',333,99999,999.99); -Insert into t1_u values ('d',222,99999,999.99); -Insert into t1_u values ('e',222,99999,999.99); -Insert into t1_u values ('f',333,99999,999.99); -Insert into t1_d values ('a',111,99999,999.99); -Insert into t1_d values ('b',222,99999,999.99); -Insert into t1_d values ('c',333,99999,999.99); -Insert into t1_d values ('d',444,99999,999.99); -Insert into t1_d values ('e',222,99999,999.99); -Insert into t1_d values ('f',222,99999,999.99); - -3.5.8.4 - multiple SQL ----------------------- -use test; -Create trigger trg1 AFTER INSERT on tb3 for each row -BEGIN -insert into db_test.t1_i -values (new.f120, new.f136, new.f144, new.f163); -update db_test.t1_u -set u144=new.f144, u163=new.f163 -where u136=new.f136; -delete from db_test.t1_d where d136= new.f136; -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; -END// -Use test; -set @test_var=0; -Insert into tb3 (f120, f122, f136, f144, f163) -values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); -Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; -f120 f122 f136 f144 f163 -1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; -i120 i136 i144 i163 -1 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; -u120 u136 u144 u163 -a 00111 0000099999 999.990000000000000000000000000000 -b 00222 0000023456 1.050000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -d 00222 0000023456 1.050000000000000000000000000000 -e 00222 0000023456 1.050000000000000000000000000000 -f 00333 0000099999 999.990000000000000000000000000000 -select * from db_test.t1_d; -d120 d136 d144 d163 -a 00111 0000099999 999.990000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -d 00444 0000099999 999.990000000000000000000000000000 -select @test_var; -@test_var -3.150000000000000000000000000000 - -3.5.8.4 - single SQL - insert ------------------------------ -Create trigger trg2 BEFORE UPDATE on tb3 for each row -insert into db_test.t1_i -values (new.f120, new.f136, new.f144, new.f163); -update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' - where f122='Test 3.5.8.4'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; -i120 i136 i144 i163 -1 00222 0000023456 1.050000000000000000000000000000 -I 00222 0000023456 1.050000000000000000000000000000 - -3.5.8.4 - single SQL - update ------------------------------ -drop trigger trg2; -Create trigger trg3 BEFORE UPDATE on tb3 for each row -update db_test.t1_u -set u120=new.f120 -where u136=new.f136; -update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' - where f122='Test 3.5.8.4-Single Insert'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; -u120 u136 u144 u163 -a 00111 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -f 00333 0000099999 999.990000000000000000000000000000 - -3.5.8.3/4 - single SQL - delete -------------------------------- -drop trigger trg3; -Create trigger trg4 AFTER UPDATE on tb3 for each row -delete from db_test.t1_d where d136= new.f136; -update tb3 set f120='D', f136=444, -f122='Test 3.5.8.4-Single Delete' - where f122='Test 3.5.8.4-Single Update'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_d; -d120 d136 d144 d163 -a 00111 0000099999 999.990000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 - -3.5.8.3/4 - single SQL - select -------------------------------- -drop trigger trg4; -Create trigger trg5 AFTER UPDATE on tb3 for each row -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; -set @test_var=0; -update tb3 set f120='S', f136=111, -f122='Test 3.5.8.4-Single Select' - where f122='Test 3.5.8.4-Single Delete'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000 -select @test_var; -@test_var -999.990000000000000000000000000000 -drop trigger trg1; -drop trigger trg5; -drop database if exists db_test; -delete from tb3 where f122 like 'Test 3.5.8.4%'; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.8.5 (IF): ----------------------- -create trigger trg2 before insert on tb3 for each row -BEGIN -IF new.f120='1' then -set @test_var='one', new.f120='2'; -ELSEIF new.f120='2' then -set @test_var='two', new.f120='3'; -ELSEIF new.f120='3' then -set @test_var='three', new.f120='4'; -END IF; -IF (new.f120='4') and (new.f136=10) then -set @test_var2='2nd if', new.f120='d'; -ELSE -set @test_var2='2nd else', new.f120='D'; -END IF; -END// -set @test_var='Empty', @test_var2=0; -Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 one 2nd else -Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 two 2nd else -D Test 3.5.8.5-if 00102 two 2nd else -Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 three 2nd if -D Test 3.5.8.5-if 00102 three 2nd if -d Test 3.5.8.5-if 00010 three 2nd if -Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 three 2nd else -D Test 3.5.8.5-if 00102 three 2nd else -d Test 3.5.8.5-if 00010 three 2nd else -D Test 3.5.8.5-if 00103 three 2nd else -create trigger trg3 before update on tb3 for each row -BEGIN -ELSEIF new.f120='2' then -END IF; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ELSEIF new.f120='2' then -END IF; -END' at line 3 -drop trigger trg3// -create trigger trg4 before update on tb3 for each row -BEGIN -IF (new.f120='4') and (new.f136=10) then -set @test_var2='2nd if', new.f120='d'; -ELSE -set @test_var2='2nd else', new.f120='D'; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7 -drop trigger trg4; -drop trigger trg2; -delete from tb3 where f121='Test 3.5.8.5-if'; - -Testcase 3.5.8.5-case: ----------------------- -create trigger trg3 before insert on tb3 for each row -BEGIN -SET new.f120=char(ascii(new.f120)-32); -CASE -when new.f136<100 then set new.f136=new.f136+120; -when new.f136<10 then set new.f144=777; -when new.f136>100 then set new.f120=new.f136-1; -END case; -CASE -when new.f136=200 then set @test_var=CONCAT(new.f120, '='); -ELSE set @test_var=concat(new.f120, '*'); -END case; -CASE new.f144 -when 1 then set @test_var=concat(@test_var, 'one'); -when 2 then set @test_var=concat(@test_var, 'two'); -when 3 then set @test_var=concat(@test_var, 'three'); -when 4 then set @test_var=concat(@test_var, 'four'); -when 5 then set @test_var=concat(@test_var, 'five'); -when 6 then set @test_var=concat(@test_var, 'six'); -when 7 then set @test_var=concat(@test_var, 'seven'); -when 8 then set @test_var=concat(@test_var, 'eight'); -when 9 then set @test_var=concat(@test_var, 'nine'); -when 10 then set @test_var=concat(@test_var, 'ten'); -when 11 then set @test_var=concat(@test_var, 'eleven'); -when 12 then set @test_var=concat(@test_var, 'twelve'); -when 13 then set @test_var=concat(@test_var, 'thirteen'); -when 14 then set @test_var=concat(@test_var, 'fourteen'); -when 15 then set @test_var=concat(@test_var, 'fifteen'); -ELSE set @test_var=CONCAT(new.f120, '*', new.f144); -END case; -END// -set @test_var='Empty'; -Insert into tb3 (f120, f122, f136, f144) -values ('a', 'Test 3.5.8.5-case', 5, 7); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 A*seven -Insert into tb3 (f120, f122, f136, f144) -values ('b', 'Test 3.5.8.5-case', 71,16); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 B*0000000016 -B Test 3.5.8.5-case 00191 0000000016 B*0000000016 -Insert into tb3 (f120, f122, f136, f144) -values ('c', 'Test 3.5.8.5-case', 80,1); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 C=one -B Test 3.5.8.5-case 00191 0000000016 C=one -C Test 3.5.8.5-case 00200 0000000001 C=one -Insert into tb3 (f120, f122, f136) -values ('d', 'Test 3.5.8.5-case', 152); -Warnings: -Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1*0000099999 -B Test 3.5.8.5-case 00191 0000000016 1*0000099999 -C Test 3.5.8.5-case 00200 0000000001 1*0000099999 -1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 -Insert into tb3 (f120, f122, f136, f144) -values ('e', 'Test 3.5.8.5-case', 200, 8); -Warnings: -Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1=eight -B Test 3.5.8.5-case 00191 0000000016 1=eight -C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -Insert into tb3 (f120, f122, f136, f144) -values ('f', 'Test 3.5.8.5-case', 100, 8); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1=eight -B Test 3.5.8.5-case 00191 0000000016 1=eight -C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -create trigger trg3a before update on tb3 for each row -BEGIN -CASE -when new.f136<100 then set new.f120='p'; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 -drop trigger trg3a; -drop trigger trg3; -delete from tb3 where f121='Test 3.5.8.5-case'; - -Testcase 3.5.8.5-loop/leave: ----------------------------- -Create trigger trg4 after insert on tb3 for each row -BEGIN -set @counter=0, @flag='Initial'; -Label1: loop -if new.f136 new.f136 END REPEAT rp_label; -END// -set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) -values ('Test 3.5.8.5-repeat', 13); -select @counter1, @counter2; -@counter1 @counter2 -15 8 -Create trigger trg6_2 after update on tb3 for each row -BEGIN -REPEAT -SET @counter2 = @counter2 + 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5 -drop trigger trg6; -delete from tb3 where f122='Test 3.5.8.5-repeat'; - -Testcase 3.5.8.5-while: ------------------------ -Create trigger trg7 after insert on tb3 for each row -wl_label: WHILE @counter1 < new.f136 DO -SET @counter1 = @counter1 + 1; -IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; -END IF; -SET @counter2 = @counter2 + 1; -END WHILE wl_label// -set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) -values ('Test 3.5.8.5-while', 7); -select @counter1, @counter2; -@counter1 @counter2 -7 4 -Create trigger trg7_2 after update on tb3 for each row -BEGIN -WHILE @counter1 < new.f136 -SET @counter1 = @counter1 + 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; -END' at line 4 -delete from tb3 where f122='Test 3.5.8.5-while'; -drop trigger trg7; - -Testcase 3.5.8.6: (requirement void) ------------------------------------- - -Testcase 3.5.8.7: (Disabled as a result of bug _____) ------------------------------------------------------ - -Testcase 3.5.9.1/2: -------------------- -Create trigger trg1 BEFORE UPDATE on tb3 for each row -set new.f142 = 94087, @counter=@counter+1; -TotalRows -19 -Affected -18 -NotAffected -1 -NewValuew -0 -set @counter=0; -Update tb3 Set f142='1' where f130<100; -select count(*) as ExpectedChanged, @counter as TrigCounter -from tb3 where f142=94087; -ExpectedChanged TrigCounter -18 18 -select count(*) as ExpectedNotChange from tb3 -where f130<100 and f142<>94087; -ExpectedNotChange -0 -select count(*) as NonExpectedChanged from tb3 -where f130>=130 and f142=94087; -NonExpectedChanged -0 -drop trigger trg1; - -Testcase 3.5.9.3: ------------------ -Create trigger trg2_a before update on tb3 for each row -set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, -@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, -@tr_var_b4_163=old.f163; -Create trigger trg2_b after update on tb3 for each row -set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, -@tr_var_af_122=old.f122, @tr_var_af_136=old.f136, -@tr_var_af_163=old.f163; -Create trigger trg2_c before delete on tb3 for each row -set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, -@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, -@tr_var_b4_163=old.f163; -Create trigger trg2_d after delete on tb3 for each row -set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, -@tr_var_af_122=old.f122, @tr_var_af_136=old.f136, -@tr_var_af_163=old.f163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -0 0 0 0 0 -Insert into tb3 (f122, f136, f163) -values ('Test 3.5.9.3', 7, 123.17); -Update tb3 Set f136=8 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; -f118 f121 f122 f136 f163 -a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -0 0 0 0 0 -delete from tb3 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; -f118 f121 f122 f136 f163 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -drop trigger trg2_a; -drop trigger trg2_b; -drop trigger trg2_c; -drop trigger trg2_d; - -Testcase 3.5.9.4: ------------------ -Create trigger trg3_a before insert on tb3 for each row -set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, -@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, -@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; -Create trigger trg3_b after insert on tb3 for each row -set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, -@tr_var_af_122=new.f122, @tr_var_af_136=new.f136, -@tr_var_af_151=new.f151, @tr_var_af_163=new.f163; -Create trigger trg3_c before update on tb3 for each row -set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, -@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, -@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; -Create trigger trg3_d after update on tb3 for each row -set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, -@tr_var_af_122=new.f122, @tr_var_af_136=new.f136, -@tr_var_af_151=new.f151, @tr_var_af_163=new.f163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -0 0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -0 0 0 0 0 0 -Insert into tb3 (f122, f136, f151, f163) -values ('Test 3.5.9.4', 7, DEFAULT, 995.24); -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4%'; -f118 f121 f122 f136 f151 f163 -a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_151, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -0 0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -0 0 0 0 0 0 -Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL -where f122='Test 3.5.9.4'; -Warnings: -Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f136' at row 20 -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4-trig'; -f118 f121 f122 f136 f151 f163 -a NULL Test 3.5.9.4-trig 00000 999 NULL -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -a NULL Test 3.5.9.4-trig 0 999 NULL -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_151, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -a NULL Test 3.5.9.4-trig 0 999 NULL -drop trigger trg3_a; -drop trigger trg3_b; -drop trigger trg3_c; -drop trigger trg3_d; -delete from tb3 where f122='Test 3.5.9.4-trig'; - -Testcase 3.5.9.5: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.6: ------------------ -create trigger trg4a before insert on tb3 for each row -set @temp1= old.f120; -ERROR HY000: There is no OLD row in on INSERT trigger -create trigger trg4b after insert on tb3 for each row -set old.f120= 'test'; -ERROR HY000: Updating of OLD row is not allowed in trigger -drop trigger trg4a; -drop trigger trg4b; - -Testcase 3.5.9.7: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.8: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.9: ------------------ -create trigger trg5a before DELETE on tb3 for each row -set @temp1=new.f122; -ERROR HY000: There is no NEW row in on DELETE trigger -create trigger trg5b after DELETE on tb3 for each row -set new.f122='test'; -ERROR HY000: There is no NEW row in on DELETE trigger -drop trigger trg5a; -drop trigger trg5b; - -Testcase 3.5.9.10: (implied in previous tests) ----------------------------------------------- - -Testcase 3.5.9.11: covered by 3.5.9.9 -------------------------------------- - -Testcase 3.5.9.12: covered by 3.5.9.6 -------------------------------------- - -Testcase 3.5.9.13: ------------------- -create trigger trg6a before UPDATE on tb3 for each row -set old.f118='C', new.f118='U'; -ERROR HY000: Updating of OLD row is not allowed in trigger -create trigger trg6b after INSERT on tb3 for each row -set old.f136=163, new.f118='U'; -ERROR HY000: Updating of OLD row is not allowed in trigger -create trigger trg6c after UPDATE on tb3 for each row -set old.f136=NULL; -ERROR HY000: Updating of OLD row is not allowed in trigger -drop trigger trg6a; -drop trigger trg6b; -drop trigger trg6c; - -Testcase 3.5.9.14: (implied in previous tests) ----------------------------------------------- - -Testcase 3.5.10.1/2/3: ----------------------- -Create view vw11 as select * from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -Create trigger trg1a before insert on tb3 -for each row set new.f163=111.11; -Create trigger trg1b after insert on tb3 -for each row set @test_var='After Insert'; -Create trigger trg1c before update on tb3 -for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update'; -Create trigger trg1d after update on tb3 -for each row set @test_var='After Update'; -Create trigger trg1e before delete on tb3 -for each row set @test_var=5; -Create trigger trg1f after delete on tb3 -for each row set @test_var= 2* @test_var+7; -Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1); -Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); -Insert into vw11 (f122, f151) values ('Not in View', 3); -select f121, f122, f151, f163 -from tb3 where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 -NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 -NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 -select f121, f122, f151, f163 -from tb3 where f122 like 'Not in View'; -f121 f122 f151 f163 -NULL Not in View 3 111.110000000000000000000000000000 -Update vw11 set f163=1; -select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 -set @test_var=0; -Select @test_var as 'before delete'; -before delete -0 -delete from vw11 where f151=1; -select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -Select @test_var as 'after delete'; -after delete -17 -drop view vw11; -drop trigger trg1a; -drop trigger trg1b; -drop trigger trg1c; -drop trigger trg1d; -drop trigger trg1e; -drop trigger trg1f; -delete from tb3 where f122 like 'Test 3.5.10.1/2/3%'; - -Testcase 3.5.10.4: ------------------- -create table tb_load (f1 int, f2 char(25),f3 int) engine=memory; -Create trigger trg4 before insert on tb_load -for each row set new.f3=-(new.f1 div 5), @counter= @counter+1; -set @counter= 0; -select @counter as 'Rows Loaded Before'; -Rows Loaded Before -0 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; -select @counter as 'Rows Loaded After'; -Rows Loaded After -10 -Select * from tb_load limit 10; -f1 f2 f3 --5000 a` 1000 --4999 aaa 999 --4998 abaa 999 --4997 acaaa 999 --4996 adaaaa 999 --4995 aeaaaaa 999 --4994 afaaaaaa 998 --4993 agaaaaaaa 998 --4992 a^aaaaaaaa 998 --4991 a_aaaaaaaaa 998 -drop trigger trg4; -drop table tb_load; - -Testcase 3.5.10.5: (implemented in trig_frkey.test) ---------------------------------------------------- - -Testcase 3.5.10.6: (implemented in trig_frkey.test) ---------------------------------------------------- - -Testcase 3.5.10.extra: ----------------------- -create table t1_sp (var136 tinyint, var151 decimal) engine=memory; -create trigger trg before insert on t1_sp -for each row set @counter=@counter+1; -create procedure trig_sp() -begin -declare done int default 0; -declare var151 decimal; -declare var136 tinyint; -declare cur1 cursor for select f136, f151 from tb3; -declare continue handler for sqlstate '01000' set done = 1; -open cur1; -fetch cur1 into var136, var151; -wl_loop: WHILE NOT done DO -insert into t1_sp values (var136, var151); -fetch cur1 into var136, var151; -END WHILE wl_loop; -close cur1; -end// -set @counter=0; -select @counter; -@counter -0 -call trig_sp(); -ERROR 02000: No data to FETCH -select @counter; -@counter -20 -select count(*) from tb3; -count(*) -20 -select count(*) from t1_sp; -count(*) -20 -drop procedure trig_sp; -drop trigger trg; -drop table t1_sp; - -Testcase 3.5.11.1 (implemented in trig_perf.test) -------------------------------------------------- -drop user test_general@localhost; -drop user test_general; -drop user test_super@localhost; - -Testcase y.y.y.2: Check for triggers starting triggers ------------------------------------------------------- -use test; -drop table if exists t1; -drop table if exists t2_1; -drop table if exists t2_2; -drop table if exists t2_3; -drop table if exists t2_4; -drop table if exists t3; -create table t1 (f1 integer); -create table t2_1 (f1 integer); -create table t2_2 (f1 integer); -create table t2_3 (f1 integer); -create table t2_4 (f1 integer); -create table t3 (f1 integer); -insert into t1 values (1); -create trigger tr1 after insert on t1 for each row -BEGIN -insert into t2_1 (f1) values (new.f1+1); -insert into t2_2 (f1) values (new.f1+1); -insert into t2_3 (f1) values (new.f1+1); -insert into t2_4 (f1) values (new.f1+1); -END// -create trigger tr2_1 after insert on t2_1 for each row -insert into t3 (f1) values (new.f1+10); -create trigger tr2_2 after insert on t2_2 for each row -insert into t3 (f1) values (new.f1+100); -create trigger tr2_3 after insert on t2_3 for each row -insert into t3 (f1) values (new.f1+1000); -create trigger tr2_4 after insert on t2_4 for each row -insert into t3 (f1) values (new.f1+10000); -insert into t1 values (1); -select * from t3; -f1 -12 -102 -1002 -10002 -drop trigger tr1; -drop trigger tr2_1; -drop trigger tr2_2; -drop trigger tr2_3; -drop trigger tr2_4; -drop table t1, t2_1, t2_2, t2_3, t2_4, t3; - -Testcase y.y.y.3: Circular trigger reference --------------------------------------------- -use test; -drop table if exists t1; -drop table if exists t2; -drop table if exists t3; -drop table if exists t4; -create table t1 (f1 integer) engine = memory; -create table t2 (f2 integer) engine = memory; -create table t3 (f3 integer) engine = memory; -create table t4 (f4 integer) engine = memory; -insert into t1 values (0); -create trigger tr1 after insert on t1 -for each row insert into t2 (f2) values (new.f1+1); -create trigger tr2 after insert on t2 -for each row insert into t3 (f3) values (new.f2+1); -create trigger tr3 after insert on t3 -for each row insert into t4 (f4) values (new.f3+1); -create trigger tr4 after insert on t4 -for each row insert into t1 (f1) values (new.f4+1); -insert into t1 values (1); -ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. -select * from t1; -f1 -0 -1 -select * from t2; -f2 -2 -select * from t3; -f3 -3 -select * from t4; -f4 -4 -drop trigger tr1; -drop trigger tr2; -drop trigger tr3; -drop trigger tr4; -drop table t1; -drop table t2; -drop table t3; -drop table t4; - -Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889) ----------------------------------------------------------------------- -set @sql_mode='traditional'; -create table t1_sp ( -count integer, -var136 tinyint, -var151 decimal) engine=memory; -create procedure trig_sp() -begin -declare done int default 0; -declare var151 decimal; -declare var136 tinyint; -declare cur1 cursor for select f136, f151 from tb3; -declare continue handler for sqlstate '01000' set done = 1; -set @counter= @counter+1; -open cur1; -fetch cur1 into var136, var151; -wl_loop: WHILE NOT done DO -insert into t1_sp values (@counter, var136, var151); -fetch cur1 into var136, var151; -END WHILE wl_loop; -close cur1; -end// -create trigger trg before insert on t1_sp -for each row call trig_sp(); -set @counter=0; -select @counter; -@counter -0 -call trig_sp(); -ERROR HY000: Recursive stored routines are not allowed. -select @counter; -@counter -1 -select count(*) from tb3; -count(*) -20 -select count(*) from t1_sp; -count(*) -0 -drop procedure trig_sp; -drop trigger trg; -drop table t1_sp; - -Testcase y.y.y.5: Roleback of nested trigger references -------------------------------------------------------- -set @@sql_mode='traditional'; -use test; -drop table if exists t1; -drop table if exists t2; -drop table if exists t3; -drop table if exists t4; -create table t1 (f1 integer) engine = memory; -create table t2 (f2 integer) engine = memory; -create table t3 (f3 integer) engine = memory; -create table t4 (f4 tinyint) engine = memory; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL -) ENGINE=MEMORY DEFAULT CHARSET=latin1 -insert into t1 values (1); -create trigger tr1 after insert on t1 -for each row insert into t2 (f2) values (new.f1+1); -create trigger tr2 after insert on t2 -for each row insert into t3 (f3) values (new.f2+1); -create trigger tr3 after insert on t3 -for each row insert into t4 (f4) values (new.f3+1000); -set autocommit=0; -start transaction; -insert into t1 values (1); -ERROR 22003: Out of range value adjusted for column 'f4' at row 1 -commit; -select * from t1; -f1 -1 -1 -select * from t2; -f2 -2 -select * from t3; -f3 -3 -drop trigger tr1; -drop trigger tr2; -drop trigger tr3; -drop table t1; -drop table t2; -drop table t3; -drop table t4; diff --git a/mysql-test/suite/funcs_1/r/memory_views.result b/mysql-test/suite/funcs_1/r/memory_views.result index 04841ff7111..cc50c8219f0 100644 --- a/mysql-test/suite/funcs_1/r/memory_views.result +++ b/mysql-test/suite/funcs_1/r/memory_views.result @@ -122,11 +122,7 @@ USE test; -------------------------------------------------------------------------------- There are some statements where the ps-protocol is switched off. -Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill --------------------------------------------------------------------------------- - -! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables +Bug#32285: mysqltest, --ps-protocol, strange output, float/double/real with zerofill -------------------------------------------------------------------------------- insert into test.tb2 (f59,f60) values (76710,226546); insert into test.tb2 (f59,f60) values(2760,985654); @@ -168,6 +164,58 @@ insert into tb2 (f59,f60,f61) values (109,108,104); INSERT INTO tb2 (f59,f60) VALUES( 299,899 ); INSERT INTO tb2 (f59,f60) VALUES( 242,79 ); INSERT INTO tb2 (f59,f60) VALUES( 424,89 ); +SELECT * FROM tb2 ORDER BY f59, f60, f61; +f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 +1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set +2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set +3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set +4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set +4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set +7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set +8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set +9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set +10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set Use test; Testcase 3.3.1.1 @@ -183,46 +231,60 @@ Insert into t1 values (500,9866); Drop view if exists v1 ; CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 where f59=250; -select * FROM v1 limit 0,10; +select * FROM v1 order by f60,f61 limit 0,10; f59 f60 f61 250 87895654 NULL Drop view if exists v1 ; CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 limit 100; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59,f60,f61 limit 0,10; f59 f60 f61 1 1 0000000001 2 2 0000000002 3 3 0000000003 4 4 0000000004 +4 74 NULL 5 5 0000000005 6 6 0000000006 7 7 0000000007 8 8 0000000008 9 9 0000000009 -10 10 0000000010 CREATE or REPLACE VIEW v1 AS select f59,f60,f61 -FROM test.tb2 limit 4,3; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59,f60,f61 limit 4,3; f59 f60 f61 +4 74 NULL 5 5 0000000005 6 6 0000000006 -7 7 0000000007 CREATE or REPLACE VIEW v1 AS select distinct f59 -FROM test.tb2 limit 4,3; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59 limit 4,3; f59 5 6 7 ALTER VIEW v1 AS select f59 -FROM test.tb2 limit 6,2; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59 limit 6,2; f59 +6 +7 +CREATE or REPLACE VIEW v1 AS select f59 +from tb2 order by f59; +select * FROM v1 order by f59 limit 0,10; +f59 +1 +2 +3 +4 +4 +5 +6 7 8 +9 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 limit 100; +from tb2 order by f59 asc; select * FROM v1 limit 0,10; f59 1 @@ -236,21 +298,7 @@ f59 8 9 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 asc limit 100; -select * FROM v1 limit 0,10; -f59 -1 -2 -3 -4 -4 -5 -6 -7 -8 -9 -CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 desc limit 100; +from tb2 order by f59 desc; select * FROM v1 limit 0,10; f59 569300 @@ -264,8 +312,8 @@ f59 987 660 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -278,8 +326,8 @@ f59 9 10 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 asc limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59 asc; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -292,22 +340,22 @@ f59 9 10 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 desc limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59 desc; +select * FROM v1 order by f59 limit 0,10; f59 -569300 -76710 -9112 -7876 -3410 -3330 -2760 -2550 -987 -660 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 CREATE or REPLACE VIEW v1 AS (select f59 from tb2) -union (select f59 from t1) limit 100; -select * FROM v1 limit 0,10; +union (select f59 from t1); +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -321,7 +369,7 @@ f59 10 CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION DISTINCT(select f59 FROM t1) ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -335,103 +383,3101 @@ f59 10 CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION ALL(select f59 FROM t1) ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59 limit 0,10; f59 1 2 3 4 +4 5 6 7 8 9 -10 CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH LOCAL CHECK OPTION ; -select * FROM v1 limit 0,50; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH CASCADED CHECK OPTION ; -select * FROM v1 limit 0,10; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 WITH CASCADED CHECK OPTION; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; F59 F60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 -10 10 CREATE or REPLACE VIEW v1 AS select f59, f60 from test.tb2 where f59=3330 ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f60 limit 0,10; f59 f60 3330 764376 DROP VIEW v1 ; @@ -494,8 +3540,8 @@ DROP VIEW v1; Testcase 3.3.1.3 + 3.1.1.4 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or REPLACE AS Select * from tb2 my_table limit 50' at line 1 +CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or REPLACE AS Select * from tb2 my_table' at line 1 CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select * from tb2 my_table limit 50; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH CASCADED CHECK OPTION AS Select * @@ -504,8 +3550,8 @@ CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select * from tb2 my_table limit 50; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LOCAL CHECK OPTION AS Select * from tb2 my_table limit 50' at line 1 -SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE VIEW As v1 limit 100' at line 1 +SELECT * FROM tb2 my_table CREATE VIEW As v1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE VIEW As v1' at line 1 CREATE or REPLACE VIEW v1 Select f59, f60 from test.tb2 my_table where f59 = 250 ; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Select f59, f60 @@ -580,8 +3626,8 @@ Union ALL (Select from f1 t1); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from f59 tb2) Union ALL (Select from f1 t1)' at line 1 CREATE or REPLACE view v1 as Select f59, f60 -from tb2 by order f59 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by order f59 limit 100' at line 2 +from tb2 by order f59; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by order f59' at line 2 CREATE or REPLACE view v1 as Select f59, f60 from tb2 by group f59 ; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by group f59' at line 2 @@ -589,12 +3635,12 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp Testcase 3.3.1.5 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -CREATE VIEW v1 SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM tb2 limit 100' at line 1 -CREATE v1 AS SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'v1 AS SELECT * FROM tb2 limit 100' at line 1 -VIEW v1 AS SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 AS SELECT * FROM tb2 limit 100' at line 1 +CREATE VIEW v1 SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM tb2' at line 1 +CREATE v1 AS SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'v1 AS SELECT * FROM tb2' at line 1 +VIEW v1 AS SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 AS SELECT * FROM tb2' at line 1 CREATE VIEW v1 AS SELECT 1; DROP VIEW v1; VIEW v1 AS SELECT 1; @@ -612,45 +3658,43 @@ Testcase 3.3.1.6 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; CREATE or REPLACE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = MERGE VIEW v1 -as SELECT * from tb2 limit 100 ; -Warnings: -Warning 1354 View merge algorithm can't be used here for now (assumed undefined algorithm) +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM = VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE = ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE - ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 Drop view if exists v1 ; CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1; @@ -676,7 +3720,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp Testcase 3.3.1.7 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -Create view test.v1 AS Select * from test.tb2 limit 100 ; +Create view test.v1 AS Select * from test.tb2; Alter view test.v1 AS Select F59 from test. tb2 limit 100 ; Drop view test.v1 ; Create view v1 AS Select * from test.tb2 limit 100 ; @@ -875,60 +3919,159 @@ v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI SELECT * FROM test.v1; f1 1 -CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2; +CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2; SHOW CREATE VIEW test.v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` limit 2 -SELECT * FROM test.v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100; +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109` from `tb2` order by `tb2`.`f59` limit 2 +SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2; SHOW CREATE VIEW test.v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100 -SELECT * FROM test.v1; +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` +SELECT * FROM test.v1 order by F59 limit 10,100; F59 -76710 -2760 -569300 -660 -250 -340 -3410 -2550 -3330 -441 -24 -323 -34 -4 +10 15 -22 -394 -94 -195 -292 -987 -7876 -321 -9112 -500 -500 -500 -107 -109 -207 -209 -27 -29 17 19 +22 +24 +27 +29 +34 +94 +107 107 109 -299 +109 +195 +207 +209 242 +250 +292 +299 +321 +323 +340 +394 424 +441 +500 +500 +500 +660 +987 +2550 +2760 +3330 +3410 +7876 +9112 +76710 +569300 Drop table test.t1 ; Drop view test.v1 ; @@ -942,11 +4085,59 @@ ERROR HY000: 'test.tb2' is not VIEW Testcase 3.3.1.15 -------------------------------------------------------------------------------- Drop table if exists test.v1 ; -CREATE OR REPLACE view test.v1 as select * from tb2 LIMIT 2; +CREATE OR REPLACE view test.v1 as select * from tb2; SELECT * FROM test.v1; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set +10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set 2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set +207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set +321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set +4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set +660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set +76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set +9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set +9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set Drop view test.v1 ; Testcase 3.3.1.16 + 3.3.1.17 @@ -1079,8 +4270,8 @@ ERROR HY000: View's SELECT and view's field list have different column counts Testcase 3.3.1.21 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2; -SELECT * FROM test.v1; +CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2; +SELECT * FROM test.v1 order by F59, F60 desc LIMIT 2; F59 F60 1 1 2 2 @@ -1089,7 +4280,7 @@ Drop view if exists test.v1 ; Testcase 3.3.1.22 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 LIMIT 2; +CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 WHERE f59 < 3; SELECT * FROM test.v1; product 1 @@ -1176,20 +4367,68 @@ DROP TEMPORARY TABLE t2; Testcase 3.3.1.26 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; Select * from test.v1; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set +10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set 2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set +207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set +321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set +4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set +660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set +76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set +9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set +9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set Drop view test.v1 ; Testcase 3.3.1.27 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS test.v1; Drop VIEW IF EXISTS test.v1_1 ; -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; Create view test.v1_1 AS Select F59 from test.v1 ; -Select * from test.v1_1 limit 20 ; +Select * from test.v1_1 order by F59 limit 2; F59 1 2 @@ -1203,58 +4442,2557 @@ create database test2 ; Create view test2.v2 AS Select * from test.tb2 limit 50,50; use test2 ; Create view v1 AS Select * from test.tb2 limit 50 ; -Select * from v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +Select * from v1 order by f59,f60,f61,f62,f63,f64,f65; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set Select * from test2.v2 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 Drop view if exists test2.v1 ; @@ -1317,18 +7055,18 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view if exists test.v1_firstview ; Drop view if exists test.v1_secondview ; Drop view if exists test.v1 ; @@ -1346,18 +7084,18 @@ CREATE VIEW v1 AS SELECT test.v1_firstview.F59, test.v1_firstview.F60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; F59 F60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view v1 ; Drop view test.v1_firstview ; Drop view test.v1_secondview ; @@ -1372,18 +7110,18 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.tb2 ON test.v1_firstview.f59 = test.tb2.f59; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view test.v1 ; Drop view test.v1_firstview; @@ -1396,18 +7134,18 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ; CREATE VIEW v1 AS SELECT v1_firstview.f59, v1_firstview.f60 FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop database test2 ; Testcase 3.3.1.37 @@ -1419,18 +7157,18 @@ Drop view if exists test.v1_1 ; Drop view if exists test.v1_1 ; Drop view if exists test.v1_main ; Create view test.v1 as Select f59, f60 FROM test.tb2; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 -10 10 Create table t1(f59 int, f60 int); Insert into t1 values (90,507) ; Create view v1_1 as Select f59,f60 from t1 ; @@ -1440,18 +7178,18 @@ f59 f60 Create view v1_main as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1 ON test.tb2.f59 = test.v1.f59; -Select * from v1_main limit 0,10; +Select * from v1_main order by f59 limit 0,10; f59 1 2 3 4 4 +4 +4 5 6 7 -8 -9 Drop table t1; Drop view test.v1 ; Drop view test.v1_1 ; @@ -1736,29 +7474,29 @@ Drop view if exists test.v1 ; Drop view if exists test.v1_main; Drop view if exists test1.v1_1 ; Drop database if exists test3 ; -Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ; -Select * from test.v1 ; +Create view test.v1 as Select f59, f60 FROM test.tb2; +Select * from test.v1 order by f59,f60 limit 20; f59 f60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 10 10 -76710 226546 -2760 985654 -569300 9114376 -660 876546 -250 87895654 -340 9984376 -3410 996546 -2550 775654 -3330 764376 -441 16546 +15 87 +17 15 +19 18 +22 93 +24 51654 +27 25 +29 28 +34 41 +94 74 Create table test1.t1 (f59 int,f60 int) ; Insert into test1.t1 values (199,507) ; Create view test1.v1_1 as Select f59,f60 from test1.t1 ; @@ -1791,7 +7529,7 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS Select f59 from (Select * FROM tb2 limit 20) tx ; ERROR HY000: View's SELECT contains a subquery in the FROM clause -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; ERROR 42S02: Table 'test.v1' doesn't exist Drop view if exists test.v1 ; @@ -1845,12 +7583,110 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2; INSERT INTO test.v1 values(122,432); SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -122 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 122 +f60 432 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ; SELECT * FROM test.tb2 where f59 = 3000 limit 0,20; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -3000 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 3000 +f60 432 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set DELETE FROM test.v1 where test.v1.f59 = 3000 and test.v1.f60 = 432; SELECT * FROM test.tb2 where f59 = 3000 and f60 = 432; @@ -1872,20 +7708,218 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04; UPDATE test.v1 SET f59 = 30 where F59 = 04 ; affected rows: 2 info: Rows matched: 2 Changed: 2 Warnings: 0 -SELECT * FROM test.v1 where f59 = 30 ; +SELECT * FROM test.v1 where f59 = 30 order by f59; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 SELECT * FROM test.tb2 where f59 = 30 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -30 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -30 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 30 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 30 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set UPDATE tb2 SET f59 = 100 where f59 = 30 ; affected rows: 2 info: Rows matched: 2 Changed: 2 Warnings: 0 SELECT * FROM tb2 where f59 = 100 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -SELECT * FROM test.v1 ; +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +SELECT * FROM test.v1 order by f59 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 drop view if exists test.v1 ; Drop TABLE IF EXISTS test.t1 ; @@ -1962,7 +7996,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 where f59 = 195 WITH CHECK OPTION ; UPDATE test.v1 SET f59 = 198 where f59=195 ; ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; f59 f60 195 87 drop view if exists test.v1 ; @@ -1976,7 +8010,7 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ; CREATE VIEW test.v2 as SELECT * FROM test.v1 ; UPDATE test.v1 SET F59 = 919 where f59 = 0987 ; ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; f59 f60 987 41 UPDATE test.v2 SET F59 = 9879 where f59 = 919 ; @@ -1992,12 +8026,12 @@ DROP VIEW IF EXISTS test.v1; CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER) ENGINE = memory; INSERT INTO t1 VALUES ('A', 1); -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 A 1 CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2 WITH CASCADED CHECK OPTION ; -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 1 UPDATE v1 SET f2 = 2 WHERE f2 = 1; @@ -2005,7 +8039,7 @@ affected rows: 1 info: Rows matched: 1 Changed: 1 Warnings: 0 INSERT INTO v1 VALUES('B',2); affected rows: 1 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 2 B 2 @@ -2013,7 +8047,7 @@ UPDATE v1 SET f2 = 4; ERROR HY000: CHECK OPTION failed 'test.v1' INSERT INTO v1 VALUES('B',3); ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 2 B 2 @@ -9649,8 +15683,8 @@ WHERE v3_to_v1_options LIKE ' %' AND errno <> 0 ORDER BY v3_to_v1_options; v3_to_v1_options statement v3_to_v1_violation errno SELECT * FROM t1_results -WHERE v3_to_v1_options LIKE 'WITH %' -AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0 +WHERE v3_to_v1_options LIKE 'WITH %' + AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0 ORDER BY v3_to_v1_options; v3_to_v1_options statement v3_to_v1_violation errno SELECT * FROM t1_results @@ -9670,116 +15704,5189 @@ DROP TABLE t1_results; Testcase 3.3.1.50 - 3.3.1.53 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS test.v1; -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ; -SELECT * FROM test.v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set +CREATE VIEW test.v1 AS SELECT * FROM test.tb2; +SELECT * FROM test.v1 order by f59,f60,f61 ; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ; -SELECT * FROM test.v1 ; +CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2; +SELECT * FROM test.v1 order by F59, F61 limit 50; F59 F61 1 0000000001 2 0000000002 3 0000000003 -100 0000000004 5 0000000005 6 0000000006 7 0000000007 8 0000000008 9 0000000009 10 0000000010 -76710 NULL -2760 NULL -569300 NULL -660 NULL -250 NULL -340 NULL -3410 NULL -2550 NULL -3330 NULL -441 NULL -24 NULL -323 NULL -34 NULL -100 NULL 15 NULL -22 NULL -394 NULL -94 NULL -195 NULL -292 NULL -987 NULL -7876 NULL -321 0000000765 -9112 0000008771 -500 0000000900 -500 0000000900 -500 0000000900 -107 0000000106 -109 0000000104 -207 0000000206 -209 0000000204 -27 0000000026 -29 0000000024 17 0000000016 19 0000000014 +22 NULL +24 NULL +27 0000000026 +29 0000000024 +34 NULL +94 NULL +100 NULL +100 0000000004 +107 0000000106 107 0000000106 109 0000000104 -299 NULL +109 0000000104 +195 NULL +207 0000000206 +209 0000000204 242 NULL +250 NULL +292 NULL +299 NULL +321 0000000765 +323 NULL +340 NULL +394 NULL 424 NULL +441 NULL +500 0000000900 +500 0000000900 +500 0000000900 +660 NULL +987 NULL +2550 NULL +2760 NULL +3330 NULL +3410 NULL +7876 NULL +9112 0000008771 +76710 NULL +569300 NULL drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ; -SELECT * FROM test.v1; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61; +SELECT * FROM test.v1 order by f59,f60,f61 ; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ; -SELECT * FROM test.v1 limit 50; +CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2; +SELECT * FROM test.v1 order by f59,f61 desc limit 20; F59 f61 1 0000000001 2 0000000002 3 0000000003 -100 0000000004 5 0000000005 6 0000000006 7 0000000007 8 0000000008 9 0000000009 10 0000000010 -76710 NULL -2760 NULL -569300 NULL -660 NULL -250 NULL -340 NULL -3410 NULL -2550 NULL -3330 NULL -441 NULL +15 NULL +17 0000000016 +19 0000000014 +22 NULL +24 NULL +27 0000000026 +29 0000000024 +34 NULL +94 NULL +100 0000000004 +100 NULL drop view test.v1 ; Testcase 3.3.1.54 @@ -9798,7 +20905,7 @@ Insert into t2 values (2,2000) ; Insert into t2 values (31,97) ; Create view test.v1 as select t1.f59, t1.f60 from t1,t2 where t1.f59=t2.f59 ; -Select * from test.v1 limit 50 ; +Select * from test.v1 order by f59 limit 50 ; f59 f60 1 10 2 20 @@ -9871,7 +20978,7 @@ create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 from t1 inner join t2 where t1.f59 = t2.f59 ; -select * from test.v1; +select * from test.v1 order by t1_f59 ; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 2 2 double double 6 6 3 3 single-f3 single-f3 4 6 @@ -9884,7 +20991,7 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 Create or replace view test.v1 as Select t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2 cross join t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; t1_f59 t2_f59 1 2 1 3 @@ -9910,7 +21017,7 @@ t1_f59 t2_f59 Create or replace view test.v1 as Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2,t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; t1_f59 t2_f59 1 2 1 3 @@ -9936,7 +21043,7 @@ t1_f59 t2_f59 Create or replace view test.v1 as Select f59, f60, f61, a, b FROM t2 natural join t1; -Select * from v1; +Select * from v1 order by f59; f59 f60 f61 a b 2 double 6 2 2 Select f59, f60, f61, a, b @@ -9947,11 +21054,11 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 +NULL 4 NULL single NULL 4 2 2 double double 6 6 3 3 single-f3 single-f3 4 6 -NULL 4 NULL single NULL 4 Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; @@ -9962,7 +21069,7 @@ NULL 4 NULL single NULL 4 Create or replace view test.v1 as Select f59, f60, f61, t1.a, t2.b FROM t2 natural left outer join t1; -Select * from v1; +Select * from v1 order by f59; f59 f60 f61 a b 2 double 6 2 2 3 single-f3 6 NULL 3 @@ -9977,7 +21084,7 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 right outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 1 NULL single NULL 3 NULL 2 2 double double 6 6 @@ -9992,11 +21099,11 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 Create or replace view test.v1 as Select f59, f60, a, b FROM t2 natural right outer join t1; -Select * from v1; +Select * from v1 order by f59 desc; f59 f60 a b -1 single 1 NULL -2 double 2 2 3 single-f3 3 NULL +2 double 2 2 +1 single 1 NULL Select f59, f60, a, b FROM t2 natural right outer join t1; f59 f60 a b @@ -10017,18 +21124,18 @@ Insert into t1 values (107,501,601) ; Insert into t1 values (901,801,401) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 1 2 3 -100 5 6 7 8 9 10 +15 Drop view if exists test.v1 ; Drop table if exists t1 ; Drop view if exists v1; @@ -10038,7 +21145,7 @@ Insert into t1 values (207,201,201) ; Insert into t1 values (201,201,201) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 207 Drop view if exists test.v1 ; @@ -10050,7 +21157,7 @@ Insert into t1 values (27,21,21) ; Insert into t1 values (21,21,21) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 27 Drop view test.v1 ; @@ -10065,18 +21172,18 @@ Insert into t1 values (17,51,61) ; Insert into t1 values (91,81,41) ; Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union ALL (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 17 Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union Distinct (Select f59 from t1 where f60=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 Drop view test.v1 ; @@ -10088,7 +21195,7 @@ insert into t1 values (107,501,601); insert into t1 values (901,801,401); create or replace view test.v1 as select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59; -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 107 @@ -10096,7 +21203,7 @@ create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union all (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 107 @@ -10105,14 +21212,14 @@ create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union distinct (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 drop view if exists test.v1 ; @@ -10123,15 +21230,64 @@ Testcase 3.3.1.64 Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT F59 FROM test.tb2 where test.tb2.F59 = 109; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59 limit 0,10; F59 109 109 ALTER VIEW test.v1 AS SELECT * FROM test.tb2 WHERE test.tb2.f59 = 242 ; -SELECT * FROM test.v1 limit 0,10; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +SELECT * FROM test.v1 order by f59 limit 0,10; +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set Drop view test.v1 ; Testcase 3.3.1.65, 3.3.1.A4, 3.3.1.66, 3.3.1.67 @@ -10276,15 +21432,13 @@ ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or functi EXPLAIN SELECT * FROM test3.v32; ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -FIXME - Setting join_limit to 30 - hangs for higher values +FIXME - Setting join_limit to 28 - hangs for higher values ---------------------------------------------------------- -SET @join_limit = 30; +SET @join_limit = 28; SET @max_level = @join_limit - 1; DROP DATABASE IF EXISTS test3; DROP TABLE IF EXISTS test1.t1; DROP TABLE IF EXISTS test2.t1; -DROP VIEW IF EXISTS test1.v29; -DROP VIEW IF EXISTS test1.v28; DROP VIEW IF EXISTS test1.v27; DROP VIEW IF EXISTS test1.v26; DROP VIEW IF EXISTS test1.v25; @@ -10391,15 +21545,11 @@ CREATE OR REPLACE VIEW test1.v26 AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v25 tab2; CREATE OR REPLACE VIEW test1.v27 AS SELECT f1, f2 FROM test1.t1 tab1 NATURAL JOIN test1.v26 tab2; -CREATE OR REPLACE VIEW test1.v28 AS SELECT f1, f2 -FROM test2.t1 tab1 NATURAL JOIN test1.v27 tab2; -CREATE OR REPLACE VIEW test1.v29 AS SELECT f1, f2 -FROM test3.t1 tab1 NATURAL JOIN test1.v28 tab2; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; View Create View -v29 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v29` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v28` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) +v27 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v27` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test1`.`t1` `tab1` join `test1`.`v26` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; f1 f2 5 five @@ -10408,14 +21558,14 @@ differs on some platforms FIXME Is this a bug ? -------------------------------------------------------------------------------- EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; -CREATE VIEW test1.v30 AS SELECT f1, f2 -FROM test3.t1 tab1 NATURAL JOIN test1.v29 tab2; -SHOW CREATE VIEW test1.v30; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; +CREATE VIEW test1.v28 AS SELECT f1, f2 +FROM test3.t1 tab1 NATURAL JOIN test1.v27 tab2; +SHOW CREATE VIEW test1.v28; View Create View -v30 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v30` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v29` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) +v28 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test1`.`v28` AS select `tab1`.`f1` AS `f1`,`tab1`.`f2` AS `f2` from (`test3`.`t1` `tab1` join `test1`.`v27` `tab2` on(((`tab1`.`f1` = `tab2`.`f1`) and (`tab1`.`f2` = `tab2`.`f2`)))) SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v30; +CAST(f2 AS CHAR) AS f2 FROM test1.v28; f1 f2 5 five @@ -10424,33 +21574,31 @@ differs on some platforms FIXME Is this a bug ? -------------------------------------------------------------------------------- EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v30; -DROP VIEW IF EXISTS test1.v30; -CREATE OR REPLACE VIEW test1.v0 AS +CAST(f2 AS CHAR) AS f2 FROM test1.v28; +DROP VIEW IF EXISTS test1.v28; +CREATE OR REPLACE VIEW test1.v0 AS SELECT f1 as f2, f2 as f1 FROM test2.t1; -CREATE OR REPLACE VIEW test2.v0 AS +CREATE OR REPLACE VIEW test2.v0 AS SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; CREATE OR REPLACE VIEW test3.v0 AS SELECT f1 , CONVERT('ßÄäÖöÜü§' USING UCS2) as f2 FROM test1.t1; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; CREATE OR REPLACE VIEW test3.v0 AS SELECT CONVERT('ßÄäÖöÜü§' USING UCS2) as f1, f2 FROM test1.t1; -SHOW CREATE VIEW test1.v29; +SHOW CREATE VIEW test1.v27; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, -CAST(f2 AS CHAR) AS f2 FROM test1.v29; -DROP VIEW IF EXISTS test1.v29; -DROP VIEW IF EXISTS test1.v28; +CAST(f2 AS CHAR) AS f2 FROM test1.v27; DROP VIEW IF EXISTS test1.v27; DROP VIEW IF EXISTS test1.v26; DROP VIEW IF EXISTS test1.v25; @@ -10502,8 +21650,57 @@ Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ; INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ; affected rows: 1 SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -2005 101 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set +f59 2005 +f60 101 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set SELECT f59,f60 FROM test.v1 where f59 = 2005 and f60 = 0101 ; f59 f60 2005 101 @@ -10519,9 +21716,58 @@ UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105; affected rows: 1 info: Rows matched: 1 Changed: 1 Warnings: 0 SELECT * FROM tb2 where f59 = 8 and f60 = 105; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -8 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105; +f59 8 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ; f59 f60 8 105 Drop view test.v1 ; @@ -10535,12 +21781,211 @@ UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ; affected rows: 4 info: Rows matched: 4 Changed: 4 Warnings: 0 SELECT * FROM tb2 where f59 = 891 and f60 = 105; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set -SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105; +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ; f59 f60 891 105 891 105 @@ -10557,7 +22002,7 @@ DELETE FROM test.v1 where f59 = 789 ; affected rows: 1 SELECT * FROM tb2 where f59 = 789 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -SELECT f59,f60 FROM test.v1 where f59 = 789; +SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ; f59 f60 Drop view test.v1 ; @@ -10570,7 +22015,7 @@ DELETE FROM test.v1 where f59 = 711 ; affected rows: 1 SELECT * FROM tb2 where f59 = 711 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 -SELECT f59,f60 FROM test.v1 where f59 = 711; +SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ; f59 f60 Drop view test.v1 ; @@ -10888,17 +22333,13 @@ SET @variant4= 'CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61'; SET @variant5= 'CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0'; SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1'; SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2'; - -Some server responses suffer from -Bug#10773 Incorrect message is displayed while updating a view --------------------------------------------------------------------------------- SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)'; SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1'; CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10906,7 +22347,7 @@ CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1); INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10914,7 +22355,7 @@ CREATE VIEW v1 AS SELECT f61 FROM v2; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10922,7 +22363,7 @@ CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10930,7 +22371,7 @@ CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10938,7 +22379,7 @@ CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10946,7 +22387,7 @@ CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10954,7 +22395,7 @@ CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10962,7 +22403,7 @@ CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10992,11 +22433,11 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(5) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11016,12 +22457,12 @@ f4x char(5) YES NULL report char(10) YES NULL DESCRIBE v1; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4x report -1 NULL ABC t1 0 -1 NULL ABC v1 0 0 NULL ABC t1 1 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5); ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(10); @@ -11039,14 +22480,14 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(10) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 0 NULL ABC t1 1 2 NULL <-- 10 --> t1 2 2 NULL <-- 10 --> v1 2 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11075,7 +22516,7 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(8) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11084,7 +22525,7 @@ f1 f2 f4 report 2 NULL <-- 10 - v1 2 3 NULL <-- 10 - t1 3 3 NULL <-- 10 - v1 3 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11108,7 +22549,7 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11119,7 +22560,7 @@ f1 f2 f4 report 3 NULL <-- 10 - v1 3 4 NULL <------ 20 --------> t1 4 4 NULL <------ 20 --------> v1 4 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11131,9 +22572,9 @@ f1 f2 f4 report 4 NULL <------ 20 --------> t1 4 4 NULL <------ 20 --------> v1 4 ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30); -INSERT INTO t1 SET f1 = '<------------- 30 ----------->', +INSERT INTO t1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 't1 5'; -INSERT INTO v1 SET f1 = '<------------- 30 ----------->', +INSERT INTO v1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 'v1 5'; DESCRIBE t1; Field Type Null Key Default Extra @@ -11147,7 +22588,7 @@ f1 varchar(30) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11160,7 +22601,7 @@ f1 f2 f4 report 4 NULL <------ 20 --------> v1 4 <------------- 30 -----------> NULL <------ 20 --------> t1 5 <------------- 30 -----------> NULL <------ 20 --------> v1 5 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11184,7 +22625,7 @@ f4 varchar(20) YES NULL report char(10) YES NULL DESCRIBE v1; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report -1 ABC t1 0 -1 ABC v1 0 @@ -11198,7 +22639,7 @@ f1 f4 report <------------- 30 -----------> <------ 20 --------> t1 5 <------------- 30 -----------> <------ 20 --------> v1 5 ABC <------ 20 --------> t1 6 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL; INSERT INTO t1 SET f1 = 'ABC', f2 = '1500-12-04', @@ -11217,7 +22658,7 @@ f1 varchar(30) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 -1 ABC t1 0 NULL -1 ABC v1 0 NULL @@ -11233,7 +22674,7 @@ f1 f4 report f2 ABC <------ 20 --------> t1 6 NULL ABC <------ 20 --------> t1 7 1500-12-04 ABC <------ 20 --------> v1 7 1500-12-04 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11267,7 +22708,7 @@ f1 varchar(30) YES NULL f2 float YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 -1 ABC t1 0 NULL -1 ABC v1 0 NULL @@ -11282,10 +22723,10 @@ f1 f4 report f2 <------------- 30 -----------> <------ 20 --------> v1 5 NULL ABC <------ 20 --------> t1 6 NULL ABC <------ 20 --------> t1 7 NULL -ABC <------ 20 --------> v1 7 NULL ABC <------ 20 --------> t1 8 -0.00033 +ABC <------ 20 --------> v1 7 NULL ABC <------ 20 --------> v1 8 -0.00033 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11300,8 +22741,8 @@ f1 f2 f4 report <------------- 30 -----------> NULL <------ 20 --------> v1 5 ABC NULL <------ 20 --------> t1 6 ABC NULL <------ 20 --------> t1 7 -ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> t1 8 +ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> v1 8 ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2); INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4, @@ -11324,7 +22765,7 @@ f1 varchar(30) YES NULL f2 float YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 f3 -1 ABC t1 0 NULL NULL -1 ABC v1 0 NULL NULL @@ -11339,12 +22780,12 @@ f1 f4 report f2 f3 <------------- 30 -----------> <------ 20 --------> v1 5 NULL NULL ABC <------ 20 --------> t1 6 NULL NULL ABC <------ 20 --------> t1 7 NULL NULL -ABC <------ 20 --------> v1 7 NULL NULL ABC <------ 20 --------> t1 8 -0.00033 NULL -ABC <------ 20 --------> v1 8 -0.00033 NULL ABC <------ 20 --------> t1 9 -0.00033 -2.20 +ABC <------ 20 --------> v1 7 NULL NULL +ABC <------ 20 --------> v1 8 -0.00033 NULL ABC <------ 20 --------> v1 9a -0.00033 NULL -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11359,10 +22800,10 @@ f1 f2 f4 report <------------- 30 -----------> NULL <------ 20 --------> v1 5 ABC NULL <------ 20 --------> t1 6 ABC NULL <------ 20 --------> t1 7 -ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> t1 8 -ABC -0.00033 <------ 20 --------> v1 8 ABC -0.00033 <------ 20 --------> t1 9 +ABC NULL <------ 20 --------> v1 7 +ABC -0.00033 <------ 20 --------> v1 8 ABC -0.00033 <------ 20 --------> v1 9a DROP TABLE t1; DROP VIEW v1; @@ -11377,10 +22818,10 @@ DESCRIBE v1; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 ABC 3 -SELECT * FROM v1; +SELECT * FROM v1 order by 2; f1 my_sqrt ABC 1.7320508075689 ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30); @@ -11393,21 +22834,21 @@ DESCRIBE v1; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 ABC 3 ABC DEF -SELECT * FROM v1; +SELECT * FROM v1 order by 2; f1 my_sqrt -ABC 1.7320508075689 ABC 0 +ABC 1.7320508075689 SELECT SQRT('DEF'); SQRT('DEF') 0 Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'DEF' CREATE VIEW v2 AS SELECT SQRT('DEF'); -SELECT * FROM v2; +SELECT * FROM v2 order by 1; SQRT('DEF') 0 Warnings: @@ -11417,27 +22858,30 @@ DESCRIBE v2; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM v2; +SELECT * FROM v2 order by 2; f1 my_sqrt +ABC 0 ABC 1.7320508075689 -ABC 0 CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v1; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v2; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t1; DROP TABLE t2; DROP VIEW v1; diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result old mode 100755 new mode 100644 diff --git a/mysql-test/suite/funcs_1/r/myisam_triggers.result b/mysql-test/suite/funcs_1/r/myisam_triggers.result deleted file mode 100644 index 4641fd5f291..00000000000 --- a/mysql-test/suite/funcs_1/r/myisam_triggers.result +++ /dev/null @@ -1,2266 +0,0 @@ -SET @NO_REFRESH = IF( '' = '', 0, 1); -USE test; -drop table if exists tb3 ; -create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) -) Engine = myisam; -Warnings: -Note 1265 Data truncated for column 'f150' at row 1 -Note 1265 Data truncated for column 'f151' at row 1 -Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; - -Testcase: 3.5: --------------- -create User test_general@localhost; -set password for test_general@localhost = password('PWD'); -revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost; -create User test_super@localhost; -set password for test_super@localhost = password('PWD'); -grant ALL on *.* to test_super@localhost with grant OPTION; -connect(localhost,test_general,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_super,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); - -Testcase: 3.5.1.1: ------------------- -use test; -Create trigger trg1_1 BEFORE INSERT -on tb3 for each row set @test_before = 2, new.f142 = @test_before; -Create trigger trg1_2 AFTER INSERT -on tb3 for each row set @test_after = 6; -Create trigger trg1_4 BEFORE UPDATE -on tb3 for each row set @test_before = 27, -new.f142 = @test_before, -new.f122 = 'Before Update Trigger'; -Create trigger trg1_3 AFTER UPDATE -on tb3 for each row set @test_after = '15'; -Create trigger trg1_5 BEFORE DELETE on tb3 for each row -select count(*) into @test_before from tb3 as tr_tb3 -where f121 = 'Test 3.5.1.1'; -Create trigger trg1_6 AFTER DELETE on tb3 for each row -select count(*) into @test_after from tb3 as tr_tb3 -where f121 = 'Test 3.5.1.1'; -set @test_before = 1; -set @test_after = 5; -select @test_before, @test_after; -@test_before @test_after -1 5 -Insert into tb3 (f121, f122, f142, f144, f134) -values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 First Row 2 0000000005 1 -select @test_before, @test_after; -@test_before @test_after -2 6 -set @test_before = 18; -set @test_after = 8; -select @test_before, @test_after; -@test_before @test_after -18 8 -Update tb3 set tb3.f122 = 'Update', -tb3.f142 = @test_before, -tb3.f144 = @test_after -where tb3.f121 = 'Test 3.5.1.1'; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -select @test_before, @test_after; -@test_before @test_after -27 15 -Insert into tb3 (f121, f122, f142, f144, f134) -values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); -set @test_before = 0; -set @test_after = 0; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -Test 3.5.1.1 Second Row 2 0000000006 2 -select @test_before, @test_after; -@test_before @test_after -0 0 -Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2; -select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; -f121 f122 f142 f144 f134 -Test 3.5.1.1 Before Update Trigger 27 0000000008 1 -select @test_before, @test_after; -@test_before @test_after -2 1 -drop trigger trg1_1; -drop trigger trg1_2; -drop trigger trg1_3; -drop trigger trg1_4; -drop trigger trg1_5; -drop trigger trg1_6; -delete from tb3 where f121='Test 3.5.1.1'; - -Testcase: 3.5.1.2: ------------------- -Create trigger trg_1 after insert -on tb3 for each statement set @x= 1; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statement set @x= 1' at line 2 -drop trigger trg_1; - -Testcase 3.5.1.3: ------------------ -CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1 -CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1 -CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set @ret1 = 'test' for each row' at line 1 -CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1 -CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1 -drop trigger trg3_1; -drop trigger trg3_2; -drop trigger trg3_3; -drop trigger trg3_4; -drop trigger trg3_5; - -Testcase: 3.5.1.5: ------------------- -CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 for each row set new.f120 = 'e'' at line 1 -CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1 -CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tb3 for each row set new.f120 = 'g'' at line 1 -CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set new.f120 = 'g'' at line 1 -CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1 -CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row set new.f120 = 'g'' at line 1 -drop trigger trg4_1; -drop trigger trg4_2; -drop trigger trg4_3; -drop trigger trg4_4; -drop trigger trg4_5; -drop trigger trg4_6; - -Testcase 3.5.1.6: - Need to fix -------------------------------- - -Testcase 3.5.1.7: - need to fix -------------------------------- -drop table if exists t1; -Warnings: -Note 1051 Unknown table 't1' -create table t1 (f1 int, f2 char(25),f3 int) engine=myisam; -CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 -for each row set new.f3 = '14'; -CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ -BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; -insert into t1 (f2) values ('insert 3.5.1.7'); -select * from t1; -f1 f2 f3 -NULL insert 3.5.1.7 14 -update t1 set f2='update 3.5.1.7'; -select * from t1; -f1 f2 f3 -NULL update 3.5.1.7 42 -select trigger_name from information_schema.triggers; -trigger_name -trg5_1 -trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX -drop trigger trg5_1; -drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ; -drop table t1; - -Testcase 3.5.1.8: ------------------ -CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '100 before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@name before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 -for each row set new.f120 ='X'; -ERROR HY000: Trigger in wrong schema -drop database if exists trig_db; -create database trig_db; -use trig_db; -create table t1 (f1 integer) engine = myisam; -use test; -CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 -for each row set @ret_trg6_2 = 5; -ERROR HY000: Trigger in wrong schema -use trig_db; -CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 -for each row set @ret_trg6_3 = 18; -ERROR HY000: Trigger in wrong schema -use test; -drop database trig_db; -drop trigger trg6_1; -drop trigger trg6_3; - -Testcase 3.5.1.9:(cannot be inplemented at this point) ------------------------------------------------------- - -Testcase 3.5.1.10: ------------------- -CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X'; -CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y'; -ERROR HY000: Trigger already exists -drop trigger trg7_1; - -Testcase 3.5.1.?: ------------------ -drop table if exists t1; -drop table if exists t2; -create table t1 (f1 char(50), f2 integer) engine = myisam; -create table t2 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t1 -for each row set new.f1 ='trig t1'; -create trigger trig before update on t2 -for each row set new.f1 ='trig t2'; -ERROR HY000: Trigger already exists -insert into t1 value ('insert to t1',1); -select * from t1; -f1 f2 -trig t1 1 -update t1 set f1='update to t1'; -select * from t1; -f1 f2 -update to t1 1 -insert into t2 value ('insert to t2',2); -update t2 set f1='update to t1'; -select * from t2; -f1 f2 -update to t1 2 -drop table t1; -drop table t2; -drop trigger trig; - -Testcase 3.5.1.11: ------------------- -drop database if exists trig_db1; -drop database if exists trig_db2; -drop database if exists trig_db3; -create database trig_db1; -create database trig_db2; -create database trig_db3; -use trig_db1; -create table t1 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t1 -for each row set new.f1 ='trig1', @test_var1='trig1'; -use trig_db2; -create table t2 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t2 -for each row set new.f1 ='trig2', @test_var2='trig2'; -use trig_db3; -create table t1 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t1 -for each row set new.f1 ='trig3', @test_var3='trig3'; -set @test_var1= '', @test_var2= '', @test_var3= ''; -use trig_db1; -insert into t1 (f1,f2) values ('insert to db1 t1',1); -insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2); -insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3); -insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); -select @test_var1, @test_var2, @test_var3; -@test_var1 @test_var2 @test_var3 -trig1 trig2 trig3 -select * from t1; -f1 f2 -trig1 1 -trig1 2 -select * from trig_db2.t2; -f1 f2 -trig2 3 -select * from trig_db3.t1; -f1 f2 -trig3 4 -select * from t1; -f1 f2 -trig1 1 -trig1 2 -use test; -drop database trig_db1; -drop database trig_db2; -drop database trig_db3; - -Testcase 3.5.2.1/2/3: ---------------------- -drop database if exists trig_db1; -drop database if exists trig_db2; -create database trig_db1; -create database trig_db2; -use trig_db1; -create table t1 (f1 char(50), f2 integer) engine = myisam; -create table trig_db2.t1 (f1 char(50), f2 integer) engine = myisam; -create trigger trig1_b before insert on t1 -for each row set @test_var1='trig1_b'; -create trigger trig_db1.trig1_a after insert on t1 -for each row set @test_var2='trig1_a'; -create trigger trig_db2.trig2 before insert on trig_db2.t1 -for each row set @test_var3='trig2'; -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; -trigger_schema trigger_name event_object_table -trig_db1 trig1_b t1 -trig_db1 trig1_a t1 -trig_db2 trig2 t1 -set @test_var1= '', @test_var2= '', @test_var3= ''; -insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); -insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352); -select @test_var1, @test_var2, @test_var3; -@test_var1 @test_var2 @test_var3 -trig1_b trig1_a trig2 -drop database trig_db1; -drop database trig_db2; - -Testcase 3.5.3: ---------------- -drop database if exists priv_db; -create database priv_db; -use priv_db; -create table t1 (f1 char(20)); -create User test_noprivs@localhost; -set password for test_noprivs@localhost = password('PWD'); -create User test_yesprivs@localhost; -set password for test_yesprivs@localhost = password('PWD'); - -Testcase 3.5.3.2/6: -------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke SUPER on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); - -Testcase 3.5.3.2: ------------------ -select current_user; -current_user -test_noprivs@localhost -use priv_db; -create trigger trg1_1 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.2_1-no'; -ERROR 42000: Access denied; you need the SUPER privilege for this operation -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.2-no'); -select f1 from t1; -f1 -insert 3.5.3.2-no -select current_user; -current_user -test_yesprivs@localhost -use priv_db; -create trigger trg1_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.2_2-yes'; -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.2-yes'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes - -Testcase 3.5.3.6: ------------------ -use priv_db; -drop trigger trg1_2; -ERROR 42000: Access denied; you need the SUPER privilege for this operation -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.6-yes'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -use priv_db; -drop trigger trg1_2; -use priv_db; -insert into t1 (f1) values ('insert 3.5.3.6-no'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -drop trigger trg1_2; - -Testcase 3.5.3.7a: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke UPDATE on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER, UPDATE on *.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -select current_user; -current_user -test_noprivs@localhost -use priv_db; -show grants; -Grants for test_noprivs@localhost -GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1a'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -drop trigger trg4a_1; -use priv_db; -select current_user; -current_user -test_yesprivs@localhost -show grants; -Grants for test_yesprivs@localhost -GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -create trigger trg4a_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2a'; -insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -drop trigger trg4a_2; - -Testcase 3.5.3.7b: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs; -grant ALL on priv_db.* to test_noprivs@localhost; -revoke UPDATE on priv_db.* from test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE on priv_db.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -insert 3.5.3.7-1b -update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -drop trigger trg4b_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4b_2 before UPDATE on t1 for each row -set new.f1 = 'trig 3.5.3.7-2b'; -insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -insert 3.5.3.7-2b -update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -drop trigger trg4b_2; - -Testcase 3.5.3.7c ------------------ -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.t1 to test_noprivs@localhost; -revoke UPDATE on priv_db.t1 from test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1c'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -drop trigger trg4c_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4c_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2c'; -insert into t1 (f1) values ('insert 3.5.3.7-2c'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -drop trigger trg4c_2; - -Testcase 3.5.3.7d: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; -show grants for test_noprivs; -Grants for test_noprivs@% -GRANT SUPER ON *.* TO 'test_noprivs'@'%' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- -insert into t1 (f1) values ('insert 3.5.3.7-1d'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -insert 3.5.3.7-1d -drop trigger trg4d_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg4d_2 before INSERT on t1 for each row -set new.f1 = 'trig 3.5.3.7-2d'; -insert into t1 (f1) values ('insert 3.5.3.7-2d'); -select f1 from t1; -f1 -insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b -trig 3.5.3.7-2b -insert 3.5.3.7-1c -trig 3.5.3.7-2c -insert 3.5.3.7-1d -trig 3.5.3.7-2d -drop trigger trg4d_2; - -Testcase 3.5.3.8a: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant ALL on *.* to test_noprivs@localhost; -revoke SELECT on *.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER, SELECT on *.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -select current_user; -current_user -test_noprivs@localhost -use priv_db; -show grants; -Grants for test_noprivs@localhost -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var = 'before trig 3.5.3.8-1a'; -select @test_var; -@test_var -before trig 3.5.3.8-1a -insert into t1 (f1) values ('insert 3.5.3.8-1a'); -select @test_var; -@test_var -before trig 3.5.3.8-1a -drop trigger trg5a_1; -use priv_db; -select current_user; -current_user -test_yesprivs@localhost -show grants; -Grants for test_yesprivs@localhost -GRANT SELECT, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -create trigger trg5a_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var= 'before trig 3.5.3.8-2a'; -select @test_var; -@test_var -before trig 3.5.3.8-2a -insert into t1 (f1) values ('insert 3.5.3.8-2a'); -select @test_var; -@test_var -insert 3.5.3.8-2a -drop trigger trg5a_2; - -Testcase: 3.5.3.8b ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.* to test_noprivs@localhost; -revoke SELECT on priv_db.* from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.* to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var= 'before trig 3.5.3.8-1b'; -insert into t1 (f1) values ('insert 3.5.3.8-1b'); -select @test_var; -@test_var -before trig 3.5.3.8-1b -update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; -select @test_var; -@test_var -before trig 3.5.3.8-1b -drop trigger trg5b_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5b_2 before UPDATE on t1 for each row -set @test_var= new.f1; -set @test_var= 'before trig 3.5.3.8-2b'; -insert into t1 (f1) values ('insert 3.5.3.8-2b'); -select @test_var; -@test_var -before trig 3.5.3.8-2b -update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; -select @test_var; -@test_var -update 3.5.3.8-2b -drop trigger trg5b_2; - -Testcase 3.5.3.8c: ------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant ALL on priv_db.t1 to test_noprivs@localhost; -revoke SELECT on priv_db.t1 from test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT on priv_db.t1 to test_yesprivs@localhost; -show grants for test_yesprivs@localhost; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var= 'before trig 3.5.3.8-1c'; -insert into t1 (f1) values ('insert 3.5.3.8-1c'); -select @test_var; -@test_var -before trig 3.5.3.8-1c -drop trigger trg5c_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5c_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var='before trig 3.5.3.8-2c'; -insert into t1 (f1) values ('insert 3.5.3.8-2c'); -select @test_var; -@test_var -insert 3.5.3.8-2c -drop trigger trg5c_2; - -Testcase: 3.5.3.8d: -------------------- -revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; -grant SUPER on *.* to test_noprivs@localhost; -grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; -grant SUPER on *.* to test_yesprivs@localhost; -grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; -show grants for test_noprivs@localhost; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -connect(localhost,test_noprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -connect(localhost,test_yesprivs,PWD,test,MASTER_MYPORT,MASTER_MYSOCK); -show grants; -Grants for test_noprivs@localhost -GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' -use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- -set @test_var='before trig 3.5.3.8-1d'; -insert into t1 (f1) values ('insert 3.5.3.8-1d'); -select @test_var; -@test_var -before trig 3.5.3.8-1d -drop trigger trg5d_1; -show grants; -Grants for test_yesprivs@localhost -GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' -use priv_db; -create trigger trg5d_2 before INSERT on t1 for each row -set @test_var= new.f1; -set @test_var='before trig 3.5.3.8-2d'; -insert into t1 (f1) values ('insert 3.5.3.8-2d'); -select @test_var; -@test_var -insert 3.5.3.8-2d -drop trigger trg5d_2; -drop database if exists priv_db; -drop user test_yesprivs@localhost; -drop user test_noprivs@localhost; -drop user test_noprivs; - -Testcase 3.5.4: ---------------- -use test; - -Testcase 3.5.4.1: ------------------ -create database db_drop; -Use db_drop; -create table t1 (f1 char(30)) engine=myisam; -grant INSERT, SELECT on db_drop.t1 to test_general; -Use db_drop; -Create trigger trg1 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.1'; -Use db_drop; -Insert into t1 values ('Insert error 3.5.4.1'); -Select * from t1; -f1 -Trigger 3.5.4.1 -drop trigger trg1; -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; -trigger_schema trigger_name event_object_table -Insert into t1 values ('Insert no trigger 3.5.4.1'); -Select * from t1; -f1 -Trigger 3.5.4.1 -Insert no trigger 3.5.4.1 -drop trigger trg1; -drop database if exists db_drop; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.4.2: ------------------ -create database db_drop2; -Use db_drop2; -drop table if exists t1_432 ; -create table t1_432 (f1 char (30)) engine=myisam; -Drop trigger tr_does_not_exit; -ERROR HY000: Trigger does not exist -drop table if exists t1_432 ; -drop database if exists db_drop2; - -Testcase 3.5.4.3: ------------------ -create database db_drop3; -Use db_drop3; -drop table if exists t1_433 ; -drop table if exists t1_433a ; -create table t1_433 (f1 char (30)) engine=myisam; -create table t1_433a (f1a char (5)) engine=myisam; -CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row -set new.f1 = 'Trigger 3.5.4.3'; -Drop trigger t1.433.trg3; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.trg3' at line 1 -Drop trigger db_drop3.t1.433.trg3; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.433.trg3' at line 1 -Drop trigger mysql.trg3; -ERROR HY000: Trigger does not exist -Drop trigger tbx.trg3; -ERROR HY000: Trigger does not exist -Drop trigger db_drop3.trg3; -drop table if exists t1_433; -drop table if exists t1_433a; -drop database if exists db_drop3; - -Testcase 3.5.4.4: ------------------ -create database db_drop4; -Use db_drop4; -create table t1 (f1 char(30)) engine=myisam; -grant INSERT, SELECT on db_drop4.t1 to test_general; -Create trigger trg4 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.4'; -Use db_drop4; -Insert into t1 values ('Insert 3.5.4.4'); -Select * from t1; -f1 -Trigger 3.5.4.4 -Drop database db_drop4; -Show databases; -Database -information_schema -mysql -test -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers -where information_schema.triggers.trigger_name='trg4'; -trigger_schema trigger_name event_object_table -create database db_drop4; -Use db_drop4; -create table t1 (f1 char(30)) engine=myisam; -grant INSERT, SELECT on db_drop4.t1 to test_general; -Insert into t1 values ('2nd Insert 3.5.4.4'); -Select * from t1; -f1 -2nd Insert 3.5.4.4 -drop trigger trg4; -ERROR HY000: Trigger does not exist -drop database if exists db_drop4; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.4.5: ------------------ -create database db_drop5; -Use db_drop5; -create table t1 (f1 char(50)) engine=myisam; -grant INSERT, SELECT on t1 to test_general; -Create trigger trg5 BEFORE INSERT on t1 -for each row set new.f1='Trigger 3.5.4.5'; -Use db_drop5; -Insert into t1 values ('Insert 3.5.4.5'); -Select * from t1; -f1 -Trigger 3.5.4.5 -Drop table t1; -Show tables; -Tables_in_db_drop5 -select trigger_schema, trigger_name, event_object_table -from information_schema.triggers -where information_schema.triggers.trigger_name='trg5'; -trigger_schema trigger_name event_object_table -create table t1 (f1 char(50)) engine=myisam; -grant INSERT, SELECT on t1 to test_general; -Insert into t1 values ('2nd Insert 3.5.4.5'); -Select * from t1; -f1 -2nd Insert 3.5.4.5 -drop trigger trg5; -ERROR HY000: Trigger does not exist -drop database if exists db_drop5; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.5: ---------------- -use test; - -Testcase 3.5.5.1: ------------------ -Create trigger trg1 before INSERT on t100 for each row set new.f2=1000; -ERROR 42S02: Table 'test.t100' doesn't exist - -Testcase 3.5.5.2: ------------------ -Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); -Create trigger trg2 before INSERT -on t1_temp for each row set new.f2=9999; -ERROR HY000: Trigger's 't1_temp' is view or temporary table -drop table t1_temp; - -Testcase 3.5.5.3: ------------------ -Create view vw3 as select f118 from tb3; -Create trigger trg3 before INSERT -on vw3 for each row set new.f118='s'; -ERROR HY000: 'test.vw3' is not BASE TABLE -drop view vw3; - -Testcase 3.5.5.4: ------------------ -create database dbtest_one; -create database dbtest_two; -use dbtest_two; -create table t2 (f1 char(15)); -use dbtest_one; -create trigger trg4 before INSERT -on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4'; -ERROR HY000: Trigger in wrong schema -grant INSERT, SELECT on dbtest_two.t2 to test_general; -grant SELECT on dbtest_one.* to test_general; -use dbtest_two; -Insert into t2 values ('1st Insert 3.5.5.4'); -Warnings: -Warning 1265 Data truncated for column 'f1' at row 1 -Select * from t2; -f1 -1st Insert 3.5. -use dbtest_one; -Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); -Warnings: -Warning 1265 Data truncated for column 'f1' at row 1 -Select * from dbtest_two.t2; -f1 -1st Insert 3.5. -2nd Insert 3.5. -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; -DROP DATABASE if exists dbtest_one; -drop database if EXISTS dbtest_two; - -Testcase 3.5.6: ---------------- -use test; - -Testcase 3.5.6.1 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.2 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.3: ------------------ -Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1 -Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TIME INSERT on tb3 for each row set new.f132=15' at line 1 -drop trigger tb3.trg3_1; -drop trigger tb3.trg3_2; - -Testcase 3.5.6.4 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.6.5 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.1 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.2 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.3 (see Testcase 3.5.1.1) ---------------------------------------- - -Testcase 3.5.7.4: ------------------ -Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT on tb3 for each row set new.f132=5' at line 1 -Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUE on tb3 for each row set new.f132=1' at line 1 -drop trigger tb3.trg4_1; -drop trigger tb3.trg4_2; - -Testcase 3.5.7.5 / 3.5.7.6: ---------------------------- -Create trigger trg5_1 BEFORE INSERT -on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; -Create trigger trg5_2 BEFORE INSERT -on tb3 for each row set new.f122='Trigger2 3.5.7.5'; -ERROR HY000: Trigger already exists -Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); -Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; -f121 f122 -Test 3.5.7.5/6 Trigger1 3.5.7.5/6 -update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6'; -Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; -f121 f122 -Test 3.5.7.5/6 Update 3.5.7.6 -drop trigger trg5_1; -drop trigger trg5_2; -delete from tb3 where f121='Test 3.5.7.5/6'; - -Testcase 3.5.7.7 / 3.5.7.8: ---------------------------- -set @test_var='Before trig 3.5.7.7'; -Create trigger trg6_1 AFTER INSERT -on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; -Create trigger trg6_2 AFTER INSERT -on tb3 for each row set @test_var='Trigger2 3.5.7.7'; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -Before trig 3.5.7.7 -Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7'); -Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; -f121 f122 -Test 3.5.7.7/8 Insert 3.5.7.7 -select @test_var; -@test_var -Trigger1 3.5.7.7/8 -update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8'; -Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; -f121 f122 -Test 3.5.7.7/8 Update 3.5.7.8 -select @test_var; -@test_var -Trigger1 3.5.7.7/8 -drop trigger trg6_1; -drop trigger trg6_2; -delete from tb3 where f121='Test 3.5.7.7/8'; - -Testcase 3.5.7.9/10: --------------------- -Create trigger trg7_1 BEFORE UPDATE -on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; -Create trigger trg7_2 BEFORE UPDATE -on tb3 for each row set new.f122='Trigger2 3.5.7.9'; -ERROR HY000: Trigger already exists -Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); -Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; -f121 f122 -Test 3.5.7.9/10 Insert 3.5.7.9 -update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10'; -Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; -f121 f122 -Test 3.5.7.9/10 Trigger1 3.5.7.9/10 -drop trigger trg7_1; -drop trigger trg7_2; -delete from tb3 where f121='Test 3.5.7.9/10'; - -Testcase 3.5.7.11/12: ---------------------- -set @test_var='Before trig 3.5.7.11'; -Create trigger trg8_1 AFTER UPDATE -on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; -Create trigger trg8_2 AFTER UPDATE -on tb3 for each row set @test_var='Trigger2 3.5.7.11'; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -Before trig 3.5.7.11 -Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12'); -select @test_var; -@test_var -Before trig 3.5.7.11 -Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; -f121 f122 -Test 3.5.7.11/12 Insert 3.5.7.11/12 -update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12'; -Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; -f121 f122 -Test 3.5.7.11/12 update 3.5.7.12 -select @test_var; -@test_var -Trigger 3.5.7.11/12 -delete from tb3 where f121='Test 3.5.7.11/12'; -drop trigger trg8_1; -drop trigger trg8_2; -delete from tb3 where f121='Test 3.5.7.11/12'; - -Testcase 3.5.7.13/14: ---------------------- -set @test_var=1; -Create trigger trg9_1 BEFORE DELETE -on tb3 for each row set @test_var=@test_var+1; -Create trigger trg9_2 BEFORE DELETE -on tb3 for each row set @test_var=@test_var+10; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -1 -Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13'); -Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; -f121 f122 -Test 3.5.7.13/14 Insert 3.5.7.13 -select @test_var; -@test_var -1 -delete from tb3 where f121='Test 3.5.7.13/14'; -Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; -f121 f122 -select @test_var; -@test_var -2 -delete from tb3 where f121='Test 3.5.7.13/14'; -select @test_var; -@test_var -2 -drop trigger trg9_1; -drop trigger trg9_2; -delete from tb3 where f121='Test 3.5.7.13/14'; - -Testcase 3.5.7.15/16: ---------------------- -set @test_var=1; -Create trigger trg_3_406010_1 AFTER DELETE -on tb3 for each row set @test_var=@test_var+5; -Create trigger trg_3_406010_2 AFTER DELETE -on tb3 for each row set @test_var=@test_var+50; -ERROR HY000: Trigger already exists -Create trigger trg_3_406010_1 AFTER INSERT -on tb3 for each row set @test_var=@test_var+1; -ERROR HY000: Trigger already exists -select @test_var; -@test_var -1 -Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16'); -Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; -f121 f122 -Test 3.5.7.15/16 Insert 3.5.7.15/16 -select @test_var; -@test_var -1 -delete from tb3 where f121='Test 3.5.7.15/16'; -Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; -f121 f122 -select @test_var; -@test_var -6 -delete from tb3 where f121='Test 3.5.7.15/16'; -select @test_var; -@test_var -6 -drop trigger trg_3_406010_1; -drop trigger trg_3_406010_2; -delete from tb3 where f121='Test 3.5.7.15/16'; - -Testcase 3.5.7.17 (see Testcase 3.5.1.1) ----------------------------------------- - -Testcase 3.5.8.1: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.8.2: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.8.3/4: -------------------- -create database db_test; -grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; -grant LOCK TABLES on db_test.* to test_general; -Use db_test; -create table t1_i ( -i120 char ascii not null DEFAULT b'101', -i136 smallint zerofill not null DEFAULT 999, -i144 int zerofill not null DEFAULT 99999, -i163 decimal (63,30)) engine=myisam; -create table t1_u ( -u120 char ascii not null DEFAULT b'101', -u136 smallint zerofill not null DEFAULT 999, -u144 int zerofill not null DEFAULT 99999, -u163 decimal (63,30)) engine=myisam; -create table t1_d ( -d120 char ascii not null DEFAULT b'101', -d136 smallint zerofill not null DEFAULT 999, -d144 int zerofill not null DEFAULT 99999, -d163 decimal (63,30)) engine=myisam; -Insert into t1_u values ('a',111,99999,999.99); -Insert into t1_u values ('b',222,99999,999.99); -Insert into t1_u values ('c',333,99999,999.99); -Insert into t1_u values ('d',222,99999,999.99); -Insert into t1_u values ('e',222,99999,999.99); -Insert into t1_u values ('f',333,99999,999.99); -Insert into t1_d values ('a',111,99999,999.99); -Insert into t1_d values ('b',222,99999,999.99); -Insert into t1_d values ('c',333,99999,999.99); -Insert into t1_d values ('d',444,99999,999.99); -Insert into t1_d values ('e',222,99999,999.99); -Insert into t1_d values ('f',222,99999,999.99); - -3.5.8.4 - multiple SQL ----------------------- -use test; -Create trigger trg1 AFTER INSERT on tb3 for each row -BEGIN -insert into db_test.t1_i -values (new.f120, new.f136, new.f144, new.f163); -update db_test.t1_u -set u144=new.f144, u163=new.f163 -where u136=new.f136; -delete from db_test.t1_d where d136= new.f136; -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; -END// -Use test; -set @test_var=0; -Insert into tb3 (f120, f122, f136, f144, f163) -values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); -Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; -f120 f122 f136 f144 f163 -1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; -i120 i136 i144 i163 -1 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; -u120 u136 u144 u163 -a 00111 0000099999 999.990000000000000000000000000000 -b 00222 0000023456 1.050000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -d 00222 0000023456 1.050000000000000000000000000000 -e 00222 0000023456 1.050000000000000000000000000000 -f 00333 0000099999 999.990000000000000000000000000000 -select * from db_test.t1_d; -d120 d136 d144 d163 -a 00111 0000099999 999.990000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -d 00444 0000099999 999.990000000000000000000000000000 -select @test_var; -@test_var -3.150000000000000000000000000000 - -3.5.8.4 - single SQL - insert ------------------------------ -Create trigger trg2 BEFORE UPDATE on tb3 for each row -insert into db_test.t1_i -values (new.f120, new.f136, new.f144, new.f163); -update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' - where f122='Test 3.5.8.4'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; -i120 i136 i144 i163 -1 00222 0000023456 1.050000000000000000000000000000 -I 00222 0000023456 1.050000000000000000000000000000 - -3.5.8.4 - single SQL - update ------------------------------ -drop trigger trg2; -Create trigger trg3 BEFORE UPDATE on tb3 for each row -update db_test.t1_u -set u120=new.f120 -where u136=new.f136; -update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' - where f122='Test 3.5.8.4-Single Insert'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; -u120 u136 u144 u163 -a 00111 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -f 00333 0000099999 999.990000000000000000000000000000 - -3.5.8.3/4 - single SQL - delete -------------------------------- -drop trigger trg3; -Create trigger trg4 AFTER UPDATE on tb3 for each row -delete from db_test.t1_d where d136= new.f136; -update tb3 set f120='D', f136=444, -f122='Test 3.5.8.4-Single Delete' - where f122='Test 3.5.8.4-Single Update'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_d; -d120 d136 d144 d163 -a 00111 0000099999 999.990000000000000000000000000000 -c 00333 0000099999 999.990000000000000000000000000000 - -3.5.8.3/4 - single SQL - select -------------------------------- -drop trigger trg4; -Create trigger trg5 AFTER UPDATE on tb3 for each row -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; -set @test_var=0; -update tb3 set f120='S', f136=111, -f122='Test 3.5.8.4-Single Select' - where f122='Test 3.5.8.4-Single Delete'; -Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; -f120 f122 f136 f144 f163 -S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000 -select @test_var; -@test_var -999.990000000000000000000000000000 -drop trigger trg1; -drop trigger trg5; -drop database if exists db_test; -delete from tb3 where f122 like 'Test 3.5.8.4%'; -revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -Testcase 3.5.8.5 (IF): ----------------------- -create trigger trg2 before insert on tb3 for each row -BEGIN -IF new.f120='1' then -set @test_var='one', new.f120='2'; -ELSEIF new.f120='2' then -set @test_var='two', new.f120='3'; -ELSEIF new.f120='3' then -set @test_var='three', new.f120='4'; -END IF; -IF (new.f120='4') and (new.f136=10) then -set @test_var2='2nd if', new.f120='d'; -ELSE -set @test_var2='2nd else', new.f120='D'; -END IF; -END// -set @test_var='Empty', @test_var2=0; -Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 one 2nd else -Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 two 2nd else -D Test 3.5.8.5-if 00102 two 2nd else -Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 three 2nd if -D Test 3.5.8.5-if 00102 three 2nd if -d Test 3.5.8.5-if 00010 three 2nd if -Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; -f120 f122 f136 @test_var @test_var2 -D Test 3.5.8.5-if 00101 three 2nd else -D Test 3.5.8.5-if 00102 three 2nd else -d Test 3.5.8.5-if 00010 three 2nd else -D Test 3.5.8.5-if 00103 three 2nd else -create trigger trg3 before update on tb3 for each row -BEGIN -ELSEIF new.f120='2' then -END IF; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ELSEIF new.f120='2' then -END IF; -END' at line 3 -drop trigger trg3// -create trigger trg4 before update on tb3 for each row -BEGIN -IF (new.f120='4') and (new.f136=10) then -set @test_var2='2nd if', new.f120='d'; -ELSE -set @test_var2='2nd else', new.f120='D'; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7 -drop trigger trg4; -drop trigger trg2; -delete from tb3 where f121='Test 3.5.8.5-if'; - -Testcase 3.5.8.5-case: ----------------------- -create trigger trg3 before insert on tb3 for each row -BEGIN -SET new.f120=char(ascii(new.f120)-32); -CASE -when new.f136<100 then set new.f136=new.f136+120; -when new.f136<10 then set new.f144=777; -when new.f136>100 then set new.f120=new.f136-1; -END case; -CASE -when new.f136=200 then set @test_var=CONCAT(new.f120, '='); -ELSE set @test_var=concat(new.f120, '*'); -END case; -CASE new.f144 -when 1 then set @test_var=concat(@test_var, 'one'); -when 2 then set @test_var=concat(@test_var, 'two'); -when 3 then set @test_var=concat(@test_var, 'three'); -when 4 then set @test_var=concat(@test_var, 'four'); -when 5 then set @test_var=concat(@test_var, 'five'); -when 6 then set @test_var=concat(@test_var, 'six'); -when 7 then set @test_var=concat(@test_var, 'seven'); -when 8 then set @test_var=concat(@test_var, 'eight'); -when 9 then set @test_var=concat(@test_var, 'nine'); -when 10 then set @test_var=concat(@test_var, 'ten'); -when 11 then set @test_var=concat(@test_var, 'eleven'); -when 12 then set @test_var=concat(@test_var, 'twelve'); -when 13 then set @test_var=concat(@test_var, 'thirteen'); -when 14 then set @test_var=concat(@test_var, 'fourteen'); -when 15 then set @test_var=concat(@test_var, 'fifteen'); -ELSE set @test_var=CONCAT(new.f120, '*', new.f144); -END case; -END// -set @test_var='Empty'; -Insert into tb3 (f120, f122, f136, f144) -values ('a', 'Test 3.5.8.5-case', 5, 7); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 A*seven -Insert into tb3 (f120, f122, f136, f144) -values ('b', 'Test 3.5.8.5-case', 71,16); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 B*0000000016 -B Test 3.5.8.5-case 00191 0000000016 B*0000000016 -Insert into tb3 (f120, f122, f136, f144) -values ('c', 'Test 3.5.8.5-case', 80,1); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 C=one -B Test 3.5.8.5-case 00191 0000000016 C=one -C Test 3.5.8.5-case 00200 0000000001 C=one -Insert into tb3 (f120, f122, f136) -values ('d', 'Test 3.5.8.5-case', 152); -Warnings: -Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1*0000099999 -B Test 3.5.8.5-case 00191 0000000016 1*0000099999 -C Test 3.5.8.5-case 00200 0000000001 1*0000099999 -1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 -Insert into tb3 (f120, f122, f136, f144) -values ('e', 'Test 3.5.8.5-case', 200, 8); -Warnings: -Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1=eight -B Test 3.5.8.5-case 00191 0000000016 1=eight -C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -Insert into tb3 (f120, f122, f136, f144) -values ('f', 'Test 3.5.8.5-case', 100, 8); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; -f120 f122 f136 f144 @test_var -A Test 3.5.8.5-case 00125 0000000007 1=eight -B Test 3.5.8.5-case 00191 0000000016 1=eight -C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -create trigger trg3a before update on tb3 for each row -BEGIN -CASE -when new.f136<100 then set new.f120='p'; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 -drop trigger trg3a; -drop trigger trg3; -delete from tb3 where f121='Test 3.5.8.5-case'; - -Testcase 3.5.8.5-loop/leave: ----------------------------- -Create trigger trg4 after insert on tb3 for each row -BEGIN -set @counter=0, @flag='Initial'; -Label1: loop -if new.f136 new.f136 END REPEAT rp_label; -END// -set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) -values ('Test 3.5.8.5-repeat', 13); -select @counter1, @counter2; -@counter1 @counter2 -15 8 -Create trigger trg6_2 after update on tb3 for each row -BEGIN -REPEAT -SET @counter2 = @counter2 + 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5 -drop trigger trg6; -delete from tb3 where f122='Test 3.5.8.5-repeat'; - -Testcase 3.5.8.5-while: ------------------------ -Create trigger trg7 after insert on tb3 for each row -wl_label: WHILE @counter1 < new.f136 DO -SET @counter1 = @counter1 + 1; -IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; -END IF; -SET @counter2 = @counter2 + 1; -END WHILE wl_label// -set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) -values ('Test 3.5.8.5-while', 7); -select @counter1, @counter2; -@counter1 @counter2 -7 4 -Create trigger trg7_2 after update on tb3 for each row -BEGIN -WHILE @counter1 < new.f136 -SET @counter1 = @counter1 + 1; -END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; -END' at line 4 -delete from tb3 where f122='Test 3.5.8.5-while'; -drop trigger trg7; - -Testcase 3.5.8.6: (requirement void) ------------------------------------- - -Testcase 3.5.8.7: (Disabled as a result of bug _____) ------------------------------------------------------ - -Testcase 3.5.9.1/2: -------------------- -Create trigger trg1 BEFORE UPDATE on tb3 for each row -set new.f142 = 94087, @counter=@counter+1; -TotalRows -19 -Affected -17 -NotAffected -2 -NewValuew -0 -set @counter=0; -Update tb3 Set f142='1' where f130<100; -select count(*) as ExpectedChanged, @counter as TrigCounter -from tb3 where f142=94087; -ExpectedChanged TrigCounter -17 17 -select count(*) as ExpectedNotChange from tb3 -where f130<100 and f142<>94087; -ExpectedNotChange -0 -select count(*) as NonExpectedChanged from tb3 -where f130>=130 and f142=94087; -NonExpectedChanged -0 -drop trigger trg1; - -Testcase 3.5.9.3: ------------------ -Create trigger trg2_a before update on tb3 for each row -set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, -@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, -@tr_var_b4_163=old.f163; -Create trigger trg2_b after update on tb3 for each row -set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, -@tr_var_af_122=old.f122, @tr_var_af_136=old.f136, -@tr_var_af_163=old.f163; -Create trigger trg2_c before delete on tb3 for each row -set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, -@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, -@tr_var_b4_163=old.f163; -Create trigger trg2_d after delete on tb3 for each row -set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, -@tr_var_af_122=old.f122, @tr_var_af_136=old.f136, -@tr_var_af_163=old.f163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -0 0 0 0 0 -Insert into tb3 (f122, f136, f163) -values ('Test 3.5.9.3', 7, 123.17); -Update tb3 Set f136=8 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; -f118 f121 f122 f136 f163 -a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -0 0 0 0 0 -delete from tb3 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; -f118 f121 f122 f136 f163 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 -a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 -a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -drop trigger trg2_a; -drop trigger trg2_b; -drop trigger trg2_c; -drop trigger trg2_d; - -Testcase 3.5.9.4: ------------------ -Create trigger trg3_a before insert on tb3 for each row -set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, -@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, -@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; -Create trigger trg3_b after insert on tb3 for each row -set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, -@tr_var_af_122=new.f122, @tr_var_af_136=new.f136, -@tr_var_af_151=new.f151, @tr_var_af_163=new.f163; -Create trigger trg3_c before update on tb3 for each row -set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, -@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, -@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; -Create trigger trg3_d after update on tb3 for each row -set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, -@tr_var_af_122=new.f122, @tr_var_af_136=new.f136, -@tr_var_af_151=new.f151, @tr_var_af_163=new.f163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -0 0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -0 0 0 0 0 0 -Insert into tb3 (f122, f136, f151, f163) -values ('Test 3.5.9.4', 7, DEFAULT, 995.24); -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4%'; -f118 f121 f122 f136 f151 f163 -a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_151, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -0 0 0 0 0 0 -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -0 0 0 0 0 0 -Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL -where f122='Test 3.5.9.4'; -Warnings: -Warning 1263 Column set to default value; NULL supplied to NOT NULL column 'f136' at row 20 -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4-trig'; -f118 f121 f122 f136 f151 f163 -a NULL Test 3.5.9.4-trig 00000 999 NULL -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, -@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; -@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 -a NULL Test 3.5.9.4-trig 0 999 NULL -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, -@tr_var_af_136, @tr_var_af_151, @tr_var_af_163; -@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 -a NULL Test 3.5.9.4-trig 0 999 NULL -drop trigger trg3_a; -drop trigger trg3_b; -drop trigger trg3_c; -drop trigger trg3_d; -delete from tb3 where f122='Test 3.5.9.4-trig'; - -Testcase 3.5.9.5: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.6: ------------------ -create trigger trg4a before insert on tb3 for each row -set @temp1= old.f120; -ERROR HY000: There is no OLD row in on INSERT trigger -create trigger trg4b after insert on tb3 for each row -set old.f120= 'test'; -ERROR HY000: Updating of OLD row is not allowed in trigger -drop trigger trg4a; -drop trigger trg4b; - -Testcase 3.5.9.7: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.8: (implied in previous tests) ---------------------------------------------- - -Testcase 3.5.9.9: ------------------ -create trigger trg5a before DELETE on tb3 for each row -set @temp1=new.f122; -ERROR HY000: There is no NEW row in on DELETE trigger -create trigger trg5b after DELETE on tb3 for each row -set new.f122='test'; -ERROR HY000: There is no NEW row in on DELETE trigger -drop trigger trg5a; -drop trigger trg5b; - -Testcase 3.5.9.10: (implied in previous tests) ----------------------------------------------- - -Testcase 3.5.9.11: covered by 3.5.9.9 -------------------------------------- - -Testcase 3.5.9.12: covered by 3.5.9.6 -------------------------------------- - -Testcase 3.5.9.13: ------------------- -create trigger trg6a before UPDATE on tb3 for each row -set old.f118='C', new.f118='U'; -ERROR HY000: Updating of OLD row is not allowed in trigger -create trigger trg6b after INSERT on tb3 for each row -set old.f136=163, new.f118='U'; -ERROR HY000: Updating of OLD row is not allowed in trigger -create trigger trg6c after UPDATE on tb3 for each row -set old.f136=NULL; -ERROR HY000: Updating of OLD row is not allowed in trigger -drop trigger trg6a; -drop trigger trg6b; -drop trigger trg6c; - -Testcase 3.5.9.14: (implied in previous tests) ----------------------------------------------- - -Testcase 3.5.10.1/2/3: ----------------------- -Create view vw11 as select * from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -Create trigger trg1a before insert on tb3 -for each row set new.f163=111.11; -Create trigger trg1b after insert on tb3 -for each row set @test_var='After Insert'; -Create trigger trg1c before update on tb3 -for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update'; -Create trigger trg1d after update on tb3 -for each row set @test_var='After Update'; -Create trigger trg1e before delete on tb3 -for each row set @test_var=5; -Create trigger trg1f after delete on tb3 -for each row set @test_var= 2* @test_var+7; -Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1); -Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); -Insert into vw11 (f122, f151) values ('Not in View', 3); -select f121, f122, f151, f163 -from tb3 where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 -NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 -NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 -select f121, f122, f151, f163 -from tb3 where f122 like 'Not in View'; -f121 f122 f151 f163 -NULL Not in View 3 111.110000000000000000000000000000 -Update vw11 set f163=1; -select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 -set @test_var=0; -Select @test_var as 'before delete'; -before delete -0 -delete from vw11 where f151=1; -select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -select f121, f122, f151, f163 from vw11; -f121 f122 f151 f163 -Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 -Select @test_var as 'after delete'; -after delete -17 -drop view vw11; -drop trigger trg1a; -drop trigger trg1b; -drop trigger trg1c; -drop trigger trg1d; -drop trigger trg1e; -drop trigger trg1f; -delete from tb3 where f122 like 'Test 3.5.10.1/2/3%'; - -Testcase 3.5.10.4: ------------------- -create table tb_load (f1 int, f2 char(25),f3 int) engine=myisam; -Create trigger trg4 before insert on tb_load -for each row set new.f3=-(new.f1 div 5), @counter= @counter+1; -set @counter= 0; -select @counter as 'Rows Loaded Before'; -Rows Loaded Before -0 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; -select @counter as 'Rows Loaded After'; -Rows Loaded After -10 -Select * from tb_load limit 10; -f1 f2 f3 --5000 a` 1000 --4999 aaa 999 --4998 abaa 999 --4997 acaaa 999 --4996 adaaaa 999 --4995 aeaaaaa 999 --4994 afaaaaaa 998 --4993 agaaaaaaa 998 --4992 a^aaaaaaaa 998 --4991 a_aaaaaaaaa 998 -drop trigger trg4; -drop table tb_load; - -Testcase 3.5.10.5: (implemented in trig_frkey.test) ---------------------------------------------------- - -Testcase 3.5.10.6: (implemented in trig_frkey.test) ---------------------------------------------------- - -Testcase 3.5.10.extra: ----------------------- -create table t1_sp (var136 tinyint, var151 decimal) engine=myisam; -create trigger trg before insert on t1_sp -for each row set @counter=@counter+1; -create procedure trig_sp() -begin -declare done int default 0; -declare var151 decimal; -declare var136 tinyint; -declare cur1 cursor for select f136, f151 from tb3; -declare continue handler for sqlstate '01000' set done = 1; -open cur1; -fetch cur1 into var136, var151; -wl_loop: WHILE NOT done DO -insert into t1_sp values (var136, var151); -fetch cur1 into var136, var151; -END WHILE wl_loop; -close cur1; -end// -set @counter=0; -select @counter; -@counter -0 -call trig_sp(); -ERROR 02000: No data to FETCH -select @counter; -@counter -20 -select count(*) from tb3; -count(*) -20 -select count(*) from t1_sp; -count(*) -20 -drop procedure trig_sp; -drop trigger trg; -drop table t1_sp; - -Testcase 3.5.11.1 (implemented in trig_perf.test) -------------------------------------------------- -drop user test_general@localhost; -drop user test_general; -drop user test_super@localhost; - -Testcase y.y.y.2: Check for triggers starting triggers ------------------------------------------------------- -use test; -drop table if exists t1; -drop table if exists t2_1; -drop table if exists t2_2; -drop table if exists t2_3; -drop table if exists t2_4; -drop table if exists t3; -create table t1 (f1 integer); -create table t2_1 (f1 integer); -create table t2_2 (f1 integer); -create table t2_3 (f1 integer); -create table t2_4 (f1 integer); -create table t3 (f1 integer); -insert into t1 values (1); -create trigger tr1 after insert on t1 for each row -BEGIN -insert into t2_1 (f1) values (new.f1+1); -insert into t2_2 (f1) values (new.f1+1); -insert into t2_3 (f1) values (new.f1+1); -insert into t2_4 (f1) values (new.f1+1); -END// -create trigger tr2_1 after insert on t2_1 for each row -insert into t3 (f1) values (new.f1+10); -create trigger tr2_2 after insert on t2_2 for each row -insert into t3 (f1) values (new.f1+100); -create trigger tr2_3 after insert on t2_3 for each row -insert into t3 (f1) values (new.f1+1000); -create trigger tr2_4 after insert on t2_4 for each row -insert into t3 (f1) values (new.f1+10000); -insert into t1 values (1); -select * from t3; -f1 -12 -102 -1002 -10002 -drop trigger tr1; -drop trigger tr2_1; -drop trigger tr2_2; -drop trigger tr2_3; -drop trigger tr2_4; -drop table t1, t2_1, t2_2, t2_3, t2_4, t3; - -Testcase y.y.y.3: Circular trigger reference --------------------------------------------- -use test; -drop table if exists t1; -drop table if exists t2; -drop table if exists t3; -drop table if exists t4; -create table t1 (f1 integer) engine = myisam; -create table t2 (f2 integer) engine = myisam; -create table t3 (f3 integer) engine = myisam; -create table t4 (f4 integer) engine = myisam; -insert into t1 values (0); -create trigger tr1 after insert on t1 -for each row insert into t2 (f2) values (new.f1+1); -create trigger tr2 after insert on t2 -for each row insert into t3 (f3) values (new.f2+1); -create trigger tr3 after insert on t3 -for each row insert into t4 (f4) values (new.f3+1); -create trigger tr4 after insert on t4 -for each row insert into t1 (f1) values (new.f4+1); -insert into t1 values (1); -ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. -select * from t1; -f1 -0 -1 -select * from t2; -f2 -2 -select * from t3; -f3 -3 -select * from t4; -f4 -4 -drop trigger tr1; -drop trigger tr2; -drop trigger tr3; -drop trigger tr4; -drop table t1; -drop table t2; -drop table t3; -drop table t4; - -Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889) ----------------------------------------------------------------------- -set @sql_mode='traditional'; -create table t1_sp ( -count integer, -var136 tinyint, -var151 decimal) engine=myisam; -create procedure trig_sp() -begin -declare done int default 0; -declare var151 decimal; -declare var136 tinyint; -declare cur1 cursor for select f136, f151 from tb3; -declare continue handler for sqlstate '01000' set done = 1; -set @counter= @counter+1; -open cur1; -fetch cur1 into var136, var151; -wl_loop: WHILE NOT done DO -insert into t1_sp values (@counter, var136, var151); -fetch cur1 into var136, var151; -END WHILE wl_loop; -close cur1; -end// -create trigger trg before insert on t1_sp -for each row call trig_sp(); -set @counter=0; -select @counter; -@counter -0 -call trig_sp(); -ERROR HY000: Recursive stored routines are not allowed. -select @counter; -@counter -1 -select count(*) from tb3; -count(*) -20 -select count(*) from t1_sp; -count(*) -0 -drop procedure trig_sp; -drop trigger trg; -drop table t1_sp; - -Testcase y.y.y.5: Roleback of nested trigger references -------------------------------------------------------- -set @@sql_mode='traditional'; -use test; -drop table if exists t1; -drop table if exists t2; -drop table if exists t3; -drop table if exists t4; -create table t1 (f1 integer) engine = myisam; -create table t2 (f2 integer) engine = myisam; -create table t3 (f3 integer) engine = myisam; -create table t4 (f4 tinyint) engine = myisam; -show create table t1; -Table Create Table -t1 CREATE TABLE `t1` ( - `f1` int(11) default NULL -) ENGINE=MyISAM DEFAULT CHARSET=latin1 -insert into t1 values (1); -create trigger tr1 after insert on t1 -for each row insert into t2 (f2) values (new.f1+1); -create trigger tr2 after insert on t2 -for each row insert into t3 (f3) values (new.f2+1); -create trigger tr3 after insert on t3 -for each row insert into t4 (f4) values (new.f3+1000); -set autocommit=0; -start transaction; -insert into t1 values (1); -ERROR 22003: Out of range value adjusted for column 'f4' at row 1 -commit; -select * from t1; -f1 -1 -1 -select * from t2; -f2 -2 -select * from t3; -f3 -3 -drop trigger tr1; -drop trigger tr2; -drop trigger tr3; -drop table t1; -drop table t2; -drop table t3; -drop table t4; diff --git a/mysql-test/suite/funcs_1/r/myisam_views.result b/mysql-test/suite/funcs_1/r/myisam_views.result index 751c2c2be3b..a9c4d4c7f43 100644 --- a/mysql-test/suite/funcs_1/r/myisam_views.result +++ b/mysql-test/suite/funcs_1/r/myisam_views.result @@ -144,11 +144,7 @@ SET @limit1 = 20; -------------------------------------------------------------------------------- There are some statements where the ps-protocol is switched off. -Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill --------------------------------------------------------------------------------- - -! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables +Bug#32285: mysqltest, --ps-protocol, strange output, float/double/real with zerofill -------------------------------------------------------------------------------- insert into test.tb2 (f59,f60) values (76710,226546); insert into test.tb2 (f59,f60) values(2760,985654); @@ -190,6 +186,58 @@ insert into tb2 (f59,f60,f61) values (109,108,104); INSERT INTO tb2 (f59,f60) VALUES( 299,899 ); INSERT INTO tb2 (f59,f60) VALUES( 242,79 ); INSERT INTO tb2 (f59,f60) VALUES( 424,89 ); +SELECT * FROM tb2 ORDER BY f59, f60, f61; +f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 +1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ +2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ +3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL +4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set @@@@@@ I@I@ @@@@@@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set @@@@ @ @ 9@.@ @@@@ @ @ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@ @@@@ @ @ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ +8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ +9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL +15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL Use test; Testcase 3.3.1.1 @@ -205,46 +253,60 @@ Insert into t1 values (500,9866); Drop view if exists v1 ; CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 where f59=250; -select * FROM v1 limit 0,10; +select * FROM v1 order by f60,f61 limit 0,10; f59 f60 f61 250 87895654 NULL Drop view if exists v1 ; CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 limit 100; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59,f60,f61 limit 0,10; f59 f60 f61 1 1 0000000001 2 2 0000000002 3 3 0000000003 4 4 0000000004 +4 74 NULL 5 5 0000000005 6 6 0000000006 7 7 0000000007 8 8 0000000008 9 9 0000000009 -10 10 0000000010 CREATE or REPLACE VIEW v1 AS select f59,f60,f61 -FROM test.tb2 limit 4,3; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59,f60,f61 limit 4,3; f59 f60 f61 +4 74 NULL 5 5 0000000005 6 6 0000000006 -7 7 0000000007 CREATE or REPLACE VIEW v1 AS select distinct f59 -FROM test.tb2 limit 4,3; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59 limit 4,3; f59 5 6 7 ALTER VIEW v1 AS select f59 -FROM test.tb2 limit 6,2; -select * FROM v1 limit 0,10; +FROM test.tb2; +select * FROM v1 order by f59 limit 6,2; f59 +6 +7 +CREATE or REPLACE VIEW v1 AS select f59 +from tb2 order by f59; +select * FROM v1 order by f59 limit 0,10; +f59 +1 +2 +3 +4 +4 +5 +6 7 8 +9 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 limit 100; +from tb2 order by f59 asc; select * FROM v1 limit 0,10; f59 1 @@ -258,21 +320,7 @@ f59 8 9 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 asc limit 100; -select * FROM v1 limit 0,10; -f59 -1 -2 -3 -4 -4 -5 -6 -7 -8 -9 -CREATE or REPLACE VIEW v1 AS select f59 -from tb2 order by f59 desc limit 100; +from tb2 order by f59 desc; select * FROM v1 limit 0,10; f59 569300 @@ -286,8 +334,8 @@ f59 987 660 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -300,8 +348,8 @@ f59 9 10 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 asc limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59 asc; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -314,22 +362,22 @@ f59 9 10 CREATE or REPLACE VIEW v1 AS select f59 -from tb2 group by f59 desc limit 100; -select * FROM v1 limit 0,10; +from tb2 group by f59 desc; +select * FROM v1 order by f59 limit 0,10; f59 -569300 -76710 -9112 -7876 -3410 -3330 -2760 -2550 -987 -660 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 CREATE or REPLACE VIEW v1 AS (select f59 from tb2) -union (select f59 from t1) limit 100; -select * FROM v1 limit 0,10; +union (select f59 from t1); +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -343,7 +391,7 @@ f59 10 CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION DISTINCT(select f59 FROM t1) ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59 limit 0,10; f59 1 2 @@ -357,103 +405,3581 @@ f59 10 CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION ALL(select f59 FROM t1) ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f59 limit 0,10; f59 1 2 3 4 +4 5 6 7 8 9 -10 CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH LOCAL CHECK OPTION ; -select * FROM v1 limit 0,50; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set @@@@@@ I@I@ @@@@@@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set @@@@ @ @ 9@.@ @@@@ @ @ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@ @@@@ @ @ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f110 @@@@@@ +f111 I@I@ +f112 @@@@@@ +f113 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f114 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f115 @@ +f116 @@@@@@ +f117 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f110 @@@@ @ @ +f111 9@.@ +f112 @@@@ @ @ +f113 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f114 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f115 @@ +f116 @@@@ @ @ +f117 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH CASCADED CHECK OPTION ; -select * FROM v1 limit 0,10; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set @@@@@@ I@I@ @@@@@@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set @@@@ @ @ 9@.@ @@@@ @ @ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@ @@@@ @ @ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL +select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f110 @@@@@@ +f111 I@I@ +f112 @@@@@@ +f113 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f114 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f115 @@ +f116 @@@@@@ +f117 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f110 @@@@ @ @ +f111 9@.@ +f112 @@@@ @ @ +f113 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f114 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f115 @@ +f116 @@@@ @ @ +f117 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 WITH CASCADED CHECK OPTION; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; F59 F60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 -10 10 CREATE or REPLACE VIEW v1 AS select f59, f60 from test.tb2 where f59=3330 ; -select * FROM v1 limit 0,10; +select * FROM v1 order by f60 limit 0,10; f59 f60 3330 764376 DROP VIEW v1 ; @@ -516,8 +4042,8 @@ DROP VIEW v1; Testcase 3.3.1.3 + 3.1.1.4 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or REPLACE AS Select * from tb2 my_table limit 50' at line 1 +CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'or REPLACE AS Select * from tb2 my_table' at line 1 CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select * from tb2 my_table limit 50; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH CASCADED CHECK OPTION AS Select * @@ -526,8 +4052,8 @@ CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select * from tb2 my_table limit 50; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WITH LOCAL CHECK OPTION AS Select * from tb2 my_table limit 50' at line 1 -SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE VIEW As v1 limit 100' at line 1 +SELECT * FROM tb2 my_table CREATE VIEW As v1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE VIEW As v1' at line 1 CREATE or REPLACE VIEW v1 Select f59, f60 from test.tb2 my_table where f59 = 250 ; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Select f59, f60 @@ -602,8 +4128,8 @@ Union ALL (Select from f1 t1); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from f59 tb2) Union ALL (Select from f1 t1)' at line 1 CREATE or REPLACE view v1 as Select f59, f60 -from tb2 by order f59 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by order f59 limit 100' at line 2 +from tb2 by order f59; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by order f59' at line 2 CREATE or REPLACE view v1 as Select f59, f60 from tb2 by group f59 ; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'by group f59' at line 2 @@ -611,12 +4137,12 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp Testcase 3.3.1.5 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -CREATE VIEW v1 SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM tb2 limit 100' at line 1 -CREATE v1 AS SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'v1 AS SELECT * FROM tb2 limit 100' at line 1 -VIEW v1 AS SELECT * FROM tb2 limit 100 ; -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 AS SELECT * FROM tb2 limit 100' at line 1 +CREATE VIEW v1 SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * FROM tb2' at line 1 +CREATE v1 AS SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'v1 AS SELECT * FROM tb2' at line 1 +VIEW v1 AS SELECT * FROM tb2; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 AS SELECT * FROM tb2' at line 1 CREATE VIEW v1 AS SELECT 1; DROP VIEW v1; VIEW v1 AS SELECT 1; @@ -634,45 +4160,43 @@ Testcase 3.3.1.6 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; CREATE or REPLACE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = MERGE VIEW v1 -as SELECT * from tb2 limit 100 ; -Warnings: -Warning 1354 View merge algorithm can't be used here for now (assumed undefined algorithm) +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM = VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE = ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TEMPTABLE - ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'GARBAGE VIEW v1 -as SELECT * from tb2 limit 100' at line 1 +as SELECT * from tb2' at line 1 Drop view if exists v1 ; CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1; @@ -698,7 +4222,7 @@ ERROR 42000: You have an error in your SQL syntax; check the manual that corresp Testcase 3.3.1.7 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1 ; -Create view test.v1 AS Select * from test.tb2 limit 100 ; +Create view test.v1 AS Select * from test.tb2; Alter view test.v1 AS Select F59 from test. tb2 limit 100 ; Drop view test.v1 ; Create view v1 AS Select * from test.tb2 limit 100 ; @@ -897,60 +4421,175 @@ v1 CREATE ALGORITHM=TEMPTABLE DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI SELECT * FROM test.v1; f1 1 -CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2; +CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2; SHOW CREATE VIEW test.v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109`,`tb2`.`f110` AS `f110`,`tb2`.`f111` AS `f111`,`tb2`.`f112` AS `f112`,`tb2`.`f113` AS `f113`,`tb2`.`f114` AS `f114`,`tb2`.`f115` AS `f115`,`tb2`.`f116` AS `f116`,`tb2`.`f117` AS `f117` from `tb2` limit 2 -SELECT * FROM test.v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100; +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `f59`,`tb2`.`f60` AS `f60`,`tb2`.`f61` AS `f61`,`tb2`.`f62` AS `f62`,`tb2`.`f63` AS `f63`,`tb2`.`f64` AS `f64`,`tb2`.`f65` AS `f65`,`tb2`.`f66` AS `f66`,`tb2`.`f67` AS `f67`,`tb2`.`f68` AS `f68`,`tb2`.`f69` AS `f69`,`tb2`.`f70` AS `f70`,`tb2`.`f71` AS `f71`,`tb2`.`f72` AS `f72`,`tb2`.`f73` AS `f73`,`tb2`.`f74` AS `f74`,`tb2`.`f75` AS `f75`,`tb2`.`f76` AS `f76`,`tb2`.`f77` AS `f77`,`tb2`.`f78` AS `f78`,`tb2`.`f79` AS `f79`,`tb2`.`f80` AS `f80`,`tb2`.`f81` AS `f81`,`tb2`.`f82` AS `f82`,`tb2`.`f83` AS `f83`,`tb2`.`f84` AS `f84`,`tb2`.`f85` AS `f85`,`tb2`.`f86` AS `f86`,`tb2`.`f87` AS `f87`,`tb2`.`f88` AS `f88`,`tb2`.`f89` AS `f89`,`tb2`.`f90` AS `f90`,`tb2`.`f91` AS `f91`,`tb2`.`f92` AS `f92`,`tb2`.`f93` AS `f93`,`tb2`.`f94` AS `f94`,`tb2`.`f95` AS `f95`,`tb2`.`f96` AS `f96`,`tb2`.`f97` AS `f97`,`tb2`.`f98` AS `f98`,`tb2`.`f99` AS `f99`,`tb2`.`f100` AS `f100`,`tb2`.`f101` AS `f101`,`tb2`.`f102` AS `f102`,`tb2`.`f103` AS `f103`,`tb2`.`f104` AS `f104`,`tb2`.`f105` AS `f105`,`tb2`.`f106` AS `f106`,`tb2`.`f107` AS `f107`,`tb2`.`f108` AS `f108`,`tb2`.`f109` AS `f109`,`tb2`.`f110` AS `f110`,`tb2`.`f111` AS `f111`,`tb2`.`f112` AS `f112`,`tb2`.`f113` AS `f113`,`tb2`.`f114` AS `f114`,`tb2`.`f115` AS `f115`,`tb2`.`f116` AS `f116`,`tb2`.`f117` AS `f117` from `tb2` order by `tb2`.`f59` limit 2 +SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2; SHOW CREATE VIEW test.v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` limit 10,100 -SELECT * FROM test.v1; +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `tb2`.`f59` AS `F59` from `tb2` +SELECT * FROM test.v1 order by F59 limit 10,100; F59 -76710 -2760 -569300 -660 -250 -340 -3410 -2550 -3330 -441 -24 -323 -34 -4 +10 15 -22 -394 -94 -195 -292 -987 -7876 -321 -9112 -500 -500 -500 -107 -109 -207 -209 -27 -29 17 19 +22 +24 +27 +29 +34 +94 +107 107 109 -299 +109 +195 +207 +209 242 +250 +292 +299 +321 +323 +340 +394 424 +441 +500 +500 +500 +660 +987 +2550 +2760 +3330 +3410 +7876 +9112 +76710 +569300 Drop table test.t1 ; Drop view test.v1 ; @@ -964,11 +4603,10 @@ ERROR HY000: 'test.tb2' is not VIEW Testcase 3.3.1.15 -------------------------------------------------------------------------------- Drop table if exists test.v1 ; -CREATE OR REPLACE view test.v1 as select * from tb2 LIMIT 2; +CREATE OR REPLACE view test.v1 as select * from tb2; SELECT * FROM test.v1; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ +1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set Drop view test.v1 ; Testcase 3.3.1.16 + 3.3.1.17 @@ -1101,8 +4739,8 @@ ERROR HY000: View's SELECT and view's field list have different column counts Testcase 3.3.1.21 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2; -SELECT * FROM test.v1; +CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2; +SELECT * FROM test.v1 order by F59, F60 desc LIMIT 2; F59 F60 1 1 2 2 @@ -1111,7 +4749,7 @@ Drop view if exists test.v1 ; Testcase 3.3.1.22 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 LIMIT 2; +CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 WHERE f59 < 3; SELECT * FROM test.v1; product 1 @@ -1198,20 +4836,19 @@ DROP TEMPORARY TABLE t2; Testcase 3.3.1.26 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS v1; -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; Select * from test.v1; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ +1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set Drop view test.v1 ; Testcase 3.3.1.27 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS test.v1; Drop VIEW IF EXISTS test.v1_1 ; -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; Create view test.v1_1 AS Select F59 from test.v1 ; -Select * from test.v1_1 limit 20 ; +Select * from test.v1_1 order by F59 limit 2; F59 1 2 @@ -1225,58 +4862,2957 @@ create database test2 ; Create view test2.v2 AS Select * from test.tb2 limit 50,50; use test2 ; Create view v1 AS Select * from test.tb2 limit 50 ; -Select * from v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -4 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set @@@@@@ I@I@ @@@@@@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set @@@@ @ @ 9@.@ @@@@ @ @ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@ @@@@ @ @ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -24 51654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -323 14376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -34 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -4 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -15 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -22 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -394 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -94 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -195 87 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -292 93 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -987 41 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -7876 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -321 NULL 0000000765 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -9112 NULL 0000008771 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -500 NULL 0000000900 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -207 205 0000000206 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -209 208 0000000204 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -27 25 0000000026 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -29 28 0000000024 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -17 15 0000000016 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -19 18 0000000014 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -107 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -109 108 0000000104 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -299 899 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -424 89 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +Select * from v1 order by f59,f60,f61,f62,f63,f64,f65; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 4 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 4 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f110 @@@@@@ +f111 I@I@ +f112 @@@@@@ +f113 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f114 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f115 @@ +f116 @@@@@@ +f117 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f110 @@@@ @ @ +f111 9@.@ +f112 @@@@ @ @ +f113 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f114 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f115 @@ +f116 @@@@ @ @ +f117 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL Select * from test2.v2 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 Drop view if exists test2.v1 ; @@ -1339,18 +7875,18 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view if exists test.v1_firstview ; Drop view if exists test.v1_secondview ; Drop view if exists test.v1 ; @@ -1368,18 +7904,18 @@ CREATE VIEW v1 AS SELECT test.v1_firstview.F59, test.v1_firstview.F60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; F59 F60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view v1 ; Drop view test.v1_firstview ; Drop view test.v1_secondview ; @@ -1394,18 +7930,18 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.tb2 ON test.v1_firstview.f59 = test.tb2.f59; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop view test.v1 ; Drop view test.v1_firstview; @@ -1418,18 +7954,18 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ; CREATE VIEW v1 AS SELECT v1_firstview.f59, v1_firstview.f60 FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 4 +4 74 4 74 5 5 6 6 7 7 -8 8 -9 9 Drop database test2 ; Testcase 3.3.1.37 @@ -1441,18 +7977,18 @@ Drop view if exists test.v1_1 ; Drop view if exists test.v1_1 ; Drop view if exists test.v1_main ; Create view test.v1 as Select f59, f60 FROM test.tb2; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59,f60 limit 0,10; f59 f60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 -10 10 Create table t1(f59 int, f60 int); Insert into t1 values (90,507) ; Create view v1_1 as Select f59,f60 from t1 ; @@ -1462,18 +7998,18 @@ f59 f60 Create view v1_main as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1 ON test.tb2.f59 = test.v1.f59; -Select * from v1_main limit 0,10; +Select * from v1_main order by f59 limit 0,10; f59 1 2 3 4 4 +4 +4 5 6 7 -8 -9 Drop table t1; Drop view test.v1 ; Drop view test.v1_1 ; @@ -1758,29 +8294,29 @@ Drop view if exists test.v1 ; Drop view if exists test.v1_main; Drop view if exists test1.v1_1 ; Drop database if exists test3 ; -Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ; -Select * from test.v1 ; +Create view test.v1 as Select f59, f60 FROM test.tb2; +Select * from test.v1 order by f59,f60 limit 20; f59 f60 1 1 2 2 3 3 4 4 +4 74 5 5 6 6 7 7 8 8 9 9 10 10 -76710 226546 -2760 985654 -569300 9114376 -660 876546 -250 87895654 -340 9984376 -3410 996546 -2550 775654 -3330 764376 -441 16546 +15 87 +17 15 +19 18 +22 93 +24 51654 +27 25 +29 28 +34 41 +94 74 Create table test1.t1 (f59 int,f60 int) ; Insert into test1.t1 values (199,507) ; Create view test1.v1_1 as Select f59,f60 from test1.t1 ; @@ -1813,7 +8349,7 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS Select f59 from (Select * FROM tb2 limit 20) tx ; ERROR HY000: View's SELECT contains a subquery in the FROM clause -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; ERROR 42S02: Table 'test.v1' doesn't exist Drop view if exists test.v1 ; @@ -1867,12 +8403,126 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2; INSERT INTO test.v1 values(122,432); SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -122 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +f59 122 +f60 432 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ; SELECT * FROM test.tb2 where f59 = 3000 limit 0,20; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -3000 432 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +f59 3000 +f60 432 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL DELETE FROM test.v1 where test.v1.f59 = 3000 and test.v1.f60 = 432; SELECT * FROM test.tb2 where f59 = 3000 and f60 = 432; @@ -1894,20 +8544,250 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04; UPDATE test.v1 SET f59 = 30 where F59 = 04 ; affected rows: 2 info: Rows matched: 2 Changed: 2 Warnings: 0 -SELECT * FROM test.v1 where f59 = 30 ; +SELECT * FROM test.v1 where f59 = 30 order by f59; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 SELECT * FROM test.tb2 where f59 = 30 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -30 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -30 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +f59 30 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 30 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL UPDATE tb2 SET f59 = 100 where f59 = 30 ; affected rows: 2 info: Rows matched: 2 Changed: 2 Warnings: 0 SELECT * FROM tb2 where f59 = 100 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -100 74 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -SELECT * FROM test.v1 ; +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +SELECT * FROM test.v1 order by f59 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 drop view if exists test.v1 ; Drop TABLE IF EXISTS test.t1 ; @@ -1983,7 +8863,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 where f59 = 195 WITH CHECK OPTION ; UPDATE test.v1 SET f59 = 198 where f59=195 ; ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; f59 f60 195 87 drop view if exists test.v1 ; @@ -1997,7 +8877,7 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ; CREATE VIEW test.v2 as SELECT * FROM test.v1 ; UPDATE test.v1 SET F59 = 919 where f59 = 0987 ; ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; f59 f60 987 41 UPDATE test.v2 SET F59 = 9879 where f59 = 919 ; @@ -2013,12 +8893,12 @@ DROP VIEW IF EXISTS test.v1; CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER) ENGINE = myisam; INSERT INTO t1 VALUES ('A', 1); -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 A 1 CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2 WITH CASCADED CHECK OPTION ; -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 1 UPDATE v1 SET f2 = 2 WHERE f2 = 1; @@ -2026,7 +8906,7 @@ affected rows: 1 info: Rows matched: 1 Changed: 1 Warnings: 0 INSERT INTO v1 VALUES('B',2); affected rows: 1 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 2 B 2 @@ -2034,7 +8914,7 @@ UPDATE v1 SET f2 = 4; ERROR HY000: CHECK OPTION failed 'test.v1' INSERT INTO v1 VALUES('B',3); ERROR HY000: CHECK OPTION failed 'test.v1' -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; f1 f2 A 2 B 2 @@ -9670,8 +16550,8 @@ WHERE v3_to_v1_options LIKE ' %' AND errno <> 0 ORDER BY v3_to_v1_options; v3_to_v1_options statement v3_to_v1_violation errno SELECT * FROM t1_results -WHERE v3_to_v1_options LIKE 'WITH %' -AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0 +WHERE v3_to_v1_options LIKE 'WITH %' + AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0 ORDER BY v3_to_v1_options; v3_to_v1_options statement v3_to_v1_violation errno SELECT * FROM t1_results @@ -9691,116 +16571,5989 @@ DROP TABLE t1_results; Testcase 3.3.1.50 - 3.3.1.53 -------------------------------------------------------------------------------- DROP VIEW IF EXISTS test.v1; -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ; -SELECT * FROM test.v1 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set @@@@@@ I@I@ @@@@@@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +CREATE VIEW test.v1 AS SELECT * FROM test.tb2; +SELECT * FROM test.v1 order by f59,f60,f61 ; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f110 @@@@@@ +f111 I@I@ +f112 @@@@@@ +f113 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f114 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f115 @@ +f116 @@@@@@ +f117 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f110 @@@@ @ @ +f111 9@.@ +f112 @@@@ @ @ +f113 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f114 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f115 @@ +f116 @@@@ @ @ +f117 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ; -SELECT * FROM test.v1 ; +CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2; +SELECT * FROM test.v1 order by F59, F61 limit 50; F59 F61 1 0000000001 2 0000000002 3 0000000003 -100 0000000004 5 0000000005 6 0000000006 7 0000000007 8 0000000008 9 0000000009 10 0000000010 -76710 NULL -2760 NULL -569300 NULL -660 NULL -250 NULL -340 NULL -3410 NULL -2550 NULL -3330 NULL -441 NULL -24 NULL -323 NULL -34 NULL -100 NULL 15 NULL -22 NULL -394 NULL -94 NULL -195 NULL -292 NULL -987 NULL -7876 NULL -321 0000000765 -9112 0000008771 -500 0000000900 -500 0000000900 -500 0000000900 -107 0000000106 -109 0000000104 -207 0000000206 -209 0000000204 -27 0000000026 -29 0000000024 17 0000000016 19 0000000014 +22 NULL +24 NULL +27 0000000026 +29 0000000024 +34 NULL +94 NULL +100 NULL +100 0000000004 +107 0000000106 107 0000000106 109 0000000104 -299 NULL +109 0000000104 +195 NULL +207 0000000206 +209 0000000204 242 NULL +250 NULL +292 NULL +299 NULL +321 0000000765 +323 NULL +340 NULL +394 NULL 424 NULL +441 NULL +500 0000000900 +500 0000000900 +500 0000000900 +660 NULL +987 NULL +2550 NULL +2760 NULL +3330 NULL +3410 NULL +7876 NULL +9112 0000008771 +76710 NULL +569300 NULL drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ; -SELECT * FROM test.v1; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -1 1 0000000001 0000000000000000000000000000000000000000000000000000000000000001 0000000001 0000000000000000000000000000000000000000000000000000000000000001 -5 0.000000000000000000000000000000 1 0.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 0000000001 000000000000000000000000000000000.000000000000000000000000000000 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549435e-38 1.175494352e-38 00000001.175494352e-38 00000001.175494352e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549435e-38 1.17549e-38 1.175494352e-38 01.17549e-38 00000001.175494352e-38 01.17549e-38 00000001.175494352e-38 1000-01-01 838:59:58 1970-01-02 00:00:01 1970-01-02 00:00:01 1902 1902 1902 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -2 2 0000000002 0000000000000000000000000000000000000000000000000000000000000002 0000000002 0000000000000000000000000000000000000000000000000000000000000002 -4 1.100000000000000000000000000000 2 1.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 0000000002 000000000000000000000000000000001.100000000000000000000000000000 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.175494349e-38 1.175494353e-38 00000001.175494353e-38 00000001.175494353e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494349e-38 1.17549e-38 1.175494353e-38 01.17549e-38 00000001.175494353e-38 01.17549e-38 00000001.175494353e-38 1000-01-02 838:59:57 1970-01-03 00:00:02 1970-01-03 00:00:02 1903 1903 1903 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -3 3 0000000003 0000000000000000000000000000000000000000000000000000000000000003 0000000003 0000000000000000000000000000000000000000000000000000000000000003 -3 2.200000000000000000000000000000 3 2.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 0000000003 000000000000000000000000000000002.200000000000000000000000000000 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.175494348e-38 1.175494354e-38 00000001.175494354e-38 00000001.175494354e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494348e-38 1.17549e-38 1.175494354e-38 01.17549e-38 00000001.175494354e-38 01.17549e-38 00000001.175494354e-38 1000-01-03 838:59:56 1970-01-04 00:00:03 1970-01-04 00:00:03 1904 1904 1904 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -100 4 0000000004 0000000000000000000000000000000000000000000000000000000000000004 0000000004 0000000000000000000000000000000000000000000000000000000000000004 -2 3.300000000000000000000000000000 4 3.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 0000000004 000000000000000000000000000000003.300000000000000000000000000000 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.175494347e-38 1.175494355e-38 00000001.175494355e-38 00000001.175494355e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494347e-38 1.17549e-38 1.175494355e-38 01.17549e-38 00000001.175494355e-38 01.17549e-38 00000001.175494355e-38 1000-01-04 838:59:55 1970-01-05 00:00:04 1970-01-05 00:00:04 1905 1905 1905 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -5 5 0000000005 0000000000000000000000000000000000000000000000000000000000000005 0000000005 0000000000000000000000000000000000000000000000000000000000000005 -1 4.400000000000000000000000000000 5 4.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 0000000005 000000000000000000000000000000004.400000000000000000000000000000 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.175494346e-38 1.175494356e-38 00000001.175494356e-38 00000001.175494356e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494346e-38 1.17549e-38 1.175494356e-38 01.17549e-38 00000001.175494356e-38 01.17549e-38 00000001.175494356e-38 1000-01-05 838:59:54 1970-01-06 00:00:05 1970-01-06 00:00:05 1906 1906 1906 2enum 1set,2set @@@@@@ I@I@ @@@@@@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ @@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ -6 6 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0000000006 0000000000000000000000000000000000000000000000000000000000000006 0 5.500000000000000000000000000000 6 5.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 0000000006 000000000000000000000000000000005.500000000000000000000000000000 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.175494345e-38 1.175494357e-38 00000001.175494357e-38 00000001.175494357e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494345e-38 1.17549e-38 1.175494357e-38 01.17549e-38 00000001.175494357e-38 01.17549e-38 00000001.175494357e-38 1000-01-06 838:59:53 1970-01-07 00:00:06 1970-01-07 00:00:06 1907 1907 1907 1enum 1set @@@@ @ @ 9@.@ @@@@ @ @ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ @@ @@@@ @ @ @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ -7 7 0000000007 0000000000000000000000000000000000000000000000000000000000000007 0000000007 0000000000000000000000000000000000000000000000000000000000000007 1 6.600000000000000000000000000000 7 6.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 0000000007 000000000000000000000000000000006.600000000000000000000000000000 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.175494344e-38 1.175494358e-38 00000001.175494358e-38 00000001.175494358e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494344e-38 1.17549e-38 1.175494358e-38 01.17549e-38 00000001.175494358e-38 01.17549e-38 00000001.175494358e-38 1000-01-07 838:59:52 1970-01-08 00:00:07 1970-01-08 00:00:07 1908 1908 1908 2enum 2set ��@@ $@$@ ��@@ $@$@$@$@@@@@@@@@@@ $@$@$@$@@@@@@@@@@@  ��@@ $@$@$@$@@@@@@@@@@@ -8 8 0000000008 0000000000000000000000000000000000000000000000000000000000000008 0000000008 0000000000000000000000000000000000000000000000000000000000000008 2 7.700000000000000000000000000000 8 7.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 0000000008 000000000000000000000000000000007.700000000000000000000000000000 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.175494343e-38 1.175494359e-38 00000001.175494359e-38 00000001.175494359e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494343e-38 1.17549e-38 1.175494359e-38 01.17549e-38 00000001.175494359e-38 01.17549e-38 00000001.175494359e-38 1000-01-08 838:59:51 1970-01-09 00:00:08 1970-01-09 00:00:08 1909 1909 1909 1enum 1set,2set ��@@@@ 4@4@ ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ �� ��@@@@ ��4@�4@4@�4@��@@ @@ @ @@ @@@ -9 9 0000000009 0000000000000000000000000000000000000000000000000000000000000009 0000000009 0000000000000000000000000000000000000000000000000000000000000009 3 8.800000000000000000000000000000 9 8.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 0000000009 000000000000000000000000000000008.800000000000000000000000000000 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.175494342e-38 1.17549436e-38 000000001.17549436e-38 000000001.17549436e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494342e-38 1.17549e-38 1.17549436e-38 01.17549e-38 000000001.17549436e-38 01.17549e-38 000000001.17549436e-38 1000-01-09 838:59:50 1970-01-10 00:00:09 1970-01-10 00:00:09 1910 1910 1910 2enum 1set @@@@@@ >@>@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ @@ @@@@@@ @@4@@>@>@@>@@@@@"@@"@"@@"@@@ -10 10 0000000010 0000000000000000000000000000000000000000000000000000000000000010 0000000010 0000000000000000000000000000000000000000000000000000000000000010 4 9.900000000000000000000000000000 10 9.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 0000000010 000000000000000000000000000000009.900000000000000000000000000000 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.175494341e-38 1.175494361e-38 00000001.175494361e-38 00000001.175494361e-38 -1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.17549e-38 1.17549e-38 1.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 01.17549e-38 -1.17549e-38 -1.175494341e-38 1.17549e-38 1.175494361e-38 01.17549e-38 00000001.175494361e-38 01.17549e-38 00000001.175494361e-38 1000-01-10 838:59:49 1970-01-11 00:00:10 1970-01-11 00:00:10 1911 1911 1911 1enum 2set @@@@@@ D@D@ @@@@@@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ @*@ @@@@@@ NULL -76710 226546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -2760 985654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -569300 9114376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -660 876546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -250 87895654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -340 9984376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -3410 996546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -2550 775654 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -3330 764376 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -441 16546 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61; +SELECT * FROM test.v1 order by f59,f60,f61 ; +f59 1 +f60 1 +f61 0000000001 +f62 0000000000000000000000000000000000000000000000000000000000000001 +f63 0000000001 +f64 0000000000000000000000000000000000000000000000000000000000000001 +f65 -5 +f66 0.000000000000000000000000000000 +f67 1 +f68 0.000000000000000000000000000000 +f69 0000000001 +f70 000000000000000000000000000000000.000000000000000000000000000000 +f71 0000000001 +f72 000000000000000000000000000000000.000000000000000000000000000000 +f73 -1.17549435e-38 +f74 1.175494352e-38 +f75 00000001.175494352e-38 +f76 00000001.175494352e-38 +f77 -1.17549435e-38 +f78 1.175494352e-38 +f79 00000001.175494352e-38 +f80 00000001.175494352e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.17549435e-38 +f95 1.17549e-38 +f96 1.175494352e-38 +f97 01.17549e-38 +f98 00000001.175494352e-38 +f99 01.17549e-38 +f100 00000001.175494352e-38 +f101 1000-01-01 +f102 838:59:58 +f103 1970-01-02 00:00:01 +f104 1970-01-02 00:00:01 +f105 1902 +f106 1902 +f107 1902 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 2 +f60 2 +f61 0000000002 +f62 0000000000000000000000000000000000000000000000000000000000000002 +f63 0000000002 +f64 0000000000000000000000000000000000000000000000000000000000000002 +f65 -4 +f66 1.100000000000000000000000000000 +f67 2 +f68 1.100000000000000000000000000000 +f69 0000000002 +f70 000000000000000000000000000000001.100000000000000000000000000000 +f71 0000000002 +f72 000000000000000000000000000000001.100000000000000000000000000000 +f73 -1.175494349e-38 +f74 1.175494353e-38 +f75 00000001.175494353e-38 +f76 00000001.175494353e-38 +f77 -1.175494349e-38 +f78 1.175494353e-38 +f79 00000001.175494353e-38 +f80 00000001.175494353e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494349e-38 +f95 1.17549e-38 +f96 1.175494353e-38 +f97 01.17549e-38 +f98 00000001.175494353e-38 +f99 01.17549e-38 +f100 00000001.175494353e-38 +f101 1000-01-02 +f102 838:59:57 +f103 1970-01-03 00:00:02 +f104 1970-01-03 00:00:02 +f105 1903 +f106 1903 +f107 1903 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 3 +f60 3 +f61 0000000003 +f62 0000000000000000000000000000000000000000000000000000000000000003 +f63 0000000003 +f64 0000000000000000000000000000000000000000000000000000000000000003 +f65 -3 +f66 2.200000000000000000000000000000 +f67 3 +f68 2.200000000000000000000000000000 +f69 0000000003 +f70 000000000000000000000000000000002.200000000000000000000000000000 +f71 0000000003 +f72 000000000000000000000000000000002.200000000000000000000000000000 +f73 -1.175494348e-38 +f74 1.175494354e-38 +f75 00000001.175494354e-38 +f76 00000001.175494354e-38 +f77 -1.175494348e-38 +f78 1.175494354e-38 +f79 00000001.175494354e-38 +f80 00000001.175494354e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494348e-38 +f95 1.17549e-38 +f96 1.175494354e-38 +f97 01.17549e-38 +f98 00000001.175494354e-38 +f99 01.17549e-38 +f100 00000001.175494354e-38 +f101 1000-01-03 +f102 838:59:56 +f103 1970-01-04 00:00:03 +f104 1970-01-04 00:00:03 +f105 1904 +f106 1904 +f107 1904 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 5 +f60 5 +f61 0000000005 +f62 0000000000000000000000000000000000000000000000000000000000000005 +f63 0000000005 +f64 0000000000000000000000000000000000000000000000000000000000000005 +f65 -1 +f66 4.400000000000000000000000000000 +f67 5 +f68 4.400000000000000000000000000000 +f69 0000000005 +f70 000000000000000000000000000000004.400000000000000000000000000000 +f71 0000000005 +f72 000000000000000000000000000000004.400000000000000000000000000000 +f73 -1.175494346e-38 +f74 1.175494356e-38 +f75 00000001.175494356e-38 +f76 00000001.175494356e-38 +f77 -1.175494346e-38 +f78 1.175494356e-38 +f79 00000001.175494356e-38 +f80 00000001.175494356e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494346e-38 +f95 1.17549e-38 +f96 1.175494356e-38 +f97 01.17549e-38 +f98 00000001.175494356e-38 +f99 01.17549e-38 +f100 00000001.175494356e-38 +f101 1000-01-05 +f102 838:59:54 +f103 1970-01-06 00:00:05 +f104 1970-01-06 00:00:05 +f105 1906 +f106 1906 +f107 1906 +f108 2enum +f109 1set,2set +f110 @@@@@@ +f111 I@I@ +f112 @@@@@@ +f113 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f114 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f115 @@ +f116 @@@@@@ +f117 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f59 6 +f60 6 +f61 0000000006 +f62 0000000000000000000000000000000000000000000000000000000000000006 +f63 0000000006 +f64 0000000000000000000000000000000000000000000000000000000000000006 +f65 0 +f66 5.500000000000000000000000000000 +f67 6 +f68 5.500000000000000000000000000000 +f69 0000000006 +f70 000000000000000000000000000000005.500000000000000000000000000000 +f71 0000000006 +f72 000000000000000000000000000000005.500000000000000000000000000000 +f73 -1.175494345e-38 +f74 1.175494357e-38 +f75 00000001.175494357e-38 +f76 00000001.175494357e-38 +f77 -1.175494345e-38 +f78 1.175494357e-38 +f79 00000001.175494357e-38 +f80 00000001.175494357e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494345e-38 +f95 1.17549e-38 +f96 1.175494357e-38 +f97 01.17549e-38 +f98 00000001.175494357e-38 +f99 01.17549e-38 +f100 00000001.175494357e-38 +f101 1000-01-06 +f102 838:59:53 +f103 1970-01-07 00:00:06 +f104 1970-01-07 00:00:06 +f105 1907 +f106 1907 +f107 1907 +f108 1enum +f109 1set +f110 @@@@ @ @ +f111 9@.@ +f112 @@@@ @ @ +f113 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f114 @@Q@@Q@Q@@Q@@@&@&@*@&@*@*@&@*@&@&@ +f115 @@ +f116 @@@@ @ @ +f117 @@N@@N@N@@N@@@$@$@(@$@(@(@$@(@$@$@ +f59 7 +f60 7 +f61 0000000007 +f62 0000000000000000000000000000000000000000000000000000000000000007 +f63 0000000007 +f64 0000000000000000000000000000000000000000000000000000000000000007 +f65 1 +f66 6.600000000000000000000000000000 +f67 7 +f68 6.600000000000000000000000000000 +f69 0000000007 +f70 000000000000000000000000000000006.600000000000000000000000000000 +f71 0000000007 +f72 000000000000000000000000000000006.600000000000000000000000000000 +f73 -1.175494344e-38 +f74 1.175494358e-38 +f75 00000001.175494358e-38 +f76 00000001.175494358e-38 +f77 -1.175494344e-38 +f78 1.175494358e-38 +f79 00000001.175494358e-38 +f80 00000001.175494358e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494344e-38 +f95 1.17549e-38 +f96 1.175494358e-38 +f97 01.17549e-38 +f98 00000001.175494358e-38 +f99 01.17549e-38 +f100 00000001.175494358e-38 +f101 1000-01-07 +f102 838:59:52 +f103 1970-01-08 00:00:07 +f104 1970-01-08 00:00:07 +f105 1908 +f106 1908 +f107 1908 +f108 2enum +f109 2set +f110 ��@@ +f111 $@$@ +f112 ��@@ +f113 $@$@$@$@@@@@@@@@@@ +f114 $@$@$@$@@@@@@@@@@@ +f115  +f116 ��@@ +f117 $@$@$@$@@@@@@@@@@@ +f59 8 +f60 8 +f61 0000000008 +f62 0000000000000000000000000000000000000000000000000000000000000008 +f63 0000000008 +f64 0000000000000000000000000000000000000000000000000000000000000008 +f65 2 +f66 7.700000000000000000000000000000 +f67 8 +f68 7.700000000000000000000000000000 +f69 0000000008 +f70 000000000000000000000000000000007.700000000000000000000000000000 +f71 0000000008 +f72 000000000000000000000000000000007.700000000000000000000000000000 +f73 -1.175494343e-38 +f74 1.175494359e-38 +f75 00000001.175494359e-38 +f76 00000001.175494359e-38 +f77 -1.175494343e-38 +f78 1.175494359e-38 +f79 00000001.175494359e-38 +f80 00000001.175494359e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494343e-38 +f95 1.17549e-38 +f96 1.175494359e-38 +f97 01.17549e-38 +f98 00000001.175494359e-38 +f99 01.17549e-38 +f100 00000001.175494359e-38 +f101 1000-01-08 +f102 838:59:51 +f103 1970-01-09 00:00:08 +f104 1970-01-09 00:00:08 +f105 1909 +f106 1909 +f107 1909 +f108 1enum +f109 1set,2set +f110 ��@@@@ +f111 4@4@ +f112 ��@@@@ +f113 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f114 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f115 �� +f116 ��@@@@ +f117 ��4@�4@4@�4@��@@ @@ @ @@ @@@ +f59 9 +f60 9 +f61 0000000009 +f62 0000000000000000000000000000000000000000000000000000000000000009 +f63 0000000009 +f64 0000000000000000000000000000000000000000000000000000000000000009 +f65 3 +f66 8.800000000000000000000000000000 +f67 9 +f68 8.800000000000000000000000000000 +f69 0000000009 +f70 000000000000000000000000000000008.800000000000000000000000000000 +f71 0000000009 +f72 000000000000000000000000000000008.800000000000000000000000000000 +f73 -1.175494342e-38 +f74 1.17549436e-38 +f75 000000001.17549436e-38 +f76 000000001.17549436e-38 +f77 -1.175494342e-38 +f78 1.17549436e-38 +f79 000000001.17549436e-38 +f80 000000001.17549436e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494342e-38 +f95 1.17549e-38 +f96 1.17549436e-38 +f97 01.17549e-38 +f98 000000001.17549436e-38 +f99 01.17549e-38 +f100 000000001.17549436e-38 +f101 1000-01-09 +f102 838:59:50 +f103 1970-01-10 00:00:09 +f104 1970-01-10 00:00:09 +f105 1910 +f106 1910 +f107 1910 +f108 2enum +f109 1set +f110 @@@@@@ +f111 >@>@ +f112 @@@@@@ +f113 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f114 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f115 @@ +f116 @@@@@@ +f117 @@4@@>@>@@>@@@@@"@@"@"@@"@@@ +f59 10 +f60 10 +f61 0000000010 +f62 0000000000000000000000000000000000000000000000000000000000000010 +f63 0000000010 +f64 0000000000000000000000000000000000000000000000000000000000000010 +f65 4 +f66 9.900000000000000000000000000000 +f67 10 +f68 9.900000000000000000000000000000 +f69 0000000010 +f70 000000000000000000000000000000009.900000000000000000000000000000 +f71 0000000010 +f72 000000000000000000000000000000009.900000000000000000000000000000 +f73 -1.175494341e-38 +f74 1.175494361e-38 +f75 00000001.175494361e-38 +f76 00000001.175494361e-38 +f77 -1.175494341e-38 +f78 1.175494361e-38 +f79 00000001.175494361e-38 +f80 00000001.175494361e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494341e-38 +f95 1.17549e-38 +f96 1.175494361e-38 +f97 01.17549e-38 +f98 00000001.175494361e-38 +f99 01.17549e-38 +f100 00000001.175494361e-38 +f101 1000-01-10 +f102 838:59:49 +f103 1970-01-11 00:00:10 +f104 1970-01-11 00:00:10 +f105 1911 +f106 1911 +f107 1911 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 15 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 17 +f60 15 +f61 0000000016 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 19 +f60 18 +f61 0000000014 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 22 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 24 +f60 51654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 27 +f60 25 +f61 0000000026 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 29 +f60 28 +f61 0000000024 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 34 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 94 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 100 +f60 4 +f61 0000000004 +f62 0000000000000000000000000000000000000000000000000000000000000004 +f63 0000000004 +f64 0000000000000000000000000000000000000000000000000000000000000004 +f65 -2 +f66 3.300000000000000000000000000000 +f67 4 +f68 3.300000000000000000000000000000 +f69 0000000004 +f70 000000000000000000000000000000003.300000000000000000000000000000 +f71 0000000004 +f72 000000000000000000000000000000003.300000000000000000000000000000 +f73 -1.175494347e-38 +f74 1.175494355e-38 +f75 00000001.175494355e-38 +f76 00000001.175494355e-38 +f77 -1.175494347e-38 +f78 1.175494355e-38 +f79 00000001.175494355e-38 +f80 00000001.175494355e-38 +f81 -1.17549e-38 +f82 1.17549e-38 +f83 01.17549e-38 +f84 01.17549e-38 +f85 -1.17549e-38 +f86 -1.17549e-38 +f87 1.17549e-38 +f88 1.17549e-38 +f89 01.17549e-38 +f90 01.17549e-38 +f91 01.17549e-38 +f92 01.17549e-38 +f93 -1.17549e-38 +f94 -1.175494347e-38 +f95 1.17549e-38 +f96 1.175494355e-38 +f97 01.17549e-38 +f98 00000001.175494355e-38 +f99 01.17549e-38 +f100 00000001.175494355e-38 +f101 1000-01-04 +f102 838:59:55 +f103 1970-01-05 00:00:04 +f104 1970-01-05 00:00:04 +f105 1905 +f106 1905 +f107 1905 +f108 1enum +f109 2set +f110 @@@@@@ +f111 D@D@ +f112 @@@@@@ +f113 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f114 @@I@@I@I@@I@@@"@"@&@"@&@&@"@&@"@"@ +f115 @*@ +f116 @@@@@@ +f117 NULL +f59 100 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 107 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 109 +f60 108 +f61 0000000104 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 195 +f60 87 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 207 +f60 205 +f61 0000000206 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 209 +f60 208 +f61 0000000204 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 250 +f60 87895654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 292 +f60 93 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 299 +f60 899 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 321 +f60 NULL +f61 0000000765 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 323 +f60 14376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 340 +f60 9984376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 394 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 424 +f60 89 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 441 +f60 16546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 500 +f60 NULL +f61 0000000900 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 660 +f60 876546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 987 +f60 41 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2550 +f60 775654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 2760 +f60 985654 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3330 +f60 764376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 3410 +f60 996546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 7876 +f60 74 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 9112 +f60 NULL +f61 0000008771 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 76710 +f60 226546 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 569300 +f60 9114376 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL drop view test.v1 ; -CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ; -SELECT * FROM test.v1 limit 50; +CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2; +SELECT * FROM test.v1 order by f59,f61 desc limit 20; F59 f61 1 0000000001 2 0000000002 3 0000000003 -100 0000000004 5 0000000005 6 0000000006 7 0000000007 8 0000000008 9 0000000009 10 0000000010 -76710 NULL -2760 NULL -569300 NULL -660 NULL -250 NULL -340 NULL -3410 NULL -2550 NULL -3330 NULL -441 NULL +15 NULL +17 0000000016 +19 0000000014 +22 NULL +24 NULL +27 0000000026 +29 0000000024 +34 NULL +94 NULL +100 0000000004 +100 NULL drop view test.v1 ; Testcase 3.3.1.54 @@ -9819,7 +22572,7 @@ Insert into t2 values (2,2000) ; Insert into t2 values (31,97) ; Create view test.v1 as select t1.f59, t1.f60 from t1,t2 where t1.f59=t2.f59 ; -Select * from test.v1 limit 50 ; +Select * from test.v1 order by f59 limit 50 ; f59 f60 1 10 2 20 @@ -9892,7 +22645,7 @@ create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 from t1 inner join t2 where t1.f59 = t2.f59 ; -select * from test.v1; +select * from test.v1 order by t1_f59 ; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 2 2 double double 6 6 3 3 single-f3 single-f3 4 6 @@ -9905,7 +22658,7 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 Create or replace view test.v1 as Select t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2 cross join t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; t1_f59 t2_f59 1 2 1 3 @@ -9931,7 +22684,7 @@ t1_f59 t2_f59 Create or replace view test.v1 as Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2,t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; t1_f59 t2_f59 1 2 1 3 @@ -9957,7 +22710,7 @@ t1_f59 t2_f59 Create or replace view test.v1 as Select f59, f60, f61, a, b FROM t2 natural join t1; -Select * from v1; +Select * from v1 order by f59; f59 f60 f61 a b 2 double 6 2 2 Select f59, f60, f61, a, b @@ -9968,11 +22721,11 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 +NULL 4 NULL single NULL 4 2 2 double double 6 6 3 3 single-f3 single-f3 4 6 -NULL 4 NULL single NULL 4 Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; @@ -9983,7 +22736,7 @@ NULL 4 NULL single NULL 4 Create or replace view test.v1 as Select f59, f60, f61, t1.a, t2.b FROM t2 natural left outer join t1; -Select * from v1; +Select * from v1 order by f59; f59 f60 f61 a b 2 double 6 2 2 3 single-f3 6 NULL 3 @@ -9998,7 +22751,7 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 right outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 1 NULL single NULL 3 NULL 2 2 double double 6 6 @@ -10013,11 +22766,11 @@ t1_f59 t2_f59 t1_f60 t2_f60 t1_f61 t2_f61 Create or replace view test.v1 as Select f59, f60, a, b FROM t2 natural right outer join t1; -Select * from v1; +Select * from v1 order by f59 desc; f59 f60 a b -1 single 1 NULL -2 double 2 2 3 single-f3 3 NULL +2 double 2 2 +1 single 1 NULL Select f59, f60, a, b FROM t2 natural right outer join t1; f59 f60 a b @@ -10038,18 +22791,18 @@ Insert into t1 values (107,501,601) ; Insert into t1 values (901,801,401) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 1 2 3 -100 5 6 7 8 9 10 +15 Drop view if exists test.v1 ; Drop table if exists t1 ; Drop view if exists v1; @@ -10059,7 +22812,7 @@ Insert into t1 values (207,201,201) ; Insert into t1 values (201,201,201) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 207 Drop view if exists test.v1 ; @@ -10071,7 +22824,7 @@ Insert into t1 values (27,21,21) ; Insert into t1 values (21,21,21) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 27 Drop view test.v1 ; @@ -10086,18 +22839,18 @@ Insert into t1 values (17,51,61) ; Insert into t1 values (91,81,41) ; Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union ALL (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 17 Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union Distinct (Select f59 from t1 where f60=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; f59 17 Drop view test.v1 ; @@ -10109,7 +22862,7 @@ insert into t1 values (107,501,601); insert into t1 values (901,801,401); create or replace view test.v1 as select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59; -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 107 @@ -10117,7 +22870,7 @@ create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union all (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 107 @@ -10126,14 +22879,14 @@ create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union distinct (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; f59 107 drop view if exists test.v1 ; @@ -10144,15 +22897,72 @@ Testcase 3.3.1.64 Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT F59 FROM test.tb2 where test.tb2.F59 = 109; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59 limit 0,10; F59 109 109 ALTER VIEW test.v1 AS SELECT * FROM test.tb2 WHERE test.tb2.f59 = 242 ; -SELECT * FROM test.v1 limit 0,10; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -242 79 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +SELECT * FROM test.v1 order by f59 limit 0,10; +f59 242 +f60 79 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL Drop view test.v1 ; Testcase 3.3.1.65, 3.3.1.A4, 3.3.1.66, 3.3.1.67 @@ -10297,15 +23107,13 @@ ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or functi EXPLAIN SELECT * FROM test3.v32; ERROR HY000: View 'test3.v32' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -FIXME - Setting join_limit to 30 - hangs for higher values +FIXME - Setting join_limit to 28 - hangs for higher values ---------------------------------------------------------- -SET @join_limit = 30; +SET @join_limit = 28; SET @max_level = @join_limit - 1; DROP DATABASE IF EXISTS test3; DROP TABLE IF EXISTS test1.t1; DROP TABLE IF EXISTS test2.t1; -DROP VIEW IF EXISTS test1.v29; -DROP VIEW IF EXISTS test1.v28; DROP VIEW IF EXISTS test1.v27; DROP VIEW IF EXISTS test1.v26; DROP VIEW IF EXISTS test1.v25; @@ -10429,9 +23237,9 @@ FIXME Is this a bug ? EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM test1.v21; DROP VIEW IF EXISTS test1.v21; -CREATE OR REPLACE VIEW test1.v0 AS +CREATE OR REPLACE VIEW test1.v0 AS SELECT f1 as f2, f2 as f1 FROM test2.t1; -CREATE OR REPLACE VIEW test2.v0 AS +CREATE OR REPLACE VIEW test2.v0 AS SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1; SHOW CREATE VIEW test1.v20; SELECT CAST(f1 AS SIGNED INTEGER) AS f1, @@ -10496,8 +23304,65 @@ Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ; INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ; affected rows: 1 SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -2005 101 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL +f59 2005 +f60 101 +f61 NULL +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL SELECT f59,f60 FROM test.v1 where f59 = 2005 and f60 = 0101 ; f59 f60 2005 101 @@ -10513,9 +23378,66 @@ UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105; affected rows: 1 info: Rows matched: 1 Changed: 1 Warnings: 0 SELECT * FROM tb2 where f59 = 8 and f60 = 105; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -8 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105; +f59 8 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ; f59 f60 8 105 Drop view test.v1 ; @@ -10529,12 +23451,243 @@ UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ; affected rows: 4 info: Rows matched: 4 Changed: 4 Warnings: 0 SELECT * FROM tb2 where f59 = 891 and f60 = 105; -f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -891 105 0000000106 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL 7.7 7.7 00000000000000000007.7 00000000000000000008.8 8.8 8.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 0000000008.8 0000000008.8 0000000008.8 8.8 8.8 8.8 8.8 0000000008.8 00000000000000000008.8 0000000008.8 00000000000000000008.8 2000-01-01 00:00:20 0002-02-02 00:00:00 2000-12-31 23:59:59 2000 2000 2000 1enum 1set NULL NULL NULL NULL NULL NULL NULL NULL -SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105; +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +f59 891 +f60 105 +f61 0000000106 +f62 NULL +f63 NULL +f64 NULL +f65 NULL +f66 NULL +f67 NULL +f68 NULL +f69 NULL +f70 NULL +f71 NULL +f72 NULL +f73 NULL +f74 NULL +f75 NULL +f76 NULL +f77 7.7 +f78 7.7 +f79 00000000000000000007.7 +f80 00000000000000000008.8 +f81 8.8 +f82 8.8 +f83 0000000008.8 +f84 0000000008.8 +f85 8.8 +f86 8.8 +f87 8.8 +f88 8.8 +f89 0000000008.8 +f90 0000000008.8 +f91 0000000008.8 +f92 0000000008.8 +f93 8.8 +f94 8.8 +f95 8.8 +f96 8.8 +f97 0000000008.8 +f98 00000000000000000008.8 +f99 0000000008.8 +f100 00000000000000000008.8 +f101 2000-01-01 +f102 00:00:20 +f103 0002-02-02 00:00:00 +f104 2000-12-31 23:59:59 +f105 2000 +f106 2000 +f107 2000 +f108 1enum +f109 1set +f110 NULL +f111 NULL +f112 NULL +f113 NULL +f114 NULL +f115 NULL +f116 NULL +f117 NULL +SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ; f59 f60 891 105 891 105 @@ -10551,7 +23704,7 @@ DELETE FROM test.v1 where f59 = 789 ; affected rows: 1 SELECT * FROM tb2 where f59 = 789 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -SELECT f59,f60 FROM test.v1 where f59 = 789; +SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ; f59 f60 Drop view test.v1 ; @@ -10564,7 +23717,7 @@ DELETE FROM test.v1 where f59 = 711 ; affected rows: 1 SELECT * FROM tb2 where f59 = 711 ; f59 f60 f61 f62 f63 f64 f65 f66 f67 f68 f69 f70 f71 f72 f73 f74 f75 f76 f77 f78 f79 f80 f81 f82 f83 f84 f85 f86 f87 f88 f89 f90 f91 f92 f93 f94 f95 f96 f97 f98 f99 f100 f101 f102 f103 f104 f105 f106 f107 f108 f109 f110 f111 f112 f113 f114 f115 f116 f117 -SELECT f59,f60 FROM test.v1 where f59 = 711; +SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ; f59 f60 Drop view test.v1 ; @@ -10882,17 +24035,13 @@ SET @variant4= 'CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61'; SET @variant5= 'CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0'; SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1'; SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2'; - -Some server responses suffer from -Bug#10773 Incorrect message is displayed while updating a view --------------------------------------------------------------------------------- SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)'; SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1'; CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10900,7 +24049,7 @@ CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1); INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10908,7 +24057,7 @@ CREATE VIEW v1 AS SELECT f61 FROM v2; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10916,7 +24065,7 @@ CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f61 FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10924,7 +24073,7 @@ CREATE VIEW v1 AS SELECT f61 FROM t1 HAVING f61 > 0; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10932,7 +24081,7 @@ CREATE VIEW v1 AS SELECT f61 FROM t1 GROUP BY f61; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10940,7 +24089,7 @@ CREATE VIEW v1 AS SELECT SUM(f59) AS f61 FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10948,7 +24097,7 @@ CREATE VIEW v1 AS SELECT DISTINCTROW(f61) FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10956,7 +24105,7 @@ CREATE VIEW v1 AS SELECT DISTINCT(f61) FROM t1; INSERT INTO v1 VALUES (1002); ERROR HY000: The target table v1 of the INSERT is not insertable-into UPDATE v1 SET f61=1007; -Got one of the listed errors +ERROR HY000: The target table v1 of the UPDATE is not updatable DELETE FROM v1; ERROR HY000: The target table v1 of the DELETE is not updatable DROP VIEW v1; @@ -10986,11 +24135,11 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(5) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11010,12 +24159,12 @@ f4x char(5) YES NULL report char(10) YES NULL DESCRIBE v1; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4x report -1 NULL ABC t1 0 -1 NULL ABC v1 0 0 NULL ABC t1 1 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5); ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(10); @@ -11033,14 +24182,14 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(10) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 0 NULL ABC t1 1 2 NULL <-- 10 --> t1 2 2 NULL <-- 10 --> v1 2 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11069,7 +24218,7 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 char(8) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11078,7 +24227,7 @@ f1 f2 f4 report 2 NULL <-- 10 - v1 2 3 NULL <-- 10 - t1 3 3 NULL <-- 10 - v1 3 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11102,7 +24251,7 @@ f1 bigint(20) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11113,7 +24262,7 @@ f1 f2 f4 report 3 NULL <-- 10 - v1 3 4 NULL <------ 20 --------> t1 4 4 NULL <------ 20 --------> v1 4 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11125,9 +24274,9 @@ f1 f2 f4 report 4 NULL <------ 20 --------> t1 4 4 NULL <------ 20 --------> v1 4 ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30); -INSERT INTO t1 SET f1 = '<------------- 30 ----------->', +INSERT INTO t1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 't1 5'; -INSERT INTO v1 SET f1 = '<------------- 30 ----------->', +INSERT INTO v1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 'v1 5'; DESCRIBE t1; Field Type Null Key Default Extra @@ -11141,7 +24290,7 @@ f1 varchar(30) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11154,7 +24303,7 @@ f1 f2 f4 report 4 NULL <------ 20 --------> v1 4 <------------- 30 -----------> NULL <------ 20 --------> t1 5 <------------- 30 -----------> NULL <------ 20 --------> v1 5 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11178,7 +24327,7 @@ f4 varchar(20) YES NULL report char(10) YES NULL DESCRIBE v1; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report -1 ABC t1 0 -1 ABC v1 0 @@ -11192,7 +24341,7 @@ f1 f4 report <------------- 30 -----------> <------ 20 --------> t1 5 <------------- 30 -----------> <------ 20 --------> v1 5 ABC <------ 20 --------> t1 6 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; ERROR HY000: View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL; INSERT INTO t1 SET f1 = 'ABC', f2 = '1500-12-04', @@ -11211,7 +24360,7 @@ f1 varchar(30) YES NULL f2 date YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 -1 ABC t1 0 NULL -1 ABC v1 0 NULL @@ -11227,7 +24376,7 @@ f1 f4 report f2 ABC <------ 20 --------> t1 6 NULL ABC <------ 20 --------> t1 7 1500-12-04 ABC <------ 20 --------> v1 7 1500-12-04 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11261,7 +24410,7 @@ f1 varchar(30) YES NULL f2 float YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 -1 ABC t1 0 NULL -1 ABC v1 0 NULL @@ -11276,10 +24425,10 @@ f1 f4 report f2 <------------- 30 -----------> <------ 20 --------> v1 5 NULL ABC <------ 20 --------> t1 6 NULL ABC <------ 20 --------> t1 7 NULL -ABC <------ 20 --------> v1 7 NULL ABC <------ 20 --------> t1 8 -0.00033 +ABC <------ 20 --------> v1 7 NULL ABC <------ 20 --------> v1 8 -0.00033 -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11294,8 +24443,8 @@ f1 f2 f4 report <------------- 30 -----------> NULL <------ 20 --------> v1 5 ABC NULL <------ 20 --------> t1 6 ABC NULL <------ 20 --------> t1 7 -ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> t1 8 +ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> v1 8 ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2); INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4, @@ -11318,7 +24467,7 @@ f1 varchar(30) YES NULL f2 float YES NULL f4 varchar(20) YES NULL report char(10) YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, report; f1 f4 report f2 f3 -1 ABC t1 0 NULL NULL -1 ABC v1 0 NULL NULL @@ -11333,12 +24482,12 @@ f1 f4 report f2 f3 <------------- 30 -----------> <------ 20 --------> v1 5 NULL NULL ABC <------ 20 --------> t1 6 NULL NULL ABC <------ 20 --------> t1 7 NULL NULL -ABC <------ 20 --------> v1 7 NULL NULL ABC <------ 20 --------> t1 8 -0.00033 NULL -ABC <------ 20 --------> v1 8 -0.00033 NULL ABC <------ 20 --------> t1 9 -0.00033 -2.20 +ABC <------ 20 --------> v1 7 NULL NULL +ABC <------ 20 --------> v1 8 -0.00033 NULL ABC <------ 20 --------> v1 9a -0.00033 NULL -SELECT * FROM v1; +SELECT * FROM v1 order by f1, report; f1 f2 f4 report -1 NULL ABC t1 0 -1 NULL ABC v1 0 @@ -11353,10 +24502,10 @@ f1 f2 f4 report <------------- 30 -----------> NULL <------ 20 --------> v1 5 ABC NULL <------ 20 --------> t1 6 ABC NULL <------ 20 --------> t1 7 -ABC NULL <------ 20 --------> v1 7 ABC -0.00033 <------ 20 --------> t1 8 -ABC -0.00033 <------ 20 --------> v1 8 ABC -0.00033 <------ 20 --------> t1 9 +ABC NULL <------ 20 --------> v1 7 +ABC -0.00033 <------ 20 --------> v1 8 ABC -0.00033 <------ 20 --------> v1 9a DROP TABLE t1; DROP VIEW v1; @@ -11371,10 +24520,10 @@ DESCRIBE v1; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 ABC 3 -SELECT * FROM v1; +SELECT * FROM v1 order by 2; f1 my_sqrt ABC 1.7320508075689 ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30); @@ -11387,21 +24536,21 @@ DESCRIBE v1; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; f1 f2 ABC 3 ABC DEF -SELECT * FROM v1; +SELECT * FROM v1 order by 2; f1 my_sqrt -ABC 1.7320508075689 ABC 0 +ABC 1.7320508075689 SELECT SQRT('DEF'); SQRT('DEF') 0 Warnings: Warning 1292 Truncated incorrect DOUBLE value: 'DEF' CREATE VIEW v2 AS SELECT SQRT('DEF'); -SELECT * FROM v2; +SELECT * FROM v2 order by 1; SQRT('DEF') 0 Warnings: @@ -11411,27 +24560,30 @@ DESCRIBE v2; Field Type Null Key Default Extra f1 char(10) YES NULL my_sqrt double YES NULL -SELECT * FROM v2; +SELECT * FROM v2 order by 2; f1 my_sqrt +ABC 0 ABC 1.7320508075689 -ABC 0 CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v1; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v2; -SELECT * FROM t2; -f1 my_sqrt -ABC 1.73205080756888 -ABC 0 +SELECT * FROM t2 order by 2; +f1 ABC +my_sqrt 0 +f1 ABC +my_sqrt 1.73205080756888 DROP TABLE t1; DROP TABLE t2; DROP VIEW v1; diff --git a/mysql-test/suite/funcs_1/t/innodb_storedproc.test b/mysql-test/suite/funcs_1/t/innodb_storedproc.test index cd94577e79b..a675d8e37ef 100644 --- a/mysql-test/suite/funcs_1/t/innodb_storedproc.test +++ b/mysql-test/suite/funcs_1/t/innodb_storedproc.test @@ -1,6 +1,9 @@ #### suite/funcs_1/t/innodb_storedproc.test # +--source include/have_innodb.inc let $engine_type= innodb; +--source suite/funcs_1/storedproc/load_sp_tb.inc + --source suite/funcs_1/storedproc/storedproc_master.inc diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc.test b/mysql-test/suite/funcs_1/t/memory_storedproc.test index df73fe6815b..405f4d49fd1 100644 --- a/mysql-test/suite/funcs_1/t/memory_storedproc.test +++ b/mysql-test/suite/funcs_1/t/memory_storedproc.test @@ -3,4 +3,6 @@ let $engine_type= memory; +--source suite/funcs_1/storedproc/load_sp_tb.inc + --source suite/funcs_1/storedproc/storedproc_master.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc.test b/mysql-test/suite/funcs_1/t/myisam_storedproc.test index 64fba295907..3925775d4e1 100644 --- a/mysql-test/suite/funcs_1/t/myisam_storedproc.test +++ b/mysql-test/suite/funcs_1/t/myisam_storedproc.test @@ -3,4 +3,6 @@ let $engine_type= myisam; +--source suite/funcs_1/storedproc/load_sp_tb.inc + --source suite/funcs_1/storedproc/storedproc_master.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test b/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test index bbf226cdea6..e7e36c39706 100644 --- a/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test +++ b/mysql-test/suite/funcs_1/t/myisam_trig_1011ext.test @@ -5,15 +5,6 @@ # Set $engine_type let $engine_type= myisam; -# Decide, if the objects are to be (re)created -# -# - once at the beginning of a set of testcases ('$NO_REFRESH' <> '' --> TRUE) -# That means the current script must not (re)create any object. -# It can expect, that the objects already exist. -# -# - per every testscript/case ('$NO_REFRESH' = '' --> FALSE) -# That means all objects have to be (re)created within the current script. - # Create some objects needed in many testcases USE test; --source suite/funcs_1/include/myisam_tb3.inc diff --git a/mysql-test/suite/funcs_1/views/views_master.inc b/mysql-test/suite/funcs_1/views/views_master.inc index 6c4992d235c..f08082676ed 100644 --- a/mysql-test/suite/funcs_1/views/views_master.inc +++ b/mysql-test/suite/funcs_1/views/views_master.inc @@ -1,4 +1,10 @@ #### suite/funcs_1/views/views_master.test +# +# Last Change: +# 2007-10-05 mleich +# 1. Fix for Bug#31237 Test "ndb_views" fails because of differing order ... +# 2. Cleanup of test +# 2007-11-15 hhunger WL#4084: Review and fix all disabled tests ... let $message= ! Attention: The file with the expected results is not | thoroughly checked. @@ -8,25 +14,20 @@ let $message= ! Attention: The file with the expected results is not --source include/show_msg80.inc # As long as -# Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill -# is not fixed, we must switch the ps-protocol for some statements off. +# Bug#32285: mysqltest, --ps-protocol, strange output, float/double/real with zerofill +# is not fixed, we must switch the ps-protocol for some statements off (formerly bug#11589). # If this bug is fixed, please # 1. set the following variable to 0 # 2. check, if the test passes # 3. remove the workarounds -let $have_bug_11589= 1; -if ($have_bug_11589) +let $have_bug_32285= 1; +if ($have_bug_32285) { let $message= There are some statements where the ps-protocol is switched off. - Bug#11589: mysqltest, --ps-protocol, strange output, float/double/real with zerofill; + Bug#32285: mysqltest, --ps-protocol, strange output, float/double/real with zerofill; --source include/show_msg80.inc } -let $message= ! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables; ---source include/show_msg80.inc - - # The sub testcases are nearly independend. That is the reason why # we do not want to abort after the first error. --disable_abort_on_error @@ -42,7 +43,7 @@ Bug#10713: mysqldump includes database in create view and referenced tables; # MySQL has also added some vendor-specific enhancements to the standard # SQL requirements. -# FIXME (ML) +# FIXME (mleich) # - Alter all object names so that they follow the v/t/.. scheme or # apply another method which prevents that customer data might be # accidently modified @@ -107,6 +108,12 @@ insert into tb2 (f59,f60,f61) values (109,108,104); INSERT INTO tb2 (f59,f60) VALUES( 299,899 ); INSERT INTO tb2 (f59,f60) VALUES( 242,79 ); INSERT INTO tb2 (f59,f60) VALUES( 424,89 ); +if ($have_bug_32285) +{ +--disable_ps_protocol +} +SELECT * FROM tb2 ORDER BY f59, f60, f61; +--enable_ps_protocol # # Use test; @@ -145,99 +152,101 @@ Insert into t1 values (500,9866); --enable_warnings CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 where f59=250; - select * FROM v1 limit 0,10; + select * FROM v1 order by f60,f61 limit 0,10; #(02) Drop view if exists v1 ; CREATE VIEW v1 AS select f59,f60,f61 FROM test.tb2 limit 100; - select * FROM v1 limit 0,10; + select * FROM v1 order by f59,f60,f61 limit 0,10; #(03) CREATE or REPLACE VIEW v1 AS select f59,f60,f61 - FROM test.tb2 limit 4,3; - select * FROM v1 limit 0,10; + FROM test.tb2; + select * FROM v1 order by f59,f60,f61 limit 4,3; #(04) CREATE or REPLACE VIEW v1 AS select distinct f59 - FROM test.tb2 limit 4,3; - select * FROM v1 limit 0,10; + FROM test.tb2; + select * FROM v1 order by f59 limit 4,3; #(05) ALTER VIEW v1 AS select f59 - FROM test.tb2 limit 6,2; - select * FROM v1 limit 0,10; + FROM test.tb2; + select * FROM v1 order by f59 limit 6,2; #(06) CREATE or REPLACE VIEW v1 AS select f59 - from tb2 order by f59 limit 100; - select * FROM v1 limit 0,10; + from tb2 order by f59; + select * FROM v1 order by f59 limit 0,10; #(07) CREATE or REPLACE VIEW v1 AS select f59 - from tb2 order by f59 asc limit 100; + from tb2 order by f59 asc; select * FROM v1 limit 0,10; #(08) CREATE or REPLACE VIEW v1 AS select f59 - from tb2 order by f59 desc limit 100; + from tb2 order by f59 desc; select * FROM v1 limit 0,10; #(09) CREATE or REPLACE VIEW v1 AS select f59 - from tb2 group by f59 limit 100; - select * FROM v1 limit 0,10; + from tb2 group by f59; + select * FROM v1 order by f59 limit 0,10; #(10) CREATE or REPLACE VIEW v1 AS select f59 - from tb2 group by f59 asc limit 100; - select * FROM v1 limit 0,10; + from tb2 group by f59 asc; + select * FROM v1 order by f59 limit 0,10; #(11) CREATE or REPLACE VIEW v1 AS select f59 - from tb2 group by f59 desc limit 100; - select * FROM v1 limit 0,10; + from tb2 group by f59 desc; + select * FROM v1 order by f59 limit 0,10; #(12) CREATE or REPLACE VIEW v1 AS (select f59 from tb2) - union (select f59 from t1) limit 100; - select * FROM v1 limit 0,10; + union (select f59 from t1); + select * FROM v1 order by f59 limit 0,10; #(13) CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION DISTINCT(select f59 FROM t1) ; - select * FROM v1 limit 0,10; + select * FROM v1 order by f59 limit 0,10; #(14) CREATE or REPLACE VIEW v1 AS (select f59 FROM tb2) UNION ALL(select f59 FROM t1) ; - select * FROM v1 limit 0,10; + select * FROM v1 order by f59 limit 0,10; #(15) -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH LOCAL CHECK OPTION ; - select * FROM v1 limit 0,50; + select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,50; #(16) CREATE or REPLACE VIEW v1 AS select * FROM test.tb2 WITH CASCADED CHECK OPTION ; - select * FROM v1 limit 0,10; + select * FROM v1 order by f59,f60,f61,f62,f63,f64 limit 0,10; +--horizontal_results --enable_ps_protocol #(17) CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 WITH CASCADED CHECK OPTION; - SELECT * FROM v1 limit 0,10; + SELECT * FROM v1 order by f59,f60 limit 0,10; #(18) CREATE or REPLACE VIEW v1 AS select f59, f60 from test.tb2 where f59=3330 ; - select * FROM v1 limit 0,10; + select * FROM v1 order by f60 limit 0,10; DROP VIEW v1 ; DROP TABLE t1 ; @@ -260,12 +269,12 @@ CREATE TABLE t1 (f1 BIGINT) ; # SELECT INTO is illegal SET @x=0; ---error 1350 +--error ER_VIEW_SELECT_CLAUSE CREATE or REPLACE VIEW v1 AS Select 1 INTO @x; Select @x; # Subquery in the FROM clause is illegal ---error 1349 +--error ER_VIEW_SELECT_DERIVED CREATE or REPLACE VIEW v1 AS Select 1 FROM (SELECT 1 FROM t1) my_table; @@ -282,23 +291,16 @@ SELECT @a ; SELECT * FROM t1; DROP TRIGGER tr1 ; SET @a:=0 ; ---error 1347 +--error ER_WRONG_OBJECT CREATE TRIGGER tr1 BEFORE INSERT ON v1 FOR EACH ROW SET @a:=1 ; -# RENAME VIEW is not available even when we try it via rename table. -# FIXME: Write a bug report for the ugly error message -# 1017: Can't find file: './test/v1.frm' (errno: 2), -# because the much more beautiful -# 1347: 'test.v1' is not BASE TABLE -# exists. ---replace_result '\\' '/' -# MLML --error 1017 RENAME TABLE v1 TO v2; ---error 1064 +# RENAME VIEW is not available even when we try it via rename table. +--error ER_PARSE_ERROR RENAME VIEW v2 TO v1; -#--error 1347 +#--error ER_WRONG_OBJECT ALTER TABLE v2 RENAME AS v1; ---error 1064 +--error ER_PARSE_ERROR ALTER VIEW v1 RENAME AS v2; # VIEWs cannot contain a PRIMARY KEY or have an Index. @@ -310,12 +312,12 @@ DROP VIEW IF EXISTS v2 ; CREATE TABLE t1 ( f1 DATE, f2 BLOB, f3 DOUBLE ); CREATE VIEW v1 AS SELECT f1, f2, f3 FROM t1; ALTER TABLE t1 ADD PRIMARY KEY(f1); ---error 1347 +--error ER_WRONG_OBJECT ALTER TABLE v1 ADD PRIMARY KEY(f1); ---error 1064 +--error ER_PARSE_ERROR ALTER VIEW v1 ADD PRIMARY KEY(f1); CREATE INDEX t1_idx ON t1(f3); ---error 1347 +--error ER_WRONG_OBJECT CREATE INDEX v1_idx ON v1(f3); DROP TABLE t1; DROP VIEW v1; @@ -333,21 +335,21 @@ let $message= Testcase 3.3.1.3 + 3.1.1.4 ; DROP VIEW IF EXISTS v1 ; --enable_warnings # REPLACE after VIEW name ---error 1064 -CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table limit 50; +--error ER_PARSE_ERROR +CREATE VIEW v1 or REPLACE AS Select * from tb2 my_table; # CHECK OPTION before AS SELECT ---error 1064 +--error ER_PARSE_ERROR CREATE VIEW v1 WITH CASCADED CHECK OPTION AS Select * from tb2 my_table limit 50; # CHECK OPTION before AS SELECT ---error 1064 +--error ER_PARSE_ERROR CREATE VIEW v1 WITH LOCAL CHECK OPTION AS Select * from tb2 my_table limit 50; # CREATE after SELECT ---error 1064 -SELECT * FROM tb2 my_table CREATE VIEW As v1 limit 100 ; +--error ER_PARSE_ERROR +SELECT * FROM tb2 my_table CREATE VIEW As v1; # AS forgotten ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE VIEW v1 Select f59, f60 from test.tb2 my_table where f59 = 250 ; # positive case @@ -355,60 +357,60 @@ CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table WITH CASCADED CHECK OPTION; DROP VIEW v1; # REPLACE OR CREATE instead of CREATE OR REPLACE ---error 1064 +--error ER_PARSE_ERROR REPLACE OR CREATE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table WITH CASCADED CHECK OPTION; # AS after SELECT ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 SELECT AS F59, F60 FROM test.tb2 my_table WITH CASCADED CHECK OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table CASCADED WITH CHECK OPTION; # OPTION CHECK instead of CHECK OPTION ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table WITH CASCADED OPTION CHECK; # CHECK OPTION before WITH ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table CHECK OPTION WITH CASCADED; # CHECK OPTION before AS SELECT ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION AS SELECT F59, F60 FROM test.tb2 my_table; # VIEW after AS SELECT ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE AS SELECT F59, F60 FROM test.tb2 my_table VIEW v1 WITH CASCADED CHECK OPTION; # VIEW after CHECK OPTION ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE AS SELECT F59, F60 FROM test.tb2 my_table WITH CASCADED CHECK OPTION VIEW v1; # Variants with LOCAL CHECK OPTION ---error 1064 +--error ER_PARSE_ERROR REPLACE OR CREATE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table WITH LOCAL CHECK OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 SELECT AS F59, F60 FROM test.tb2 my_table WITH LOCAL CHECK OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table LOCAL WITH CHECK OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table WITH LOCAL OPTION CHECK; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 AS SELECT F59, F60 FROM test.tb2 my_table CHECK OPTION WITH LOCAL; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE VIEW v1 WITH CASCADED CHECK OPTION AS SELECT F59, F60 FROM test.tb2 my_table; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE AS SELECT F59, F60 FROM test.tb2 my_table VIEW v1 WITH LOCAL CHECK OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE AS SELECT F59, F60 FROM test.tb2 my_table WITH LOCAL CHECK OPTION VIEW v1; @@ -419,15 +421,15 @@ CREATE table t1 (f1 int ,f2 int) ; INSERT INTO t1 values (235, 22); INSERT INTO t1 values (554, 11); # SELECTs of UNION in braces ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE view v1 as (Select from f59 tb2) Union ALL (Select from f1 t1); # by before order ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE view v1 as Select f59, f60 -from tb2 by order f59 limit 100 ; +from tb2 by order f59; # by before group ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE view v1 as Select f59, f60 from tb2 by group f59 ; @@ -442,24 +444,24 @@ let $message= Testcase 3.3.1.5 ; --disable_warnings DROP VIEW IF EXISTS v1 ; --enable_warnings ---error 1064 -CREATE VIEW v1 SELECT * FROM tb2 limit 100 ; ---error 1064 -CREATE v1 AS SELECT * FROM tb2 limit 100 ; ---error 1064 -VIEW v1 AS SELECT * FROM tb2 limit 100 ; +--error ER_PARSE_ERROR +CREATE VIEW v1 SELECT * FROM tb2; +--error ER_PARSE_ERROR +CREATE v1 AS SELECT * FROM tb2; +--error ER_PARSE_ERROR +VIEW v1 AS SELECT * FROM tb2; # positive case CREATE VIEW v1 AS SELECT 1; DROP VIEW v1; ---error 1064 +--error ER_PARSE_ERROR VIEW v1 AS SELECT 1; ---error 1064 +--error ER_PARSE_ERROR CREATE v1 AS SELECT 1; ---error 1064 +--error ER_PARSE_ERROR CREATE VIEW AS SELECT 1; ---error 1064 +--error ER_PARSE_ERROR CREATE VIEW v1 SELECT 1; ---error 1064 +--error ER_PARSE_ERROR CREATE VIEW v1 AS ; @@ -480,37 +482,37 @@ let $message= Testcase 3.3.1.6 ; DROP VIEW IF EXISTS v1 ; --enable_warnings CREATE or REPLACE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = UNDEFINED VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = MERGE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; CREATE or REPLACE ALGORITHM = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; # negative test cases ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; ---error 1064 +as SELECT * from tb2; +--error ER_PARSE_ERROR CREATE or REPLACE ALGORITHM TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; ---error 1064 +as SELECT * from tb2; +--error ER_PARSE_ERROR CREATE or REPLACE ALGORITHM = VIEW v1 -as SELECT * from tb2 limit 100 ; ---error 1064 +as SELECT * from tb2; +--error ER_PARSE_ERROR CREATE or REPLACE TEMPTABLE = ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; ---error 1064 +as SELECT * from tb2; +--error ER_PARSE_ERROR CREATE or REPLACE TEMPTABLE - ALGORITHM VIEW v1 -as SELECT * from tb2 limit 100 ; ---error 1064 +as SELECT * from tb2; +--error ER_PARSE_ERROR CREATE or REPLACE GARBAGE = TEMPTABLE VIEW v1 -as SELECT * from tb2 limit 100 ; ---error 1064 +as SELECT * from tb2; +--error ER_PARSE_ERROR CREATE or REPLACE ALGORITHM = GARBAGE VIEW v1 -as SELECT * from tb2 limit 100 ; +as SELECT * from tb2; Drop view if exists v1 ; CREATE or REPLACE VIEW v1 @@ -522,16 +524,16 @@ AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK OPTION; CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1 WITH LOCAL CHECK OPTION; # negative test cases ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1 WITH NO CHECK OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1 CASCADED CHECK OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1 WITH CASCADED OPTION; ---error 1064 +--error ER_PARSE_ERROR CREATE or REPLACE VIEW v1 AS SELECT * from tb2 where f59 < 1 WITH CASCADED CHECK ; @@ -543,12 +545,12 @@ let $message= Testcase 3.3.1.7 ; # view names are accepted, at creation time, alteration time, # and drop time. ############################################################################### -# Note(ML): non-qualified view name means a view name without preceeding -# database name +# Note(mleich): non-qualified view name means a view name without preceeding +# database name --disable_warnings DROP VIEW IF EXISTS v1 ; --enable_warnings -Create view test.v1 AS Select * from test.tb2 limit 100 ; +Create view test.v1 AS Select * from test.tb2; Alter view test.v1 AS Select F59 from test. tb2 limit 100 ; Drop view test.v1 ; Create view v1 AS Select * from test.tb2 limit 100 ; @@ -561,11 +563,11 @@ let $message= Testcase 3.3.1.A0 ; ############################################################################### # Testcase 3.3.1.A0: Ensure that view names are treated case sensitive. ############################################################################### -# Note(ML): Maybe this test produces portability problems on Windows. -# FIXME There should be a test outside this one checking the -# creation of objects with cases sensitive names. -# If we have this test the following sub testcase should -# be deleted. +# Note(mleich): Maybe this test produces portability problems on Windows. +# FIXME There should be a test outside this one checking the +# creation of objects with cases sensitive names. +# If we have this test the following sub testcase should +# be deleted. --disable_warnings DROP TABLE IF EXISTS t1 ; DROP VIEW IF EXISTS v1 ; @@ -576,8 +578,8 @@ INSERT INTO t1 VALUES(1111), (2222); CREATE VIEW v1 AS SELECT * FROM t1 WHERE f1 = 1111; # We get here the sql code # - 0 on OS with cases sensitive view names (Example: UNIX) -# - 1050 on OS without cases sensitive view names (Example: WINDOWS) ---error 0,1050 +# - ER_TABLE_EXISTS_ERROR on OS without cases sensitive view names (Example: WINDOWS) +--error 0,ER_TABLE_EXISTS_ERROR CREATE VIEW V1 AS SELECT * FROM t1 WHERE f1 = 2222; SELECT * FROM v1; # SELECT * FROM V1; @@ -595,20 +597,20 @@ let $message= Testcase 3.3.1.8 ; # that an appropriate error message is returned when the name # is rejected. ############################################################################### -# Note(ML): There could be more negative tests here, but I assume that the -# server routines checking if a table or view name is acceptable are -# heavily tested in tests checking the creation of tables. ---error 1064 +# Note(mleich): There could be more negative tests here, but I assume that the +# server routines checking if a table or view name is acceptable +# are heavily tested in tests checking the creation of tables. +--error ER_PARSE_ERROR Create view select AS Select * from test.tb2 limit 100; ---error 1064 +--error ER_PARSE_ERROR Create view as AS Select * from test.tb2 limit 100; ---error 1064 +--error ER_PARSE_ERROR Create view where AS Select * from test.tb2 limit 100; ---error 1064 +--error ER_PARSE_ERROR Create view from AS Select * from test.tb2 limit 100; ---error 1064 +--error ER_PARSE_ERROR Create view while AS Select * from test.tb2 limit 100; ---error 1064 +--error ER_PARSE_ERROR Create view asdkj*(&*&&^ as Select * from test.tb2 limit 100 ; --disable_warnings Drop view if exists test.procedure ; @@ -623,10 +625,11 @@ let $message= Testcase 3.3.1.9 ; # Testcase 3.3.1.9: Ensure that a reference to a non-existent view is rejected # with an appropriate error message ############################################################################### -# Note(ML): The SELECT statement syntax does not contain any functionality to -# claim, that the object after FROM must be a VIEW. SHOW's will be -# checked in 3.3.11 Checks on SHOW, EXPLAIN, and DESCRIBE statements. -# Let's check here a view based on a dropped view or table. +# Note(mleich): The SELECT statement syntax does not contain any functionality +# to claim, that the object after FROM must be a VIEW. SHOW's will +# be checked in +# 3.3.11 Checks on SHOW, EXPLAIN, and DESCRIBE statements. +# Let's check here a view based on a dropped view or table. --disable_warnings Drop TABLE IF EXISTS t1 ; Drop VIEW IF EXISTS v1; @@ -640,32 +643,32 @@ CREATE VIEW v2 AS SELECT * FROM v1; # Only negative cases, positive cases will be checked later: DROP TABLE t1; ---error 1356 +--error ER_VIEW_INVALID SELECT * FROM v1; ---error 1356 +--error ER_VIEW_INVALID DELETE FROM v1; ---error 1356 +--error ER_VIEW_INVALID UPDATE v1 SET f1 = 'aaaaa'; ---error 1356 +--error ER_VIEW_INVALID INSERT INTO v1 SET f1 = "fffff"; # v2 is based on v1, which is now invalid ---error 1356 +--error ER_VIEW_INVALID SELECT * FROM v2; ---error 1356 +--error ER_VIEW_INVALID DELETE FROM v2; ---error 1356 +--error ER_VIEW_INVALID UPDATE v2 SET f1 = 'aaaaa'; ---error 1356 +--error ER_VIEW_INVALID INSERT INTO v2 SET f1 = "fffff"; DROP VIEW v1; # v2 is based on v1, which is now dropped ---error 1356 +--error ER_VIEW_INVALID SELECT * FROM v2; ---error 1356 +--error ER_VIEW_INVALID DELETE FROM v2; ---error 1356 +--error ER_VIEW_INVALID UPDATE v2 SET f1 = 'aaaaa'; ---error 1356 +--error ER_VIEW_INVALID INSERT INTO v2 SET f1 = "fffff"; DROP VIEW v2; @@ -677,11 +680,11 @@ DROP VIEW IF EXISTS v1 ; --enable_warnings CREATE TABLE t1 (f1 FLOAT); # Create a new VIEW based on itself ---error 1146 +--error ER_NO_SUCH_TABLE CREATE VIEW v1 AS SELECT * FROM v1; # Replace a valid VIEW with one new based on itself CREATE VIEW v1 AS SELECT * FROM t1; ---error 1146 +--error ER_NO_SUCH_TABLE CREATE or REPLACE VIEW v1 AS SELECT * FROM v1; DROP VIEW v1; @@ -697,9 +700,9 @@ let $message= Testcase 3.3.1.10 ; Drop view if exists test.v1 ; --enable_warnings Create view test.v1 AS Select * from test.tb2 ; ---error 1050 +--error ER_TABLE_EXISTS_ERROR Create view test.v1 AS Select F59 from test.tb2 ; ---error 1050 +--error ER_TABLE_EXISTS_ERROR Create view v1 AS Select F59 from test.tb2 ; @@ -710,18 +713,18 @@ let $message= Testcase 3.3.1.11 ; # table with the same name in the same database. ############################################################################### # The VIEW should get the same name like an already existing TABLE. ---error 1050 +--error ER_TABLE_EXISTS_ERROR Create view test.tb2 AS Select f59,f60 from test.tb2 limit 100 ; ---error 1050 +--error ER_TABLE_EXISTS_ERROR Create view tb2 AS Select f59,f60 from test.tb2 limit 100 ; # The TABLE should get the same name like an already existing VIEW. --disable_warnings Drop view if exists test.v111 ; --enable_warnings Create view test.v111 as select * from tb2 limit 50; ---error 1050 +--error ER_TABLE_EXISTS_ERROR Create table test.v111(f1 int ); ---error 1050 +--error ER_TABLE_EXISTS_ERROR Create table v111(f1 int ); DROP VIEW test.v111; @@ -809,25 +812,29 @@ CREATE TABLE t1 (f1 BIGINT); INSERT INTO t1 VALUES(1); CREATE VIEW test.v1 AS SELECT * FROM t1 limit 2; SHOW CREATE VIEW test.v1; +--sorted_result SELECT * FROM test.v1; # Switch the algorithm CREATE OR REPLACE ALGORITHM = TEMPTABLE VIEW test.v1 AS SELECT * FROM t1 limit 2; SHOW CREATE VIEW test.v1; +--sorted_result SELECT * FROM test.v1; # Switch the base table -CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 limit 2; +CREATE OR REPLACE VIEW test.v1 AS SELECT * FROM tb2 order by f59 limit 2; SHOW CREATE VIEW test.v1; if ($have_bug_11589) { --disable_ps_protocol } -SELECT * FROM test.v1 ; +--vertical_results +SELECT * FROM test.v1 order by f59,f60,f61,f62,f63,f64,f65; +--horizontal_results --enable_ps_protocol # Switch the SELECT but not the base table -CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2 limit 10,100; +CREATE OR REPLACE VIEW test.v1 AS SELECT F59 FROM tb2; SHOW CREATE VIEW test.v1; -SELECT * FROM test.v1; +SELECT * FROM test.v1 order by F59 limit 10,100; Drop table test.t1 ; Drop view test.v1 ; @@ -839,9 +846,9 @@ let $message= Testcase 3.3.1.14 ; # used to create a view using the name of an existing base # table, it fails with an appropriate error message. ############################################################################### ---error 1347 +--error ER_WRONG_OBJECT CREATE OR REPLACE VIEW test.tb2 AS SELECT * From tb2 LIMIT 2; ---error 1347 +--error ER_WRONG_OBJECT CREATE OR REPLACE VIEW tb2 AS SELECT * From tb2 LIMIT 2; @@ -856,11 +863,12 @@ let $message= Testcase 3.3.1.15 ; --disable_warnings Drop table if exists test.v1 ; --enable_warnings -CREATE OR REPLACE view test.v1 as select * from tb2 LIMIT 2; -if ($have_bug_11589) +CREATE OR REPLACE view test.v1 as select * from tb2; +if ($have_bug_32285) { --disable_ps_protocol } +--sorted_result SELECT * FROM test.v1; --enable_ps_protocol Drop view test.v1 ; @@ -880,8 +888,8 @@ let $message= Testcase 3.3.1.16 + 3.3.1.17 ; Drop table if exists test.v1 ; --enable_warnings CREATE OR REPLACE VIEW v1 AS SELECT * From tb2; -# Note(ML): The empty result is intended, because I want to compare -# column names only +# Note(mleich): The empty result is intended, because I want to compare +# column names only. SELECT * FROM tb2 WHERE 1 = 2; SELECT * FROM v1 WHERE 1 = 2; Drop view v1; @@ -924,7 +932,7 @@ let $message= Testcase 3.3.1.18 ; # from the underlying base table(s) rather than the view # column names. ############################################################################### -# Note(ML): The goal is to check the merge algorithm. +# Note(mleich): The goal is to check the merge algorithm. --disable_warnings Drop view if exists v1 ; Drop view if exists v1_1 ; @@ -935,14 +943,14 @@ from test.tb2 limit 0,100 ; Create view v1_1 as Select test.tb2.f59 as NewNameF1, test.tb2.f60 as NewNameF2 from tb2 limit 0,100 ; ---error 1054 +--error ER_BAD_FIELD_ERROR SELECT NewNameF1,f60 FROM test.v1_1 ; ---error 1054 +--error ER_BAD_FIELD_ERROR SELECT NewNameF1, v1_1.f60 FROM test.v1_1 ; ---error 1054 +--error ER_BAD_FIELD_ERROR SELECT f59, f60 FROM test.v1 ; Use test ; ---error 1054 +--error ER_BAD_FIELD_ERROR SELECT F59 FROM v1 ; @@ -974,14 +982,14 @@ SELECT * FROM v1; # negative testcases (sometimes including the underlying SELECT) # duplicate via alias in SELECT SELECT f1, f2 AS f1 FROM t1; ---error 1060 +--error ER_DUP_FIELDNAME CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 AS f1 FROM t1; # duplicate via JOIN SELECT SELECT t1.f1, t2.f1 AS f1 FROM t1, t2; ---error 1060 +--error ER_DUP_FIELDNAME CREATE OR REPLACE VIEW v1 AS SELECT t1.f1, t2.f1 AS f1 FROM t1, t2; # duplicate via VIEW definition ---error 1060 +--error ER_DUP_FIELDNAME CREATE OR REPLACE VIEW v1 (my_col, my_col) AS SELECT * FROM t1; @@ -1000,13 +1008,13 @@ CREATE TABLE t1( f1 BIGINT, f2 DECIMAL(5,2)); CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT * FROM t1; CREATE OR REPLACE VIEW v1 (my_f1, my_f2) AS SELECT f1, f2 FROM t1; # negative cases, where we assign a wrong number of column names ---error 1353 +--error ER_VIEW_WRONG_LIST CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT * FROM t1; ---error 1353 +--error ER_VIEW_WRONG_LIST CREATE OR REPLACE VIEW v1 (my_f1 ) AS SELECT f1, f2 FROM t1; ---error 1353 +--error ER_VIEW_WRONG_LIST CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT * FROM t1; ---error 1353 +--error ER_VIEW_WRONG_LIST CREATE OR REPLACE VIEW v1 (my_f1, my_f2, my_f3) AS SELECT f1, f2 FROM t1; @@ -1019,8 +1027,8 @@ let $message= Testcase 3.3.1.21 ; --disable_warnings DROP VIEW IF EXISTS v1; --enable_warnings -CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2 LIMIT 2; -SELECT * FROM test.v1; +CREATE VIEW test.v1( F59, F60 ) AS SELECT F59, F60 From tb2; +SELECT * FROM test.v1 order by F59, F60 desc LIMIT 2; Drop view if exists test.v1 ; @@ -1034,11 +1042,14 @@ let $message= Testcase 3.3.1.22 ; --disable_warnings DROP VIEW IF EXISTS v1; --enable_warnings -CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 LIMIT 2; +CREATE VIEW test.v1( product ) AS SELECT f59*f60 From tb2 WHERE f59 < 3; +--sorted_result SELECT * FROM test.v1; CREATE OR REPLACE VIEW test.v1( product ) AS SELECT 1*2; +--sorted_result SELECT * FROM test.v1; CREATE OR REPLACE VIEW test.v1( product ) AS SELECT USER(); +--sorted_result SELECT * FROM test.v1; Drop view if exists test.v1 ; @@ -1053,18 +1064,18 @@ let $message= Testcase 3.3.1.23 + 3.3.1.24 ; # a non-existent view fails, with an appropriate error # message, at creation time. ############################################################################### -# Note(ML): The SELECT statement syntax does not contain any functionality to -# claim, that the object after FROM must be a VIEW. -# Testcase 3.3.1.24 should be deleted. +# Note(mleich): The SELECT statement syntax does not contain any functionality +# to claim, that the object after FROM must be a VIEW. +# Testcase 3.3.1.24 should be deleted. USE test; --disable_warnings DROP TABLE IF EXISTS t1; DROP VIEW IF EXISTS v1; DROP VIEW IF EXISTS v2; --enable_warnings ---error 1146 +--error ER_NO_SUCH_TABLE CREATE VIEW test.v2 AS SELECT * FROM test.t1; ---error 1146 +--error ER_NO_SUCH_TABLE CREATE VIEW v2 AS Select * from test.v1; DROP VIEW IF EXISTS v2; @@ -1075,8 +1086,8 @@ let $message= Testcase 3.3.1.25 ; # Testcase 3.3.1.25: Ensure that a view cannot be based on one or more # temporary tables. ############################################################################### -# Note(ML): A temporary table hides permanent tables which have the same name. -# So do not forget to drop the temporary table. +# Note(mleich): A temporary table hides permanent tables which have the same +# name. So do not forget to drop the temporary table. --disable_warnings DROP TABLE IF EXISTS t1_temp; DROP TABLE IF EXISTS t2_temp; @@ -1086,13 +1097,13 @@ Create table t1_temp(f59 char(10),f60 int) ; Create temporary table t1_temp(f59 char(10),f60 int) ; Insert into t1_temp values('FER',90); Insert into t1_temp values('CAR',27); ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE Create view v1 as select * from t1_temp ; Create temporary table t2_temp(f59 char(10),f60 int) ; Insert into t2_temp values('AAA',11); Insert into t2_temp values('BBB',22); ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE Create or replace view v1 as select t1_temp.f59,t2_temp.f59 from t1_temp,t2_temp ; DROP temporary table t1_temp; @@ -1110,34 +1121,34 @@ INSERT INTO t1 VALUES('A'); INSERT INTO t2 VALUES('t2'); INSERT INTO t2 VALUES('B'); # simple SELECT ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2; # JOIN - temporary table first ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2, t1; ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT f2, f1 FROM t2, t1; # JOIN - temporary table last ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1, t2; ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT f1, f2 FROM t1, t2; # UNION - temporary table first ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT * FROM t2 UNION SELECT * FROM t1; ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT f2 FROM t2 UNION SELECT f1 FROM t1; # UNION - temporary table last ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT * FROM t1 UNION SELECT * FROM t2; ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT f1 FROM t1 UNION SELECT f2 FROM t2; # SUBQUERY - temporary table first ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t2 WHERE f2 = ( SELECT f1 FROM t1 ); # SUBQUERY - temporary table last ---error 1352 +--error ER_VIEW_SELECT_TMPTABLE CREATE OR REPLACE VIEW v1 AS SELECT 1 FROM t1 WHERE f1 = ( SELECT f2 FROM t2 ); DROP TABLE t1; @@ -1153,11 +1164,12 @@ let $message= Testcase 3.3.1.26 ; --disable_warnings DROP VIEW IF EXISTS v1; --enable_warnings -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; if ($have_bug_11589) { --disable_ps_protocol } +--sorted_result Select * from test.v1; --enable_ps_protocol Drop view test.v1 ; @@ -1173,9 +1185,9 @@ let $message= Testcase 3.3.1.27 ; DROP VIEW IF EXISTS test.v1; Drop VIEW IF EXISTS test.v1_1 ; --enable_warnings -Create view test.v1 AS Select * from test.tb2 limit 2 ; +Create view test.v1 AS Select * from test.tb2; Create view test.v1_1 AS Select F59 from test.v1 ; -Select * from test.v1_1 limit 20 ; +Select * from test.v1_1 order by F59 limit 2; Drop view test.v1 ; Drop view test.v1_1 ; @@ -1193,12 +1205,15 @@ create database test2 ; Create view test2.v2 AS Select * from test.tb2 limit 50,50; use test2 ; Create view v1 AS Select * from test.tb2 limit 50 ; -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } -Select * from v1 ; +--vertical_results +Select * from v1 order by f59,f60,f61,f62,f63,f64,f65; +--horizontal_results --enable_ps_protocol +--sorted_result Select * from test2.v2 ; Drop view if exists test2.v1 ; Drop view if exists test2.v2 ; @@ -1223,7 +1238,8 @@ Create view test2.v2 AS Select F59 from test.v1 ; Drop view if exists test.v1 ; Drop view if exists test2.v2 ; -# Note(ML): Testcase 3.3.1.30 (identical requirements like 3.3.1.26) omitted +# Note(mleich): Testcase 3.3.1.30 (identical requirements like 3.3.1.26) +# --> omitted let $message= Testcase 3.3.1.31 ; --source include/show_msg80.inc @@ -1241,6 +1257,7 @@ INSERT INTO test.t1 VALUES( 445, 765 ); Create or replace view test.v1 AS SELECT test.t1.F59, test.tb2.F60 FROM test.tb2 JOIN test.t1 ON test.tb2.F59 = test.t1.F59 ; +--sorted_result Select * from test.v1; Drop view test.v1 ; @@ -1265,6 +1282,7 @@ INSERT INTO t1 VALUES( 445, 765 ); CREATE VIEW test2.v1 AS SELECT test.tb2.F59, test.tb2.F60 FROM test.tb2 INNER JOIN test2.t1 ON tb2.f59 = t1.f59; +--sorted_result Select * from test2.v1; Use test; @@ -1287,7 +1305,7 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; Drop view if exists test.v1_firstview ; Drop view if exists test.v1_secondview ; Drop view if exists test.v1 ; @@ -1314,7 +1332,7 @@ CREATE VIEW v1 AS SELECT test.v1_firstview.F59, test.v1_firstview.F60 FROM test.v1_firstview INNER JOIN test.v1_secondview ON test.v1_firstview.f59 = test.v1_secondview.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; Drop view v1 ; Drop view test.v1_firstview ; Drop view test.v1_secondview ; @@ -1339,7 +1357,7 @@ CREATE VIEW test.v1 AS SELECT test.v1_firstview.f59, test.v1_firstview.f60 FROM test.v1_firstview INNER JOIN test.tb2 ON test.v1_firstview.f59 = test.tb2.f59; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59,f60 limit 0,10; Drop view test.v1 ; Drop view test.v1_firstview; @@ -1360,7 +1378,7 @@ CREATE VIEW v1_firstview AS SELECT * FROM test.tb2 ; CREATE VIEW v1 AS SELECT v1_firstview.f59, v1_firstview.f60 FROM v1_firstview INNER JOIN test.tb2 ON v1_firstview.f59 = test.tb2.f59 ; -SELECT * FROM v1 limit 0,10; +SELECT * FROM v1 order by f59,f60 limit 0,10; Drop database test2 ; @@ -1372,10 +1390,6 @@ let $message= Testcase 3.3.1.37 ; # tables and/or views, some of which reside in the same # database and some of which reside in one other database. ############################################################################### -# (Bug Associated) -# FIXME: ??? Bug number -# FIXME: reimplement this test - use test; --disable_warnings Drop table if exists t1; @@ -1385,7 +1399,7 @@ Drop view if exists test.v1_1 ; Drop view if exists test.v1_main ; --enable_warnings Create view test.v1 as Select f59, f60 FROM test.tb2; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59,f60 limit 0,10; Create table t1(f59 int, f60 int); Insert into t1 values (90,507) ; @@ -1396,7 +1410,7 @@ Select * from v1_1 ; Create view v1_main as SELECT test.tb2.f59 FROM test.tb2 JOIN test.v1 ON test.tb2.f59 = test.v1.f59; -Select * from v1_main limit 0,10; +Select * from v1_main order by f59 limit 0,10; Drop table t1; Drop view test.v1 ; @@ -1407,8 +1421,8 @@ Drop view test.v1_main ; let $message= Testcase 3.3.1.31 - 3.3.1.37 New Implementation ; --source include/show_msg80.inc ############################################################################### -# ML: The testcases 3.3.1.31 - 3.3.1.37 should be tested more systematic. -# Ensure that a view can be based on a join of multiple +# mleich: The testcases 3.3.1.31 - 3.3.1.37 should be tested more systematic. +# Ensure that a view can be based on a join of multiple # Testcase 3.3.1.31: tables within the same database # Testcase 3.3.1.32: tables from another database. # Testcase 3.3.1.33: views within the same database @@ -1504,8 +1518,8 @@ Drop view if exists test.v1_main; Drop view if exists test1.v1_1 ; Drop database if exists test3 ; --enable_warnings -Create view test.v1 as Select f59, f60 FROM test.tb2 limit 20 ; -Select * from test.v1 ; +Create view test.v1 as Select f59, f60 FROM test.tb2; +Select * from test.v1 order by f59,f60 limit 20; Create table test1.t1 (f59 int,f60 int) ; Insert into test1.t1 values (199,507) ; @@ -1522,7 +1536,7 @@ Create view test3.v1_2 as Select f59,f60 from test3.t1 ; Select * from test3.v1_2 ; use test ; -# ML: FIXME The SELECT should deliver at least one row. +# mleich: FIXME The SELECT should deliver at least one row. Create view v1_main as SELECT test.tb2.f59 as f1, test1.v1_1.f59 as f2, test3.v1_2.f59 as f3 @@ -1546,11 +1560,11 @@ let $message= Testcase 3.3.1.39 ; --disable_warnings Drop view if exists test.v1 ; --enable_warnings ---error 1349 +--error ER_VIEW_SELECT_DERIVED CREATE VIEW test.v1 AS Select f59 from (Select * FROM tb2 limit 20) tx ; ---error 1146 -SELECT * FROM test.v1 ; +--error ER_NO_SUCH_TABLE +SELECT * FROM test.v1 order by f59 ; --disable_warnings Drop view if exists test.v1 ; --enable_warnings @@ -1568,10 +1582,10 @@ Drop view if exists test.v1 ; --enable_warnings Set @var1 = 'ABC' ; Set @var2 = 'XYZ' ; ---error 1351 +--error ER_VIEW_SELECT_VARIABLE CREATE VIEW test.v1 AS SELECT @var1, @var2 ; # System variables (name starts with '@@') are also not allowed ---error 1351 +--error ER_VIEW_SELECT_VARIABLE CREATE VIEW test.v1 AS SELECT @@global.sort_buffer_size; --disable_warnings Drop view if exists test.v1 ; @@ -1583,7 +1597,7 @@ let $message= Testcase 3.3.1.41 ; ############################################################################### # Testcase 3.3.1.41: Ensure that a view definition within a stored procedure # definition cannot include references to any of the stored -# procedure’s parameters. +# procedures parameters. ############################################################################### --disable_warnings Drop view if exists test.v1 ; @@ -1616,11 +1630,11 @@ let $message= Testcase 3.3.1.42 ; --disable_warnings Drop VIEW if exists test.v1 ; --enable_warnings ---error 1064 +--error ER_PARSE_ERROR CREATE TEMPORARY VIEW test.v1 AS SELECT * FROM test.tb2 limit 2 ; #(02) ---error 1064 +--error ER_PARSE_ERROR CREATE OR REPLACE TEMPORARY VIEW test.v1 AS SELECT * FROM test.tb2 limit 2 ; @@ -1646,20 +1660,24 @@ CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2; INSERT INTO test.v1 values(122,432); -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results SELECT * FROM test.tb2 where f59 = 122 and f60 = 432 limit 0,20; +--horizontal_results --enable_ps_protocol UPDATE test.v1 SET f59 = 3000 WHERE test.v1.f59 = 122 ; -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results SELECT * FROM test.tb2 where f59 = 3000 limit 0,20; +--horizontal_results --enable_ps_protocol DELETE FROM test.v1 @@ -1677,12 +1695,12 @@ let $message= Testcase 3.3.1.44 ; # with an appropriate error message and do not affect the # data in the underlying tables(s). ############################################################################### -# ML: Maybe we need some more tests here. +# mleich: Maybe we need some more tests here. --disable_warnings Drop view if exists test.v1 ; --enable_warnings -# Note(ML): The modification will fail, because the VIEW contains 'limit' +# Note(mleich): The modification will fail, because the VIEW contains 'limit' CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 limit 100; --error ER_NON_INSERTABLE_TABLE @@ -1709,24 +1727,28 @@ CREATE VIEW test.v1 AS SELECT * FROM test.tb2 where f59 = 04; --enable_info UPDATE test.v1 SET f59 = 30 where F59 = 04 ; --disable_info -SELECT * FROM test.v1 where f59 = 30 ; -if ($have_bug_11589) +SELECT * FROM test.v1 where f59 = 30 order by f59; +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results SELECT * FROM test.tb2 where f59 = 30 ; +--horizontal_results --enable_ps_protocol --enable_info UPDATE tb2 SET f59 = 100 where f59 = 30 ; --disable_info -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results SELECT * FROM tb2 where f59 = 100 ; +--horizontal_results --enable_ps_protocol -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; drop view if exists test.v1 ; @@ -1772,7 +1794,8 @@ SELECT * FROM v1 ORDER BY f1; --enable_info # 1. The record to be inserted will be within the scope of the view. # But there is already a record with the PRIMARY KEY f1 = 2 . ---error 1062 +# OBN change for 5.1.21 --error ER_DUP_ENTRY_WITH_KEY_NAME +--error ER_DUP_ENTRY INSERT INTO v1 VALUES(2,'two'); # 2. The record to be inserted will be within the scope of the view. # There is no already existing record with the PRIMARY KEY f1 = 3 . @@ -1789,7 +1812,8 @@ SELECT * FROM v1 ORDER BY f1; # 1. The record to be updated is within the scope of the view # and will stay inside the scope. # But there is already a record with the PRIMARY KEY f1 = 2 . ---error 1062 +# OBN change for 5.1.21 --error ER_DUP_ENTRY_WITH_KEY_NAME +--error ER_DUP_ENTRY UPDATE v1 SET f1 = 2 WHERE f1 = 3; # 2. The record to be updated is within the scope of the view # and will stay inside the scope. @@ -1817,9 +1841,9 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT f59,f60 FROM test.tb2 where f59 = 195 WITH CHECK OPTION ; ---error 1369 +--error ER_VIEW_CHECK_FAILED UPDATE test.v1 SET f59 = 198 where f59=195 ; -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; drop view if exists test.v1 ; @@ -1842,14 +1866,14 @@ FROM test.tb2 where F59 = 0987 WITH LOCAL CHECK OPTION ; CREATE VIEW test.v2 as SELECT * FROM test.v1 ; # This UPDATE violates the definition of VIEW test.v1. ---error 1369 +--error ER_VIEW_CHECK_FAILED UPDATE test.v1 SET F59 = 919 where f59 = 0987 ; -SELECT * FROM test.v1 ; +SELECT * FROM test.v1 order by f59 ; -# ML: This UPDATE violates the definition of VIEW test.v1, but this -# does not count, because the UPDATE runs on test.v2, which -# is defined without any CHECK OPTION. -# FIXME Does this testcase fit to 3.3.1.47 ? +# mleich: This UPDATE violates the definition of VIEW test.v1, but this +# does not count, because the UPDATE runs on test.v2, which +# is defined without any CHECK OPTION. +# FIXME Does this testcase fit to 3.3.1.47 ? UPDATE test.v2 SET F59 = 9879 where f59 = 919 ; SELECT * FROM tb2 where f59 = 9879 ; @@ -1873,11 +1897,11 @@ DROP VIEW IF EXISTS test.v1; eval CREATE TABLE t1 (f1 ENUM('A', 'B', 'C') NOT NULL, f2 INTEGER) ENGINE = $engine_type; INSERT INTO t1 VALUES ('A', 1); -SELECT * FROM t1; +SELECT * FROM t1 order by f1, f2; CREATE VIEW v1 AS SELECT * FROM t1 WHERE f2 BETWEEN 1 AND 2 WITH CASCADED CHECK OPTION ; -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; --enable_info # positive cases UPDATE v1 SET f2 = 2 WHERE f2 = 1; @@ -1885,17 +1909,17 @@ INSERT INTO v1 VALUES('B',2); --disable_info # Bug#11771: View over InnoDB table, wrong result SELECT on VIEW, # field->query_id wrong -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; # negative cases --enable_info ---error 1369 +--error ER_VIEW_CHECK_FAILED UPDATE v1 SET f2 = 4; ---error 1369 +--error ER_VIEW_CHECK_FAILED INSERT INTO v1 VALUES('B',3); --disable_info # Bug#11771: View over InnoDB table, wrong result SELECT on VIEW, # field->query_id wrong -SELECT * FROM v1; +SELECT * FROM v1 order by f1, f2; let $message= Testcase 3.3.1.49 ; @@ -1980,10 +2004,10 @@ let $message= Testcase 3.3.1.49A ; # The annoying redundant # eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement, # @v3_to_v1_violation,$mysql_errno); -# could not be put into a file to be sourced because of +# could not be put into a file to be sourced because of the closed # Bug#10267 mysqltest, wrong number of loops when a script is sourced # within a loop -# +# To be implemented later. USE test; --disable_warnings @@ -2064,7 +2088,7 @@ while ($num1) SELECT * FROM v3; SELECT * FROM t1; DELETE FROM t1; - # 2. DELETEs within v3 + # 2. DELETEs within v3 # Outside v1 (0 to 10) INSERT INTO t1 VALUES(16, 'sixteen'); # Inside v1 (0 to 10), Outside v2 ((0 to 10) AND (6 to 16) -> (6 to 10)) @@ -2240,7 +2264,7 @@ while ($num1) SELECT * FROM t1_results ORDER BY v3_to_v1_options; -let $message= +let $message= Plausibility checks for INSERTs and UPDATEs ( 4. and 5. above). All following SELECTs must give ROW NOT FOUND ; --source include/show_msg80.inc @@ -2257,10 +2281,10 @@ SELECT * FROM t1_results WHERE v3_to_v1_options LIKE ' %' AND errno <> 0 ORDER BY v3_to_v1_options; # 3. There must be NO successful INSERT/UPDATE, when the toplevel VIEW v3 is -# defined with any CHECK OPTION and the WHERE qualification of this VIEW is +# defined with any CHECK OPTION and the WHERE qualification of this VIEW is # violated. Expect ROW NOT FUND SELECT * FROM t1_results -WHERE v3_to_v1_options LIKE 'WITH %' +WHERE v3_to_v1_options LIKE 'WITH %' AND v3_to_v1_violation LIKE 'v3_%' AND errno = 0 ORDER BY v3_to_v1_options; # 4. There must be NO successful INSERT/UPDATE, when the toplevel VIEW v3 is @@ -2270,7 +2294,8 @@ SELECT * FROM t1_results WHERE v3_to_v1_options LIKE 'WITH %' AND v3_to_v1_options NOT LIKE 'WITH LOCAL %' AND v3_to_v1_violation NOT LIKE ' _ _ ' AND errno = 0 ORDER BY v3_to_v1_options; -# 5. There must be NO failing INSERT/UPDATE getting a sql_errno <> 1369. +# 5. There must be NO failing INSERT/UPDATE getting a +# sql_errno <> 1369 (ER_VIEW_CHECK_FAILED). SELECT * FROM t1_results WHERE errno <> 0 AND errno <> 1369 ORDER BY v3_to_v1_options; @@ -2292,12 +2317,14 @@ DROP VIEW IF EXISTS test.v1; # that is semantically equivalent to CREATE VIEW # AS SELECT * FROM . ############################################################################### -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 5 ; -if ($have_bug_11589) +CREATE VIEW test.v1 AS SELECT * FROM test.tb2; +if ($have_bug_32285) { --disable_ps_protocol } -SELECT * FROM test.v1 ; +--vertical_results +SELECT * FROM test.v1 order by f59,f60,f61 ; +--horizontal_results --enable_ps_protocol drop view test.v1 ; ############################################################################### @@ -2307,8 +2334,8 @@ drop view test.v1 ; # that is semantically equivalent to CREATE VIEW # AS SELECT col1, col3 FROM
. ############################################################################### -CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2 limit 50 ; -SELECT * FROM test.v1 ; +CREATE VIEW test.v1 AS SELECT F59,F61 FROM test.tb2; +SELECT * FROM test.v1 order by F59, F61 limit 50; drop view test.v1 ; ############################################################################### # Testcase 3.3.1.52: Ensure that a view that is a subset of every column and @@ -2317,12 +2344,14 @@ drop view test.v1 ; # that is semantically equivalent to CREATE VIEW # AS SELECT * FROM
WHERE .... ############################################################################### -CREATE VIEW test.v1 AS SELECT * FROM test.tb2 limit 20 ; +CREATE VIEW test.v1 AS SELECT * FROM test.tb2 order by f59, f60, f61; if ($have_bug_11589) { --disable_ps_protocol } -SELECT * FROM test.v1; +--vertical_results +SELECT * FROM test.v1 order by f59,f60,f61 ; +--horizontal_results --enable_ps_protocol drop view test.v1 ; ############################################################################### @@ -2332,8 +2361,8 @@ drop view test.v1 ; # definition that is semantically equivalent to CREATE VIEW # AS SELECT col1, col3 FROM
WHERE .. ############################################################################### -CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2 limit 20 ; -SELECT * FROM test.v1 limit 50; +CREATE VIEW test.v1 AS SELECT F59,f61 FROM test.tb2; +SELECT * FROM test.v1 order by f59,f61 desc limit 20; drop view test.v1 ; @@ -2361,17 +2390,17 @@ Insert into t2 values (2,2000) ; Insert into t2 values (31,97) ; Create view test.v1 as select t1.f59, t1.f60 from t1,t2 where t1.f59=t2.f59 ; -Select * from test.v1 limit 50 ; +Select * from test.v1 order by f59 limit 50 ; drop table test.t1 ; drop table test.t2 ; drop view test.v1 ; -# FIXME(ML): Implement an automatic check for 3.3.1.50 - 3.3.1.54 -# CREATE VIEW ... AS -# Comparison of the VIEW with the temporary table +# FIXME(mleich): Implement an automatic check for 3.3.1.50 - 3.3.1.54 +# CREATE VIEW ... AS +# Comparison of the VIEW with the temporary table let $message= Testcase 3.3.1.50 - 3.3.1.54 additional implementation; --source include/show_msg80.inc @@ -2464,7 +2493,7 @@ create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 from t1 inner join t2 where t1.f59 = t2.f59 ; -select * from test.v1; +select * from test.v1 order by t1_f59 ; Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 from t1 inner join t2 where t1.f59 = t2.f59; @@ -2473,7 +2502,7 @@ from t1 inner join t2 where t1.f59 = t2.f59; Create or replace view test.v1 as Select t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2 cross join t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; Select t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2 cross join t1; @@ -2481,7 +2510,7 @@ FROM t2 cross join t1; Create or replace view test.v1 as Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2,t1; -Select * from v1; +Select * from v1 order by t1_f59,t2_f59; Select straight_join t1.f59 AS t1_f59, t2.f59 AS t2_f59 FROM t2,t1; @@ -2489,7 +2518,7 @@ FROM t2,t1; Create or replace view test.v1 as Select f59, f60, f61, a, b FROM t2 natural join t1; -Select * from v1; +Select * from v1 order by f59; Select f59, f60, f61, a, b FROM t2 natural join t1; @@ -2498,7 +2527,7 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 left outer join t1 on t2.f59=t1.f59; @@ -2507,7 +2536,7 @@ FROM t2 left outer join t1 on t2.f59=t1.f59; Create or replace view test.v1 as Select f59, f60, f61, t1.a, t2.b FROM t2 natural left outer join t1; -Select * from v1; +Select * from v1 order by f59; Select f59, f60, f61, t1.a, t2.b FROM t2 natural left outer join t1; @@ -2516,7 +2545,7 @@ Create or replace view test.v1 as Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 right outer join t1 on t2.f59=t1.f59; -Select * from v1; +Select * from v1 order by t1_f59; Select t1.f59 t1_f59, t2.f59 t2_f59, t1.f60 t1_f60, t2.f60 t2_f60, t1.f61 t1_f61, t2.f61 t2_f61 FROM t2 right outer join t1 on t2.f59=t1.f59; @@ -2525,7 +2554,7 @@ FROM t2 right outer join t1 on t2.f59=t1.f59; Create or replace view test.v1 as Select f59, f60, a, b FROM t2 natural right outer join t1; -Select * from v1; +Select * from v1 order by f59 desc; Select f59, f60, a, b FROM t2 natural right outer join t1; @@ -2558,7 +2587,7 @@ Insert into t1 values (901,801,401) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 LEFT JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; Drop view if exists test.v1 ; # Testcase 3.3.1.A2 ; @@ -2573,7 +2602,7 @@ Insert into t1 values (201,201,201) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 INNER JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; Drop view if exists test.v1 ; # Testcase 3.3.1.A3 ; @@ -2588,7 +2617,7 @@ Insert into t1 values (21,21,21) ; Create or replace view test.v1 as Select tb2.f59 FROM tb2 CROSS JOIN t1 on tb2.f59 = t1.f59 ; -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; Drop view test.v1 ; @@ -2614,15 +2643,15 @@ Insert into t1 values (91,81,41) ; Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union ALL (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union (Select f59 from t1 where f59=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; Create or replace view test.v1 as (Select f59 FROM tb2 where f59=17 ) Union Distinct (Select f59 from t1 where f60=17 ); -Select * from test.v1 limit 0,10; +Select * from test.v1 order by f59 limit 0,10; Drop view test.v1 ; @@ -2638,25 +2667,25 @@ insert into t1 values (901,801,401); create or replace view test.v1 as select tb2.f59 from tb2 join t1 on tb2.f59 = t1.f59; -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union all (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; create or replace view test.v1 as (select f59 from tb2 where f59=107 ) union distinct (select f59 from t1 where f59=107 ); -select * from test.v1 limit 0,10; +select * from test.v1 order by f59 limit 0,10; drop view if exists test.v1 ; drop table t1; @@ -2675,15 +2704,17 @@ Drop view if exists test.v1 ; CREATE VIEW test.v1 AS SELECT F59 FROM test.tb2 where test.tb2.F59 = 109; -SELECT * FROM test.v1 limit 0,10; +SELECT * FROM test.v1 order by f59 limit 0,10; ALTER VIEW test.v1 AS SELECT * FROM test.tb2 WHERE test.tb2.f59 = 242 ; -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } -SELECT * FROM test.v1 limit 0,10; +--vertical_results +SELECT * FROM test.v1 order by f59 limit 0,10; +--horizontal_results --enable_ps_protocol Drop view test.v1 ; @@ -2711,7 +2742,7 @@ CREATE VIEW v1 AS SELECT f1 FROM t1; # DROP VIEW DROP VIEW v1; ---error 1051 +--error ER_BAD_TABLE_ERROR DROP VIEW v1; CREATE VIEW v1 AS SELECT f1 FROM t1; @@ -2758,7 +2789,7 @@ while ($num1) # DROP VIEW v1_top < |RESTRICD|CASCADE> must be successful. eval $aux1 ; # Check, that v1_top really no more exists + cleanup for the second sub test - --error 1051 + --error ER_BAD_TABLE_ERROR DROP VIEW v1_top; CREATE VIEW v1_top AS SELECT * FROM v1_base; @@ -2788,8 +2819,8 @@ let $message= Testcase 3.3.1.69, 3.3.1.70, 3.3.1.A5 ; # 3.3.1.A5 SHOW COLUMNS, SHOW FIELDS, DESCRIBE, EXPLAIN # statement is executed ############################################################################### -# Note(ML): There will be no non failing sub testcases with SHOW here. -# They will be done in 3.3.11 ff. +# Note(mleich): There will be no non failing sub testcases with SHOW here. +# They will be done in 3.3.11 ff. --disable_warnings DROP TABLE IF EXISTS t1 ; DROP VIEW IF EXISTS v1 ; @@ -2800,24 +2831,24 @@ DROP VIEW v1 ; # The negative tests: # SELECT ---error 1146 +--error ER_NO_SUCH_TABLE SELECT * FROM v1 ; # ---error 1146 +--error ER_NO_SUCH_TABLE SHOW CREATE VIEW v1 ; ---error 1146 +--error ER_NO_SUCH_TABLE SHOW CREATE TABLE v1 ; # Attention: Like is a filter. So we will get an empty result set here. SHOW TABLE STATUS like 'v1' ; SHOW TABLES LIKE 'v1'; ---error 1146 +--error ER_NO_SUCH_TABLE SHOW COLUMNS FROM v1; ---error 1146 +--error ER_NO_SUCH_TABLE SHOW FIELDS FROM v1; CHECK TABLE v1; ---error 1146 +--error ER_NO_SUCH_TABLE DESCRIBE v1; ---error 1146 +--error ER_NO_SUCH_TABLE EXPLAIN SELECT * FROM v1; Use test; @@ -2886,30 +2917,34 @@ eval EXPLAIN SELECT * FROM test3.v$toplevel; # 1.2 Check the top level view when a base VIEW is dropped DROP VIEW test3.v0; eval SHOW CREATE VIEW test3.v$toplevel; ---error 1356 +--error ER_VIEW_INVALID eval SELECT * FROM test3.v$toplevel; ---error 1356 +--error ER_VIEW_INVALID eval EXPLAIN SELECT * FROM test3.v$toplevel; # 2. Complicated nested VIEWs # parameter @max_level = nesting level # There is a limit(@join_limit = 61) for the number of tables which -# could be joined. This limit will be reached, when we set +# could be joined. This limit will be reached, when we set # @max_level = @join_limit - 1 . --disable_query_log #++++++++++++++++++++++++++++++++++++++++++++++ # OBN - Reduced the value of join limit to 30 # Above seems to hang - FIXME -# ML - Reason unclear why it hangs for OBN on innodb and memory. -# Hypothesis: Maybe the consumption of virtual memory is high -# and OBN's box performs excessive paging. -# (RAM: OBN ~384MB RAM, ML 1 GB) +# mleich - Reason unclear why it hangs for OBN on innodb and memory. +# Hypothesis: Maybe the consumption of virtual memory is high +# and OBN's box performs excessive paging. +# (RAM: OBN ~384MB RAM, mleich 1 GB) #++++++++++++++++++++++++++++++++++++++++++++++ -let $message= FIXME - Setting join_limit to 30 - hangs for higher values; +let $message= FIXME - Setting join_limit to 28 - hangs for higher values; --source include/show_msg.inc +# OBN - Reduced from 30 in 5.1.21 to avoid hitting the ndbcluster limit +# of "ERROR HY000: Got temporary error 4006 'Connect failure +# - out of connection objects (increase MaxNoOfConcurrentTransactions)' +# from NDBCLUSTER " to early; #SET @join_limit = 61; -SET @join_limit = 30; +SET @join_limit = 28; # OBN - see above SET @max_level = @join_limit - 1; --enable_query_log @@ -3045,9 +3080,9 @@ let $sublevel= `SELECT @max_level`; eval CREATE VIEW test1.v$level AS SELECT f1, f2 FROM test3.t1 tab1 NATURAL JOIN test1.v$sublevel tab2; eval SHOW CREATE VIEW test1.v$level; -# the following line as written as '--eror 1116' and the command +# the following line as written as '--eror ER_TOO_MANY_TABLES' and the command # is successful so assuming no expected error was intended -# --error 1116 +# --error ER_TOO_MANY_TABLES eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM test1.v$level; let $message= The output of following EXPLAIN is deactivated, because the result @@ -3058,9 +3093,9 @@ if (1) { --disable_result_log } -# the following line as written as '--eror 1116' and the command +# the following line as written as '--eror ER_TOO_MANY_TABLES' and the command # is successful so assuming no expected error was intended -# --error 1116 +# --error ER_TOO_MANY_TABLES eval EXPLAIN SELECT CAST(f1 AS SIGNED INTEGER) AS f1, CAST(f2 AS CHAR) AS f2 FROM test1.v$level; if (1) @@ -3073,10 +3108,10 @@ eval DROP VIEW IF EXISTS test1.v$level; # and check the behaviour of the top level view. # 2.3.1 Exchange numeric and string column --disable_result_log -CREATE OR REPLACE VIEW test1.v0 AS +CREATE OR REPLACE VIEW test1.v0 AS SELECT f1 as f2, f2 as f1 FROM test2.t1; # 2.3.2 DATE instead of numeric -CREATE OR REPLACE VIEW test2.v0 AS +CREATE OR REPLACE VIEW test2.v0 AS SELECT CAST('0001-01-01' AS DATE) as f1, f2 FROM test3.t1; eval SHOW CREATE VIEW test1.v$toplevel; eval SELECT CAST(f1 AS SIGNED INTEGER) AS f1, @@ -3156,11 +3191,13 @@ Create view test.v1 AS SELECT f59,f60,f61 FROM tb2 ; INSERT INTO test.v1 ( f59 , f60 ) values (2005,0101) ; --disable_info -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results SELECT * FROM tb2 where f59 = 2005 and f60 = 0101 ; +--horizontal_results --enable_ps_protocol SELECT f59,f60 FROM test.v1 where f59 = 2005 and f60 = 0101 ; DELETE FROM tb2 where f59 = 2005 and f60 = 0101 ; @@ -3185,13 +3222,15 @@ CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ; UPDATE test.v1 SET f59 = 8 WHERE f59 = 780 and f60 = 105; --disable_info -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results SELECT * FROM tb2 where f59 = 8 and f60 = 105; +--horizontal_results --enable_ps_protocol -SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105; +SELECT f59,f60 FROM test.v1 where f59 = 8 and f60 = 105 ; Drop view test.v1 ; @@ -3213,13 +3252,15 @@ CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 ; UPDATE test.v1 SET f59 = 891 WHERE f60 = 105 ; --disable_info -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } +--vertical_results SELECT * FROM tb2 where f59 = 891 and f60 = 105; +--horizontal_results --enable_ps_protocol -SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105; +SELECT f59,f60 FROM test.v1 where f59 = 891 and f60 = 105 ; Drop view test.v1 ; @@ -3240,7 +3281,7 @@ CREATE VIEW test.v1 AS SELECT f59,f60,f61 FROM tb2 where f59 = 789 ; DELETE FROM test.v1 where f59 = 789 ; --disable_info SELECT * FROM tb2 where f59 = 789 ; -SELECT f59,f60 FROM test.v1 where f59 = 789; +SELECT f59,f60 FROM test.v1 where f59 = 789 order by f60 ; Drop view test.v1 ; @@ -3263,7 +3304,7 @@ DELETE FROM test.v1 where f59 = 711 ; --disable_info SELECT * FROM tb2 where f59 = 711 ; -SELECT f59,f60 FROM test.v1 where f59 = 711; +SELECT f59,f60 FROM test.v1 where f59 = 711 order by f60 ; Drop view test.v1 ; @@ -3296,7 +3337,8 @@ DELETE FROM t1; # f1 gets the default 0, because we are in the native sql_mode INSERT INTO v1 SET f2 = 'ABC'; # f1 gets the default 0, but this value is already exists ---error 1062 +# OBN change for 5.1.21 --error ER_DUP_ENTRY_WITH_KEY_NAME +--error ER_DUP_ENTRY INSERT INTO v1 SET f2 = 'ABC'; SELECT * from t1; DELETE FROM t1; @@ -3384,7 +3426,8 @@ CREATE VIEW v1 AS SELECT f2, f3 FROM t1; # f1 gets the default 0, because we are in the native sql_mode INSERT INTO v1 SET f2 = 'ABC'; # f1 gets the default 0 and this value is already exists ---error 1062 +# OBN change for 5.1.21 --error ER_DUP_ENTRY_WITH_KEY_NAME +--error ER_DUP_ENTRY INSERT INTO v1 SET f2 = 'ABC'; SELECT * from t1; DELETE FROM t1; @@ -3537,25 +3580,25 @@ DELETE FROM t1; #------------------------------------------------ INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X'); # UPDATE my_greeting - f1 ---error 1348 +--error ER_NONUPDATEABLE_COLUMN UPDATE v1 SET my_greeting = 'Hej' WHERE f1 = 1; SELECT * from t1; DELETE FROM t1; INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X'); # UPDATE my_greeting - f2 ---error 1348 +--error ER_NONUPDATEABLE_COLUMN UPDATE v1 SET my_greeting = 'Hej' WHERE f2 = 'ABC'; SELECT * from t1; DELETE FROM t1; INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X'); # UPDATE my_greeting - my_greeting ---error 1348 +--error ER_NONUPDATEABLE_COLUMN UPDATE v1 SET my_greeting = 'Hej' WHERE my_greeting = 'HELLO'; SELECT * from t1; DELETE FROM t1; INSERT INTO t1 VALUES(1, 'ABC', -1.2E-3, 'X'); # UPDATE my_greeting - none ---error 1348 +--error ER_NONUPDATEABLE_COLUMN UPDATE v1 SET my_greeting = 'Hej'; SELECT * from t1; DELETE FROM t1; @@ -3578,7 +3621,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT f1, f2, f4 FROM t1; # This INSERT must fail ---error 1423 +--error ER_NO_DEFAULT_FOR_VIEW_FIELD INSERT INTO v1 SET f1 = 1; SELECT * from t1; DELETE FROM t1; @@ -3631,10 +3674,10 @@ let $message= Testcases 3.3.2.7 - 3.3.2.9, # Summary of 3.3.2.7 - 3.3.2.11 # Ensure that a view with a definition that includes # UNION or UNION DISTINCT or UNION ALL or EXCEPT or INTERSECT -# rejects any INSERT or UPDATE or DELETE statement with an +# rejects any INSERT or UPDATE or DELETE statement with an # appropriate error message # -# ML: I assume the type of the storage engine does not play any role. +# mleich: I assume the type of the storage engine does not play any role. ############################################################################### INSERT INTO tb2 (f59,f60,f61) VALUES (77,185,126) ; INSERT INTO tb2 (f59,f60,f61) VALUES (59,58,54) ; @@ -3669,9 +3712,9 @@ while ($num) eval $aux; --error ER_NON_INSERTABLE_TABLE INSERT INTO v1 VALUES (3000); - --error 1288 + --error ER_NON_UPDATABLE_TABLE UPDATE v1 SET f61 = 100 WHERE f61 = 32; - --error 1288 + --error ER_NON_UPDATABLE_TABLE DELETE FROM v1; DROP VIEW v1 ; @@ -3768,19 +3811,6 @@ SET @variant6= 'CREATE VIEW v1 AS SELECT (SELECT f60 FROM t2 WHERE f59=19) AS f6 # For a WHERE clause sub query that refers to a table also referenced in a # FROM clause 3.3.2.18 SET @variant7= 'CREATE VIEW v1 AS SELECT f61 FROM v2'; -# Attention: The attempt to UPDATE the next VIEW fails like expected, -# but the error message -# ERROR 1093 (HY000) : You can't specify target table 'v1' for -# update in FORM clause" -# is wrong. The server must deliver ERROR 1288. -# Bug#10773 Incorrect message is displayed while updating a view -# ML FIXME (remove the comment above, replace --error 1288,1093 with -# --error 1288 and update the file with expected results) -# when Bug#10773 is solved -# For a reference to a non-updateable view 3.3.2.19 -let $message= Some server responses suffer from -Bug#10773 Incorrect message is displayed while updating a view; ---source include/show_msg80.inc SET @variant8= 'CREATE VIEW v1 AS SELECT f59 AS f61 FROM t1 WHERE f60 IN (SELECT f59 FROM t1)'; # For ALGORITHM = TEMPTABLE 3.3.2.20 SET @variant9= 'CREATE ALGORITHM = TEMPTABLE VIEW v1 (f61) AS select f60 from t1'; @@ -3799,17 +3829,12 @@ while ($num) --error ER_NON_INSERTABLE_TABLE INSERT INTO v1 VALUES (1002); - --error 1288, 1093 + # --error ER_NON_UPDATABLE_TABLE, ER_UPDATE_TABLE_USED + --error ER_NON_UPDATABLE_TABLE UPDATE v1 SET f61=1007; - --error 1288 + --error ER_NON_UPDATABLE_TABLE DELETE FROM v1; - - # The following "--error 0" will be no more needed, when - # Bug#12471: mysqltest, --error within loop affects wrong statement - # is fixed. - --error 0 DROP VIEW v1; - dec $num; } @@ -3828,7 +3853,7 @@ let $message= Testcases 3.3.A1; # # There is no specification of the intended behaviour within # the MySQL manual. That means I assume the observed effects are -# no bug as long we do not get a crash or obviously non +# no bug as long we do not get a crash or obviously non # reasonable results. ############################################################################### --disable_warnings @@ -3847,25 +3872,25 @@ INSERT INTO v1 SET f1 = -1, f4 = 'ABC', report = 'v1 0'; # 0. Initial state DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # # 1. Name of one base table column is altered ALTER TABLE t1 CHANGE COLUMN f4 f4x CHAR(5); INSERT INTO t1 SET f1 = 0, f4x = 'ABC', report = 't1 1'; ---error 1356 +--error ER_VIEW_INVALID INSERT INTO v1 SET f1 = 0, f4 = 'ABC', report = 'v1 1'; ---error 1054 +--error ER_BAD_FIELD_ERROR INSERT INTO v1 SET f1 = 0, f4x = 'ABC', report = 'v1 1a'; ---error 1356 +--error ER_VIEW_INVALID INSERT INTO v1 SET f1 = 0, report = 'v1 1b'; DESCRIBE t1; # Bug#12533 crash on DESCRIBE after renaming base table column; ---error 1356 +--error ER_VIEW_INVALID DESCRIBE v1; -SELECT * FROM t1; ---error 1356 -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +--error ER_VIEW_INVALID +SELECT * FROM v1 order by f1, report; ALTER TABLE t1 CHANGE COLUMN f4x f4 CHAR(5); # # 2. Length of one base table column is increased @@ -3874,8 +3899,8 @@ INSERT INTO t1 SET f1 = 2, f4 = '<-- 10 -->', report = 't1 2'; INSERT INTO v1 SET f1 = 2, f4 = '<-- 10 -->', report = 'v1 2'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # # 3. Length of one base table column is reduced ALTER TABLE t1 CHANGE COLUMN f4 f4 CHAR(8); @@ -3883,8 +3908,8 @@ INSERT INTO t1 SET f1 = 3, f4 = '<-- 10 -->', report = 't1 3'; INSERT INTO v1 SET f1 = 3, f4 = '<-- 10 -->', report = 'v1 3'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # # 4. Type of one base table column is altered string -> string ALTER TABLE t1 CHANGE COLUMN f4 f4 VARCHAR(20); @@ -3892,31 +3917,31 @@ INSERT INTO t1 SET f1 = 4, f4 = '<------ 20 -------->', report = 't1 4'; INSERT INTO v1 SET f1 = 4, f4 = '<------ 20 -------->', report = 'v1 4'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # -# 5. Type of one base table column altered numeric -> string +# 5. Type of one base table column altered numeric -> string ALTER TABLE t1 CHANGE COLUMN f1 f1 VARCHAR(30); -INSERT INTO t1 SET f1 = '<------------- 30 ----------->', +INSERT INTO t1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 't1 5'; -INSERT INTO v1 SET f1 = '<------------- 30 ----------->', +INSERT INTO v1 SET f1 = '<------------- 30 ----------->', f4 = '<------ 20 -------->', report = 'v1 5'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # # 6. DROP of one base table column ALTER TABLE t1 DROP COLUMN f2; INSERT INTO t1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 't1 6'; ---error 1356 +--error ER_VIEW_INVALID INSERT INTO v1 SET f1 = 'ABC', f4 = '<------ 20 -------->', report = 'v1 6'; DESCRIBE t1; ---error 1356 +--error ER_VIEW_INVALID DESCRIBE v1; -SELECT * FROM t1; ---error 1356 -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +--error ER_VIEW_INVALID +SELECT * FROM v1 order by f1, report; # # 7. Recreation of dropped base table column with the same data type like before ALTER TABLE t1 ADD COLUMN f2 DATE DEFAULT NULL; @@ -3926,8 +3951,8 @@ INSERT INTO v1 SET f1 = 'ABC', f2 = '1500-12-04', f4 = '<------ 20 -------->', report = 'v1 7'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # # 8. Recreation of dropped base table column with a different data type # like before @@ -3939,22 +3964,22 @@ INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4, f4 = '<------ 20 -------->', report = 'v1 8'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # # 9. Add a column to the base table ALTER TABLE t1 ADD COLUMN f3 NUMERIC(7,2); INSERT INTO t1 SET f1 = 'ABC', f2 = -3.3E-4, f3 = -2.2, f4 = '<------ 20 -------->', report = 't1 9'; ---error 1054 +--error ER_BAD_FIELD_ERROR INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4, f3 = -2.2, f4 = '<------ 20 -------->', report = 'v1 9'; INSERT INTO v1 SET f1 = 'ABC', f2 = -3.3E-4, f4 = '<------ 20 -------->', report = 'v1 9a'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, report; +SELECT * FROM v1 order by f1, report; # # 10. VIEW with numeric function is "victim" of data type change DROP TABLE t1; @@ -3964,48 +3989,54 @@ INSERT INTO t1 SET f1 = 'ABC', f2 = 3; CREATE VIEW v1 AS SELECT f1, SQRT(f2) my_sqrt FROM t1; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, f2; +SELECT * FROM v1 order by 2; ALTER TABLE t1 CHANGE COLUMN f2 f2 VARCHAR(30); INSERT INTO t1 SET f1 = 'ABC', f2 = 'DEF'; DESCRIBE t1; DESCRIBE v1; -SELECT * FROM t1; -SELECT * FROM v1; +SELECT * FROM t1 order by f1, f2; +SELECT * FROM v1 order by 2; # Some statements for comparison # - the ugly SQRT('DEF) as constant SELECT SQRT('DEF'); # - Will a VIEW based on the same definition show the same result ? CREATE VIEW v2 AS SELECT SQRT('DEF'); -SELECT * FROM v2; +SELECT * FROM v2 order by 1; # - Will a VIEW v2 created after the base table column recreation show the same # result set like v1 ? CREATE OR REPLACE VIEW v2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1; DESCRIBE v2; -SELECT * FROM v2; +SELECT * FROM v2 order by 2; # - What will be the content of base table created with AS SELECT ? CREATE TABLE t2 AS SELECT f1, SQRT(f2) my_sqrt FROM t1; -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } -SELECT * FROM t2; +--vertical_results +SELECT * FROM t2 order by 2; +--horizontal_results --enable_ps_protocol DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v1; -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } -SELECT * FROM t2; +--vertical_results +SELECT * FROM t2 order by 2; +--horizontal_results --enable_ps_protocol DROP TABLE t2; CREATE TABLE t2 AS SELECT * FROM v2; -if ($have_bug_11589) +if ($have_bug_32285) { --disable_ps_protocol } -SELECT * FROM t2; +--vertical_results +SELECT * FROM t2 order by 2; +--horizontal_results --enable_ps_protocol # DROP TABLE t1; From a48f1d24ab59358b0f38d93f23fe7e449e353029 Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Wed, 12 Mar 2008 12:13:41 +0300 Subject: [PATCH 086/139] Re-enabled the test for mysql_insert_id() after merging from main. --- tests/mysql_client_test.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index c30f329a967..d8015a4d2e0 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -15214,11 +15214,6 @@ static void test_bug14169() /* Test that mysql_insert_id() behaves as documented in our manual */ - -#if 0 - - Commented out because of Bug#34889. - static void test_mysql_insert_id() { my_ulonglong res; @@ -15410,7 +15405,6 @@ static void test_mysql_insert_id() rc= mysql_query(mysql, "drop table t1,t2"); myquery(rc); } -#endif /* @@ -16548,7 +16542,7 @@ static struct my_tests_st my_tests[]= { { "test_bug17667", test_bug17667 }, { "test_bug19671", test_bug19671 }, { "test_bug15752", test_bug15752 }, - /* { "test_mysql_insert_id", test_mysql_insert_id }, Bug#34889 */ + { "test_mysql_insert_id", test_mysql_insert_id }, { "test_bug21206", test_bug21206 }, { "test_bug21726", test_bug21726 }, { "test_bug15518", test_bug15518 }, From 2b09a99340a066f1710045df42da1f43ff1d711b Mon Sep 17 00:00:00 2001 From: "anozdrin/alik@quad." <> Date: Wed, 12 Mar 2008 16:13:33 +0300 Subject: [PATCH 087/139] A fix for Bug#34643: TRUNCATE crash if trigger and foreign key. In cases when TRUNCATE was executed by invoking mysql_delete() rather than by table recreation (for example, when TRUNCATE was issued on InnoDB table with is referenced by foreign key) triggers were invoked. In debug builds this also led to crash because of an assertion, which assumes that some preliminary actions take place before trigger invocation, which doesn't happen in case of TRUNCATE. The fix is not to execute triggers in mysql_delete() when this function is used by TRUNCATE. --- mysql-test/r/trigger-trans.result | 19 ++++++++++++++++++ mysql-test/t/trigger-trans.test | 32 +++++++++++++++++++++++++++++++ sql/sql_delete.cc | 15 ++++++++++----- 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/mysql-test/r/trigger-trans.result b/mysql-test/r/trigger-trans.result index cd5f629564f..dccaa27c5fd 100644 --- a/mysql-test/r/trigger-trans.result +++ b/mysql-test/r/trigger-trans.result @@ -140,4 +140,23 @@ select * from t3; c 1 drop table t1, t2, t3; +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=innodb; +CREATE TABLE t2(b INT, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE=innodb; +INSERT INTO t1 VALUES (1); +CREATE TRIGGER t1_bd BEFORE DELETE ON t1 FOR EACH ROW SET @a = 1; +CREATE TRIGGER t1_ad AFTER DELETE ON t1 FOR EACH ROW SET @b = 1; +SET @a = 0; +SET @b = 0; +TRUNCATE t1; +SELECT @a, @b; +@a @b +0 0 +INSERT INTO t1 VALUES (1); +DELETE FROM t1; +SELECT @a, @b; +@a @b +1 1 +DROP TABLE t2, t1; End of 5.0 tests diff --git a/mysql-test/t/trigger-trans.test b/mysql-test/t/trigger-trans.test index 8103a1ba0b1..5db5b982773 100644 --- a/mysql-test/t/trigger-trans.test +++ b/mysql-test/t/trigger-trans.test @@ -128,5 +128,37 @@ drop table t1, t2, t3; disconnect connection_update; disconnect connection_aux; +# +# Bug#34643: TRUNCATE crash if trigger and foreign key. +# + +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP TABLE IF EXISTS t2; +--enable_warnings + +CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=innodb; +CREATE TABLE t2(b INT, FOREIGN KEY(b) REFERENCES t1(a)) ENGINE=innodb; + +INSERT INTO t1 VALUES (1); + +CREATE TRIGGER t1_bd BEFORE DELETE ON t1 FOR EACH ROW SET @a = 1; +CREATE TRIGGER t1_ad AFTER DELETE ON t1 FOR EACH ROW SET @b = 1; + +SET @a = 0; +SET @b = 0; + +TRUNCATE t1; + +SELECT @a, @b; + +INSERT INTO t1 VALUES (1); + +DELETE FROM t1; + +SELECT @a, @b; + +DROP TABLE t2, t1; + --echo End of 5.0 tests diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index a28a39a769d..3019b68d6f1 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -35,6 +35,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, READ_RECORD info; bool using_limit=limit != HA_POS_ERROR; bool transactional_table, safe_update, const_cond; + bool triggers_applicable; ha_rows deleted; uint usable_index= MAX_KEY; SELECT_LEX *select_lex= &thd->lex->select_lex; @@ -93,6 +94,11 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, select_lex->no_error= thd->lex->ignore; + /* NOTE: TRUNCATE must not invoke triggers. */ + + triggers_applicable= table->triggers && + thd->lex->sql_command != SQLCOM_TRUNCATE; + /* Test if the user wants to delete all rows and deletion doesn't have any side-effects (because of triggers), so we can use optimized @@ -102,8 +108,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, */ if (!using_limit && const_cond && (!conds || conds->val_int()) && !(specialflag & (SPECIAL_NO_NEW_FUNC | SPECIAL_SAFE_MODE)) && - (thd->lex->sql_command == SQLCOM_TRUNCATE || - !(table->triggers && table->triggers->has_delete_triggers())) + !(triggers_applicable && table->triggers->has_delete_triggers()) ) { deleted= table->file->records; @@ -217,7 +222,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, init_ftfuncs(thd, select_lex, 1); thd->proc_info="updating"; - if (table->triggers) + if (triggers_applicable) { table->triggers->mark_fields_used(thd, TRG_EVENT_DELETE); if (table->triggers->has_triggers(TRG_EVENT_DELETE, @@ -239,7 +244,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, if (!(select && select->skip_record())&& !thd->net.report_error ) { - if (table->triggers && + if (triggers_applicable && table->triggers->process_triggers(thd, TRG_EVENT_DELETE, TRG_ACTION_BEFORE, FALSE)) { @@ -250,7 +255,7 @@ bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, if (!(error=table->file->delete_row(table->record[0]))) { deleted++; - if (table->triggers && + if (triggers_applicable && table->triggers->process_triggers(thd, TRG_EVENT_DELETE, TRG_ACTION_AFTER, FALSE)) { From 4a5e91cc6828d01bb0a9f1c9641058abde066d85 Mon Sep 17 00:00:00 2001 From: "istruewing@stella.local" <> Date: Wed, 12 Mar 2008 15:38:57 +0100 Subject: [PATCH 088/139] Bug#35247 - rpl_transaction.test produces warnings files The test file tried to use a mysqltest command '--warning' but there is no such command. Changed '--warning' to '#--warning'. --- mysql-test/t/rpl_transaction.test | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/t/rpl_transaction.test b/mysql-test/t/rpl_transaction.test index 07ba2ea8281..ee9de3b5a5e 100644 --- a/mysql-test/t/rpl_transaction.test +++ b/mysql-test/t/rpl_transaction.test @@ -39,7 +39,7 @@ COMMIT; BEGIN; INSERT INTO tmyisam VALUES (5); INSERT INTO tmyisam VALUES (6); ---warning 1196 +#--warning 1196 ROLLBACK; SELECT * FROM tmyisam ORDER BY a; From ad3f51b54e3f4d7ec7cf7f7916222a92c33cc619 Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Wed, 12 Mar 2008 17:03:50 -0400 Subject: [PATCH 089/139] Bug#34192: mysqldump from mysql 5.0.51 silently fails on dumping \ databases from 4.0 server mysqldump treated a failure to set the results charset as a severe error. Now, don't try to set the charset for the SHOW CREATE TABLE statement, if remote server's version is earlier than 4.1, which means it doesn't support changing charsets. --- client/mysqldump.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/client/mysqldump.c b/client/mysqldump.c index 980013d539a..fdaf8a9727b 100644 --- a/client/mysqldump.c +++ b/client/mysqldump.c @@ -109,6 +109,8 @@ static char *opt_password=0,*current_user=0, *log_error_file= NULL; static char **defaults_argv= 0; static char compatible_mode_normal_str[255]; +/* Server supports character_set_results session variable? */ +static my_bool server_supports_switching_charsets= TRUE; static ulong opt_compatible_mode= 0; #define MYSQL_OPT_MASTER_DATA_EFFECTIVE_SQL 1 #define MYSQL_OPT_MASTER_DATA_COMMENTED_SQL 2 @@ -1011,11 +1013,27 @@ static int mysql_query_with_error_report(MYSQL *mysql_con, MYSQL_RES **res, } +/** + Switch charset for results to some specified charset. If the server does not + support character_set_results variable, nothing can be done here. As for + whether something should be done here, future new callers of this function + should be aware that the server lacking the facility of switching charsets is + treated as success. + + @note If the server lacks support, then nothing is changed and no error + condition is returned. + + @returns whether there was an error or not +*/ static int switch_character_set_results(MYSQL *mysql, const char *cs_name) { char query_buffer[QUERY_LENGTH]; size_t query_length; + /* Server lacks facility. This is not an error, by arbitrary decision . */ + if (!server_supports_switching_charsets) + return FALSE; + query_length= my_snprintf(query_buffer, sizeof (query_buffer), "SET SESSION character_set_results = '%s'", @@ -1111,11 +1129,14 @@ static int connect_to_db(char *host, char *user,char *passwd) DB_error(&mysql_connection, "when trying to connect"); DBUG_RETURN(1); } - /* - Don't dump SET NAMES with a pre-4.1 server (bug#7997). - */ if (mysql_get_server_version(&mysql_connection) < 40100) + { + /* Don't dump SET NAMES with a pre-4.1 server (bug#7997). */ opt_set_charset= 0; + + /* Don't switch charsets for 4.1 and earlier. (bug#34192). */ + server_supports_switching_charsets= FALSE; + } /* As we're going to set SQL_MODE, it would be lost on reconnect, so we cannot reconnect. From 3bff5b59c669fa14645fb4705b2406bd2ba0e120 Mon Sep 17 00:00:00 2001 From: "kaa@kaamos.(none)" <> Date: Thu, 13 Mar 2008 12:14:14 +0300 Subject: [PATCH 090/139] Bug#35103 mysql_client_test::test_bug29948 causes sporadic failures Disable test case for bug 29948, which is causing sporadically failures in other tests inside mysql_client_test. --- tests/mysql_client_test.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index d8015a4d2e0..dbe22f2a9e4 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -15952,6 +15952,7 @@ static void test_bug27592() DBUG_VOID_RETURN; } +#if 0 static void test_bug29948() { @@ -16027,6 +16028,8 @@ static void test_bug29948() mysql_close(dbc); } +#endif + /** Bug#29306 Truncated data in MS Access with decimal (3,1) columns in a VIEW */ @@ -16553,7 +16556,7 @@ static struct my_tests_st my_tests[]= { { "test_bug28505", test_bug28505 }, { "test_bug28934", test_bug28934 }, { "test_bug27592", test_bug27592 }, - { "test_bug29948", test_bug29948 }, + /* { "test_bug29948", test_bug29948 }, Bug#35103 */ { "test_bug29306", test_bug29306 }, { "test_bug31669", test_bug31669 }, { "test_bug32265", test_bug32265 }, From d5390b2d56a6a4bf39c56858d54701ce55586e36 Mon Sep 17 00:00:00 2001 From: "istruewing@stella.local" <> Date: Thu, 13 Mar 2008 16:39:27 +0100 Subject: [PATCH 091/139] Bug#33756 - query cache with concurrent_insert=0 appears broken When concurrent inserts were disabled, statements after an INSERT were not put into the query cache. This happened because we do not save the current data file length at statement start when concurrent inserts are disabled. But we checked the always zero local length against the real file length anyway. Fixed by doing the check only if concurrent inserts are not diabled. --- mysql-test/r/query_cache.result | 27 +++++++++++++ mysql-test/t/query_cache.test | 20 ++++++++++ sql/ha_myisam.cc | 70 +++++++++++++++++++-------------- 3 files changed, 87 insertions(+), 30 deletions(-) diff --git a/mysql-test/r/query_cache.result b/mysql-test/r/query_cache.result index 68f18d1b0b2..fa80a44c177 100644 --- a/mysql-test/r/query_cache.result +++ b/mysql-test/r/query_cache.result @@ -1654,3 +1654,30 @@ set GLOBAL query_cache_type=default; set GLOBAL query_cache_limit=default; set GLOBAL query_cache_min_res_unit=default; set GLOBAL query_cache_size=default; +use test; +FLUSH STATUS; +SET GLOBAL query_cache_size=10*1024*1024; +SET @save_concurrent_insert= @@concurrent_insert; +SET GLOBAL concurrent_insert= 0; +CREATE TABLE t1 (c1 INT NOT NULL) ENGINE=MyISAM; +INSERT INTO t1 (c1) VALUES (1), (2); +SHOW GLOBAL VARIABLES LIKE 'concurrent_insert'; +Variable_name Value +concurrent_insert 0 +SHOW STATUS LIKE 'Qcache_hits'; +Variable_name Value +Qcache_hits 0 +SELECT * FROM t1; +c1 +1 +2 +SELECT * FROM t1; +c1 +1 +2 +SHOW STATUS LIKE 'Qcache_hits'; +Variable_name Value +Qcache_hits 1 +DROP TABLE t1; +SET GLOBAL concurrent_insert= @save_concurrent_insert; +SET GLOBAL query_cache_size= default; diff --git a/mysql-test/t/query_cache.test b/mysql-test/t/query_cache.test index 44b63df9739..ebd24bf2b89 100644 --- a/mysql-test/t/query_cache.test +++ b/mysql-test/t/query_cache.test @@ -1255,5 +1255,25 @@ set GLOBAL query_cache_type=default; set GLOBAL query_cache_limit=default; set GLOBAL query_cache_min_res_unit=default; set GLOBAL query_cache_size=default; +use test; + +# +# Bug#33756 - query cache with concurrent_insert=0 appears broken +# +FLUSH STATUS; +SET GLOBAL query_cache_size=10*1024*1024; +SET @save_concurrent_insert= @@concurrent_insert; +SET GLOBAL concurrent_insert= 0; +CREATE TABLE t1 (c1 INT NOT NULL) ENGINE=MyISAM; +INSERT INTO t1 (c1) VALUES (1), (2); +# +SHOW GLOBAL VARIABLES LIKE 'concurrent_insert'; +SHOW STATUS LIKE 'Qcache_hits'; +SELECT * FROM t1; +SELECT * FROM t1; +SHOW STATUS LIKE 'Qcache_hits'; +DROP TABLE t1; +SET GLOBAL concurrent_insert= @save_concurrent_insert; +SET GLOBAL query_cache_size= default; # End of 5.0 tests diff --git a/sql/ha_myisam.cc b/sql/ha_myisam.cc index 46afa7a8f45..8c8f027bb6b 100644 --- a/sql/ha_myisam.cc +++ b/sql/ha_myisam.cc @@ -1954,6 +1954,7 @@ my_bool ha_myisam::register_query_cache_table(THD *thd, char *table_name, *engine_callback, ulonglong *engine_data) { + DBUG_ENTER("ha_myisam::register_query_cache_table"); /* No call back function is needed to determine if a cached statement is valid or not. @@ -1965,39 +1966,48 @@ my_bool ha_myisam::register_query_cache_table(THD *thd, char *table_name, */ *engine_data= 0; - /* - If a concurrent INSERT has happened just before the currently processed - SELECT statement, the total size of the table is unknown. - - To determine if the table size is known, the current thread's snap shot of - the table size with the actual table size are compared. - - If the table size is unknown the SELECT statement can't be cached. - */ - ulonglong actual_data_file_length; - ulonglong current_data_file_length; - - /* - POSIX visibility rules specify that "2. Whatever memory values a - thread can see when it unlocks a mutex <...> can also be seen by any - thread that later locks the same mutex". In this particular case, - concurrent insert thread had modified the data_file_length in - MYISAM_SHARE before it has unlocked (or even locked) - structure_guard_mutex. So, here we're guaranteed to see at least that - value after we've locked the same mutex. We can see a later value - (modified by some other thread) though, but it's ok, as we only want - to know if the variable was changed, the actual new value doesn't matter - */ - actual_data_file_length= file->s->state.state.data_file_length; - current_data_file_length= file->save_state.data_file_length; - - if (current_data_file_length != actual_data_file_length) + if (file->s->concurrent_insert) { - /* Don't cache current statement. */ - return FALSE; + /* + If a concurrent INSERT has happened just before the currently + processed SELECT statement, the total size of the table is + unknown. + + To determine if the table size is known, the current thread's snap + shot of the table size with the actual table size are compared. + + If the table size is unknown the SELECT statement can't be cached. + + When concurrent inserts are disabled at table open, mi_open() + does not assign a get_status() function. In this case the local + ("current") status is never updated. We would wrongly think that + we cannot cache the statement. + */ + ulonglong actual_data_file_length; + ulonglong current_data_file_length; + + /* + POSIX visibility rules specify that "2. Whatever memory values a + thread can see when it unlocks a mutex <...> can also be seen by any + thread that later locks the same mutex". In this particular case, + concurrent insert thread had modified the data_file_length in + MYISAM_SHARE before it has unlocked (or even locked) + structure_guard_mutex. So, here we're guaranteed to see at least that + value after we've locked the same mutex. We can see a later value + (modified by some other thread) though, but it's ok, as we only want + to know if the variable was changed, the actual new value doesn't matter + */ + actual_data_file_length= file->s->state.state.data_file_length; + current_data_file_length= file->save_state.data_file_length; + + if (current_data_file_length != actual_data_file_length) + { + /* Don't cache current statement. */ + DBUG_RETURN(FALSE); + } } /* It is ok to try to cache current statement. */ - return TRUE; + DBUG_RETURN(TRUE); } #endif From 97ae23f4735c46dd03bf542ea52eba0fccb43d2b Mon Sep 17 00:00:00 2001 From: "hezx@mail.hezx.com" <> Date: Fri, 14 Mar 2008 10:03:01 +0800 Subject: [PATCH 092/139] BUG#33029 5.0 to 5.1 replication fails on dup key when inserting using a trig in SP For all 5.0 and up to 5.1.12 exclusive, when a stored routine or trigger caused an INSERT into an AUTO_INCREMENT column, the generated AUTO_INCREMENT value should not be written into the binary log, which means if a statement does not generate AUTO_INCREMENT value itself, there will be no Intvar event (SET INSERT_ID) associated with it even if one of the stored routine or trigger caused generation of such a value. And meanwhile, when executing a stored routine or trigger, it would ignore the INSERT_ID value even if there is a INSERT_ID value available set by a SET INSERT_ID statement. Starting from MySQL 5.1.12, the generated AUTO_INCREMENT value is written into the binary log, and the value will be used if available when executing the stored routine or trigger. Prior fix of this bug in MySQL 5.0 and prior MySQL 5.1.12 (referenced as the buggy versions in the text below), when a statement that generates AUTO_INCREMENT value by the top statement was executed in the body of a SP, all statements in the SP after this statement would be treated as if they had generated AUTO_INCREMENT by the top statement. When a statement that did not generate AUTO_INCREMENT value by the top statement but by a function/trigger called by it, an erroneous Intvar event would be associated with the statement, this erroneous INSERT_ID value wouldn't cause problem when replicating between masters and slaves of 5.0.x or prior 5.1.12, because the erroneous INSERT_ID value was not used when executing functions/triggers. But when replicating from buggy versions to 5.1.12 or newer, which will use the INSERT_ID value in functions/triggers, the erroneous value will be used, which would cause duplicate entry error and cause the slave to stop. The patch for 5.0 fixed it not to generate the erroneous Intvar event, another patch for 5.1 fixed it to ignore the SET INSERT_ID value when executing functions/triggers if it is replicating from a master of buggy versions. --- mysql-test/include/show_binlog_events.inc | 12 +- .../r/rpl_auto_increment_bug33029.result | 167 ++++++++++++++++++ mysql-test/t/rpl_auto_increment_bug33029.test | 107 +++++++++++ sql/sql_class.cc | 7 + 4 files changed, 290 insertions(+), 3 deletions(-) create mode 100644 mysql-test/r/rpl_auto_increment_bug33029.result create mode 100644 mysql-test/t/rpl_auto_increment_bug33029.test diff --git a/mysql-test/include/show_binlog_events.inc b/mysql-test/include/show_binlog_events.inc index 5d60fb19cb5..50b910b553b 100644 --- a/mysql-test/include/show_binlog_events.inc +++ b/mysql-test/include/show_binlog_events.inc @@ -1,4 +1,10 @@ ---let $binlog_start=98 ---replace_column 5 # ---replace_regex /\/\* xid=.* \*\//\/* XID *\// +# $binlog_start can be set by caller or take a default value + +if (!$binlog_start) +{ + let $binlog_start=98; +} +--replace_result $binlog_start +--replace_column 2 # 4 # 5 # +--replace_regex /\/\* xid=.* \*\//\/* XID *\// /table_id: [0-9]+/table_id: #/ /file_id=[0-9]+/file_id=#/ --eval show binlog events from $binlog_start diff --git a/mysql-test/r/rpl_auto_increment_bug33029.result b/mysql-test/r/rpl_auto_increment_bug33029.result new file mode 100644 index 00000000000..b1512a6ec1d --- /dev/null +++ b/mysql-test/r/rpl_auto_increment_bug33029.result @@ -0,0 +1,167 @@ +stop slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +reset master; +reset slave; +drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; +start slave; +DROP TABLE IF EXISTS t1, t2; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; +DROP TRIGGER IF EXISTS tr1; +DROP FUNCTION IF EXISTS f1; +CREATE TABLE t1 (id INT AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t2 (id INT AUTO_INCREMENT PRIMARY KEY); +CREATE PROCEDURE p1() +BEGIN +DECLARE ins_count INT DEFAULT 10; +WHILE ins_count > 0 DO +INSERT INTO t1 VALUES (NULL); +SET ins_count = ins_count - 1; +END WHILE; +DELETE FROM t1 WHERE id = 1; +DELETE FROM t1 WHERE id = 2; +DELETE FROM t2 WHERE id = 1; +DELETE FROM t2 WHERE id = 2; +END// +CREATE PROCEDURE p2() +BEGIN +INSERT INTO t1 VALUES (NULL); +DELETE FROM t1 WHERE id = f1(3); +DELETE FROM t1 WHERE id = f1(4); +DELETE FROM t2 WHERE id = 3; +DELETE FROM t2 WHERE id = 4; +END// +CREATE TRIGGER tr1 BEFORE DELETE +ON t1 FOR EACH ROW +BEGIN +INSERT INTO t2 VALUES (NULL); +END// +CREATE FUNCTION f1 (i int) RETURNS int +BEGIN +INSERT INTO t2 VALUES (NULL); +RETURN i; +END// +CALL p1(); +show binlog events from ; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Intvar # # INSERT_ID=1 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=2 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=3 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=4 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=5 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=6 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=7 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=8 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=9 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Intvar # # INSERT_ID=10 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Query # # use `test`; DELETE FROM t1 WHERE id = 1 +master-bin.000001 # Query # # use `test`; DELETE FROM t1 WHERE id = 2 +master-bin.000001 # Query # # use `test`; DELETE FROM t2 WHERE id = 1 +master-bin.000001 # Query # # use `test`; DELETE FROM t2 WHERE id = 2 +# Result on master +SELECT * FROM t1; +id +3 +4 +5 +6 +7 +8 +9 +10 +SELECT * FROM t2; +id +# Result on slave +SELECT * FROM t1; +id +3 +4 +5 +6 +7 +8 +9 +10 +SELECT * FROM t2; +id +DROP TRIGGER tr1; +CALL p2(); +show binlog events from ; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Intvar # # INSERT_ID=11 +master-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (NULL) +master-bin.000001 # Query # # use `test`; DELETE FROM t1 WHERE id = f1(3) +master-bin.000001 # Query # # use `test`; DELETE FROM t1 WHERE id = f1(4) +master-bin.000001 # Query # # use `test`; DELETE FROM t2 WHERE id = 3 +master-bin.000001 # Query # # use `test`; DELETE FROM t2 WHERE id = 4 +# Result on master +SELECT * FROM t1; +id +5 +6 +7 +8 +9 +10 +11 +SELECT * FROM t2; +id +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +# Result on slave +SELECT * FROM t1; +id +5 +6 +7 +8 +9 +10 +11 +SELECT * FROM t2; +id +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +DROP TABLE IF EXISTS t1, t2; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; +DROP FUNCTION IF EXISTS f1; +DROP TRIGGER IF EXISTS tr1; +Warnings: +Note 1360 Trigger does not exist diff --git a/mysql-test/t/rpl_auto_increment_bug33029.test b/mysql-test/t/rpl_auto_increment_bug33029.test new file mode 100644 index 00000000000..a4f716d8411 --- /dev/null +++ b/mysql-test/t/rpl_auto_increment_bug33029.test @@ -0,0 +1,107 @@ +# BUG#33029 5.0 to 5.1 replication fails on dup key when inserting +# using a trig in SP + +# For all 5.0 up to 5.0.58 exclusive, and 5.1 up to 5.1.12 exclusive, +# if one statement in a SP generated AUTO_INCREMENT value by the top +# statement, all statements after it would be considered generated +# AUTO_INCREMENT value by the top statement, and a erroneous INSERT_ID +# value might be associated with these statement, which could cause +# duplicate entry error and stop the slave. + +source include/master-slave.inc; + +--disable_warnings +DROP TABLE IF EXISTS t1, t2; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; +DROP TRIGGER IF EXISTS tr1; +DROP FUNCTION IF EXISTS f1; +--enable_warnings + +CREATE TABLE t1 (id INT AUTO_INCREMENT PRIMARY KEY); +CREATE TABLE t2 (id INT AUTO_INCREMENT PRIMARY KEY); + +delimiter //; + +CREATE PROCEDURE p1() +BEGIN + DECLARE ins_count INT DEFAULT 10; + + WHILE ins_count > 0 DO + INSERT INTO t1 VALUES (NULL); + SET ins_count = ins_count - 1; + END WHILE; + + DELETE FROM t1 WHERE id = 1; + DELETE FROM t1 WHERE id = 2; + DELETE FROM t2 WHERE id = 1; + DELETE FROM t2 WHERE id = 2; +END// + +CREATE PROCEDURE p2() +BEGIN + INSERT INTO t1 VALUES (NULL); + DELETE FROM t1 WHERE id = f1(3); + DELETE FROM t1 WHERE id = f1(4); + DELETE FROM t2 WHERE id = 3; + DELETE FROM t2 WHERE id = 4; +END// + +CREATE TRIGGER tr1 BEFORE DELETE + ON t1 FOR EACH ROW + BEGIN + INSERT INTO t2 VALUES (NULL); + END// + +CREATE FUNCTION f1 (i int) RETURNS int + BEGIN + INSERT INTO t2 VALUES (NULL); + RETURN i; + END// + +delimiter ;// + +# the $binlog_start will be used by the show_binlog_events.inc, so +# that we can skip binlog events we don't care +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); +CALL p1(); +source include/show_binlog_events.inc; + +echo # Result on master; +SELECT * FROM t1; +SELECT * FROM t2; + +sync_slave_with_master; + +echo # Result on slave; +SELECT * FROM t1; +SELECT * FROM t2; + +connection master; + +DROP TRIGGER tr1; + +# the $binlog_start will be used by the show_binlog_events.inc, so +# that we can skip binlog events we don't care +let $binlog_start= query_get_value(SHOW MASTER STATUS, Position, 1); +CALL p2(); +source include/show_binlog_events.inc; + +echo # Result on master; +SELECT * FROM t1; +SELECT * FROM t2; + +sync_slave_with_master; + +echo # Result on slave; +SELECT * FROM t1; +SELECT * FROM t2; + +# clean up +connection master; +DROP TABLE IF EXISTS t1, t2; +DROP PROCEDURE IF EXISTS p1; +DROP PROCEDURE IF EXISTS p2; +DROP FUNCTION IF EXISTS f1; +DROP TRIGGER IF EXISTS tr1; +sync_slave_with_master; diff --git a/sql/sql_class.cc b/sql/sql_class.cc index e36ed0c425f..f541c8b3677 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -622,6 +622,13 @@ void THD::cleanup_after_query() { clear_next_insert_id= 0; next_insert_id= 0; + + /* + BUG#33029, if one statement in a SP set this member to 1, all + statment after this statement in the SP would be considered used + INSERT_ID value, reset this member after each query to fix this. + */ + insert_id_used= 0; } /* Reset rand_used so that detection of calls to rand() will save random From 243ca22b94b160ee7762a38e1a25b04bb3869a7c Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/april.(none)" <> Date: Fri, 14 Mar 2008 17:17:03 +0400 Subject: [PATCH 093/139] BUG#13861 - START SLAVE UNTIL may stop 1 evnt too late if log-slave-updates and circul repl This is a test case fix for BUG#13861. --- mysql-test/r/rpl_dual_pos_advance.result | 3 --- mysql-test/t/rpl_dual_pos_advance.test | 6 ------ 2 files changed, 9 deletions(-) diff --git a/mysql-test/r/rpl_dual_pos_advance.result b/mysql-test/r/rpl_dual_pos_advance.result index 97ca8101c33..4c6323a61db 100644 --- a/mysql-test/r/rpl_dual_pos_advance.result +++ b/mysql-test/r/rpl_dual_pos_advance.result @@ -25,9 +25,6 @@ insert into t3 values(4); start slave until master_log_file="slave-bin.000001",master_log_pos=195; Warnings: Note 1278 It is recommended to use --skip-slave-start when doing step-by-step replication with START SLAVE UNTIL; otherwise, you will get problems if you get an unexpected slave's mysqld restart -select master_pos_wait("slave-bin.000001",137); -master_pos_wait("slave-bin.000001",137) -0 show tables; Tables_in_test t1 diff --git a/mysql-test/t/rpl_dual_pos_advance.test b/mysql-test/t/rpl_dual_pos_advance.test index 5e08284a2f2..6a3cf9e4f97 100644 --- a/mysql-test/t/rpl_dual_pos_advance.test +++ b/mysql-test/t/rpl_dual_pos_advance.test @@ -65,12 +65,6 @@ connection master; # asking it to stop before creation of t3. start slave until master_log_file="slave-bin.000001",master_log_pos=195; - -# wait until it's started (the position below is the start of "CREATE -# TABLE t2") (otherwise wait_for_slave_to_stop may return at once) - -select master_pos_wait("slave-bin.000001",137); - wait_for_slave_to_stop; # then BUG#13861 causes t3 to show up below (because stopped too From 1f0e9f5a5ded1cfb7640b5d6d7f697a56e8cb5b5 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/june.mysql.com" <> Date: Fri, 14 Mar 2008 19:38:22 +0400 Subject: [PATCH 094/139] BUG#28248 - mysqldump results with MERGE ... UNION=() cannot be executed When there are no underlying tables specified for a merge table, SHOW CREATE TABLE outputs a statement that cannot be executed. The same is true for mysqldump (it generates dumps that cannot be executed). This happens because SQL parser does not accept empty UNION() clause. This patch changes the following: - it is now possible to execute CREATE/ALTER statement with empty UNION() clause. - the same as above, but still worth noting: it is now possible to remove underlying tables mapping using ALTER TABLE ... UNION=(). - SHOW CREATE TABLE does not output UNION() clause if there are no underlying tables specified for a merge table. This makes mysqldump slightly smaller. --- mysql-test/r/merge.result | 22 ++++++++++++++++++++++ mysql-test/t/merge.test | 13 +++++++++++++ sql/ha_myisammrg.cc | 6 ++++++ sql/sql_yacc.yy | 2 +- 4 files changed, 42 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/merge.result b/mysql-test/r/merge.result index 2ceae95dfca..f8ef4f23180 100644 --- a/mysql-test/r/merge.result +++ b/mysql-test/r/merge.result @@ -918,4 +918,26 @@ id ref 3 2 4 5 DROP TABLE t1, t2, t3; +CREATE TABLE t1(a INT); +CREATE TABLE m1(a INT) ENGINE=MERGE; +SHOW CREATE TABLE m1; +Table Create Table +m1 CREATE TABLE `m1` ( + `a` int(11) default NULL +) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 +DROP TABLE m1; +CREATE TABLE m1(a INT) ENGINE=MERGE UNION=(); +SHOW CREATE TABLE m1; +Table Create Table +m1 CREATE TABLE `m1` ( + `a` int(11) default NULL +) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 +ALTER TABLE m1 UNION=(t1); +ALTER TABLE m1 UNION=(); +SHOW CREATE TABLE m1; +Table Create Table +m1 CREATE TABLE `m1` ( + `a` int(11) default NULL +) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 +DROP TABLE t1, m1; End of 5.0 tests diff --git a/mysql-test/t/merge.test b/mysql-test/t/merge.test index 35443987858..e5cc4d703f2 100644 --- a/mysql-test/t/merge.test +++ b/mysql-test/t/merge.test @@ -542,5 +542,18 @@ SELECT * FROM t3; DROP TABLE t1, t2, t3; +# +# BUG#28248 - mysqldump results with MERGE ... UNION=() cannot be executed +# +CREATE TABLE t1(a INT); +CREATE TABLE m1(a INT) ENGINE=MERGE; +SHOW CREATE TABLE m1; +DROP TABLE m1; +CREATE TABLE m1(a INT) ENGINE=MERGE UNION=(); +SHOW CREATE TABLE m1; +ALTER TABLE m1 UNION=(t1); +ALTER TABLE m1 UNION=(); +SHOW CREATE TABLE m1; +DROP TABLE t1, m1; --echo End of 5.0 tests diff --git a/sql/ha_myisammrg.cc b/sql/ha_myisammrg.cc index 78492d2843d..b796978f352 100644 --- a/sql/ha_myisammrg.cc +++ b/sql/ha_myisammrg.cc @@ -602,6 +602,12 @@ void ha_myisammrg::append_create_info(String *packet) packet->append(STRING_WITH_LEN(" INSERT_METHOD=")); packet->append(get_type(&merge_insert_method,file->merge_insert_method-1)); } + /* + There is no sence adding UNION clause in case there is no underlying + tables specified. + */ + if (file->open_tables == file->end_table) + return; packet->append(STRING_WITH_LEN(" UNION=(")); MYRG_TABLE *open_table,*first; diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index 04285fea227..b877a789732 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -2932,7 +2932,7 @@ create_table_option: my_error(ER_WARN_DEPRECATED_SYNTAX, MYF(0), "RAID_CHUNKSIZE", "PARTITION"); MYSQL_YYABORT; } - | UNION_SYM opt_equal '(' table_list ')' + | UNION_SYM opt_equal '(' opt_table_list ')' { /* Move the union list to the merge_list */ LEX *lex=Lex; From cf90fb55718ee7252c9f5252d4941832607de072 Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Fri, 14 Mar 2008 23:11:59 +0400 Subject: [PATCH 095/139] Fixed bug #34763. Queries like: SELECT ROW(1, 2) IN (SELECT t1.a, 2) FROM t1 GROUP BY t1.a or SELECT ROW(1, 2) IN (SELECT t1.a, 2 FROM t2) FROM t1 GROUP BY t1.a lead to assertion failure in the Item_in_subselect::row_value_transformer method in debugging build, or to unexpected error message in release build: ERROR 1247 (42S22): Reference '' not supported (forward reference in item list) Unexpected error message and assertion failure have been eliminated. --- mysql-test/r/subselect3.result | 13 ++++++++++++- mysql-test/t/subselect3.test | 19 ++++++++++++++++++- sql/item.cc | 15 +++++++++------ sql/item_subselect.cc | 12 ++++++++++-- 4 files changed, 49 insertions(+), 10 deletions(-) diff --git a/mysql-test/r/subselect3.result b/mysql-test/r/subselect3.result index bdf00e4c307..c194ba33756 100644 --- a/mysql-test/r/subselect3.result +++ b/mysql-test/r/subselect3.result @@ -758,5 +758,16 @@ EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); id select_type table type possible_keys key key_len ref rows Extra 1 PRIMARY t1 ALL NULL NULL NULL NULL 4 Using where 2 DEPENDENT SUBQUERY t2 unique_subquery PRIMARY PRIMARY 4 func 1 Using index; Using where -DROP TABLE t1; +DROP TABLE t1, t2; +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES(1); +CREATE TABLE t2 (placeholder CHAR(11)); +INSERT INTO t2 VALUES("placeholder"); +SELECT ROW(1, 2) IN (SELECT t1.a, 2) FROM t1 GROUP BY t1.a; +ROW(1, 2) IN (SELECT t1.a, 2) +1 +SELECT ROW(1, 2) IN (SELECT t1.a, 2 FROM t2) FROM t1 GROUP BY t1.a; +ROW(1, 2) IN (SELECT t1.a, 2 FROM t2) +1 +DROP TABLE t1, t2; End of 5.0 tests diff --git a/mysql-test/t/subselect3.test b/mysql-test/t/subselect3.test index 2f844c9cc21..cfbde8c29cd 100644 --- a/mysql-test/t/subselect3.test +++ b/mysql-test/t/subselect3.test @@ -586,6 +586,23 @@ SELECT a FROM t1 WHERE a NOT IN (65,66); SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); EXPLAIN SELECT a FROM t1 WHERE a NOT IN (SELECT a FROM t2); -DROP TABLE t1; +DROP TABLE t1, t2; + +# +# Bug #34763: item_subselect.cc:1235:Item_in_subselect::row_value_transformer: +# Assertion failed, unexpected error message: +# ERROR 1247 (42S22): Reference '' not supported (forward +# reference in item list) +# +CREATE TABLE t1 (a INT); +INSERT INTO t1 VALUES(1); + +CREATE TABLE t2 (placeholder CHAR(11)); +INSERT INTO t2 VALUES("placeholder"); + +SELECT ROW(1, 2) IN (SELECT t1.a, 2) FROM t1 GROUP BY t1.a; +SELECT ROW(1, 2) IN (SELECT t1.a, 2 FROM t2) FROM t1 GROUP BY t1.a; + +DROP TABLE t1, t2; --echo End of 5.0 tests diff --git a/sql/item.cc b/sql/item.cc index 53e7f124ccd..36612ddea44 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -5451,13 +5451,16 @@ bool Item_ref::fix_fields(THD *thd, Item **reference) DBUG_ASSERT(*ref); /* Check if this is an incorrect reference in a group function or forward - reference. Do not issue an error if this is an unnamed reference inside an - aggregate function. + reference. Do not issue an error if this is: + 1. outer reference (will be fixed later by the fix_inner_refs function); + 2. an unnamed reference inside an aggregate function. */ - if (((*ref)->with_sum_func && name && - !(current_sel->linkage != GLOBAL_OPTIONS_TYPE && - current_sel->having_fix_field)) || - !(*ref)->fixed) + if (!((*ref)->type() == REF_ITEM && + ((Item_ref *)(*ref))->ref_type() == OUTER_REF) && + (((*ref)->with_sum_func && name && + !(current_sel->linkage != GLOBAL_OPTIONS_TYPE && + current_sel->having_fix_field)) || + !(*ref)->fixed)) { my_error(ER_ILLEGAL_REFERENCE, MYF(0), name, ((*ref)->with_sum_func? diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index b3710841dfb..a03a7d739b2 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1232,7 +1232,11 @@ Item_in_subselect::row_value_transformer(JOIN *join) Item *item_having_part2= 0; for (uint i= 0; i < cols_num; i++) { - DBUG_ASSERT(left_expr->fixed && select_lex->ref_pointer_array[i]->fixed); + DBUG_ASSERT(left_expr->fixed && + select_lex->ref_pointer_array[i]->fixed || + (select_lex->ref_pointer_array[i]->type() == REF_ITEM && + ((Item_ref*)(select_lex->ref_pointer_array[i]))->ref_type() == + Item_ref::OUTER_REF)); if (select_lex->ref_pointer_array[i]-> check_cols(left_expr->element_index(i)->cols())) DBUG_RETURN(RES_ERROR); @@ -1306,7 +1310,11 @@ Item_in_subselect::row_value_transformer(JOIN *join) for (uint i= 0; i < cols_num; i++) { Item *item, *item_isnull; - DBUG_ASSERT(left_expr->fixed && select_lex->ref_pointer_array[i]->fixed); + DBUG_ASSERT(left_expr->fixed && + select_lex->ref_pointer_array[i]->fixed || + (select_lex->ref_pointer_array[i]->type() == REF_ITEM && + ((Item_ref*)(select_lex->ref_pointer_array[i]))->ref_type() == + Item_ref::OUTER_REF)); if (select_lex->ref_pointer_array[i]-> check_cols(left_expr->element_index(i)->cols())) DBUG_RETURN(RES_ERROR); From 26ed736a92ed8e44165f05fa42b497a45986d6b6 Mon Sep 17 00:00:00 2001 From: "istruewing@stella.local" <> Date: Fri, 14 Mar 2008 20:51:32 +0100 Subject: [PATCH 096/139] Post-merge fix --- mysql-test/r/type_set.result | 1 + mysql-test/t/type_set.test | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/type_set.result b/mysql-test/r/type_set.result index 9829d4951c9..4722db1432f 100644 --- a/mysql-test/r/type_set.result +++ b/mysql-test/r/type_set.result @@ -93,3 +93,4 @@ c 1,2,3 64 DROP TABLE t1; +End of 5.0 tests diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test index c7f8c59de28..e98555e137b 100644 --- a/mysql-test/t/type_set.test +++ b/mysql-test/t/type_set.test @@ -75,4 +75,4 @@ INSERT INTO t1 VALUES(9223372036854775808); SELECT * FROM t1; DROP TABLE t1; ---# echo End of 5.0 tests +--echo End of 5.0 tests From f23e3fd04c98c4df25e39e946193651e1f1c0f11 Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Fri, 14 Mar 2008 17:40:12 -0300 Subject: [PATCH 097/139] Bug#35103 mysql_client_test::test_bug29948 causes sporadic failures The problem was that the COM_STMT_SEND_LONG_DATA was sending a response packet if the prepared statement wasn't found in the server (due to reconnection). The commands COM_STMT_SEND_LONG_DATA and COM_STMT_CLOSE should not send any packets, even error packets should not be sent since they are not expected by the client API. The solution is to clear generated during the execution of the aforementioned commands and to skip resend of prepared statement commands. Another fix is that if the connection breaks during the send of prepared statement command, the command is not sent again since the prepared statement is no longer in the server. --- libmysql/libmysql.c | 17 ++++++--- sql-common/client.c | 10 +++-- sql/sql_prepare.cc | 16 +++++--- tests/mysql_client_test.c | 79 +-------------------------------------- 4 files changed, 30 insertions(+), 92 deletions(-) diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 4afc3ec5925..b4fc40bc78a 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -2456,7 +2456,7 @@ static my_bool execute(MYSQL_STMT *stmt, char *packet, ulong length) int4store(buff+5, 1); /* iteration count */ res= test(cli_advanced_command(mysql, COM_STMT_EXECUTE, buff, sizeof(buff), - packet, length, 1, NULL) || + packet, length, 1, stmt) || (*mysql->methods->read_query_result)(mysql)); stmt->affected_rows= mysql->affected_rows; stmt->server_status= mysql->server_status; @@ -2673,7 +2673,7 @@ stmt_read_row_from_cursor(MYSQL_STMT *stmt, unsigned char **row) int4store(buff + 4, stmt->prefetch_rows); /* number of rows to fetch */ if ((*mysql->methods->advanced_command)(mysql, COM_STMT_FETCH, buff, sizeof(buff), NullS, 0, - 1, NULL)) + 1, stmt)) { set_stmt_errmsg(stmt, net->last_error, net->last_errno, net->sqlstate); return 1; @@ -3340,7 +3340,7 @@ mysql_stmt_send_long_data(MYSQL_STMT *stmt, uint param_number, */ if ((*mysql->methods->advanced_command)(mysql, COM_STMT_SEND_LONG_DATA, buff, sizeof(buff), data, - length, 1, NULL)) + length, 1, stmt)) { set_stmt_errmsg(stmt, mysql->net.last_error, mysql->net.last_errno, mysql->net.sqlstate); @@ -4737,6 +4737,13 @@ int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt) MYSQL_DATA *result= &stmt->result; DBUG_ENTER("mysql_stmt_store_result"); + if (!mysql) + { + /* mysql can be reset in mysql_close called from mysql_reconnect */ + set_stmt_error(stmt, CR_SERVER_LOST, unknown_sqlstate); + DBUG_RETURN(1); + } + mysql= mysql->last_used_con; if (!stmt->field_count) @@ -4762,7 +4769,7 @@ int STDCALL mysql_stmt_store_result(MYSQL_STMT *stmt) int4store(buff, stmt->stmt_id); int4store(buff + 4, (int)~0); /* number of rows to fetch */ if (cli_advanced_command(mysql, COM_STMT_FETCH, buff, sizeof(buff), - NullS, 0, 1, NULL)) + NullS, 0, 1, stmt)) { set_stmt_errmsg(stmt, net->last_error, net->last_errno, net->sqlstate); DBUG_RETURN(1); @@ -4949,7 +4956,7 @@ static my_bool reset_stmt_handle(MYSQL_STMT *stmt, uint flags) char buff[MYSQL_STMT_HEADER]; /* packet header: 4 bytes for stmt id */ int4store(buff, stmt->stmt_id); if ((*mysql->methods->advanced_command)(mysql, COM_STMT_RESET, buff, - sizeof(buff), 0, 0, 0, NULL)) + sizeof(buff), 0, 0, 0, stmt)) { set_stmt_errmsg(stmt, mysql->net.last_error, mysql->net.last_errno, mysql->net.sqlstate); diff --git a/sql-common/client.c b/sql-common/client.c index 1fc73549520..8b619b5452d 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -665,11 +665,12 @@ my_bool cli_advanced_command(MYSQL *mysql, enum enum_server_command command, const char *header, ulong header_length, const char *arg, ulong arg_length, my_bool skip_check, - MYSQL_STMT *stmt __attribute__((unused))) + MYSQL_STMT *stmt) { NET *net= &mysql->net; my_bool result= 1; init_sigpipe_variables + my_bool stmt_skip= stmt ? stmt->state != MYSQL_STMT_INIT_DONE : FALSE; DBUG_ENTER("cli_advanced_command"); /* Don't give sigpipe errors if the client doesn't want them */ @@ -677,7 +678,7 @@ cli_advanced_command(MYSQL *mysql, enum enum_server_command command, if (mysql->net.vio == 0) { /* Do reconnect if possible */ - if (mysql_reconnect(mysql)) + if (mysql_reconnect(mysql) || stmt_skip) DBUG_RETURN(1); } if (mysql->status != MYSQL_STATUS_READY || @@ -708,7 +709,7 @@ cli_advanced_command(MYSQL *mysql, enum enum_server_command command, goto end; } end_server(mysql); - if (mysql_reconnect(mysql)) + if (mysql_reconnect(mysql) || stmt_skip) goto end; if (net_write_command(net,(uchar) command, header, header_length, arg, arg_length)) @@ -2503,6 +2504,9 @@ my_bool mysql_reconnect(MYSQL *mysql) if (stmt->state != MYSQL_STMT_INIT_DONE) { stmt->mysql= 0; + stmt->last_errno= CR_SERVER_LOST; + strmov(stmt->last_error, ER(CR_SERVER_LOST)); + strmov(stmt->sqlstate, unknown_sqlstate); } else { diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 18cfd8d7dfc..207183f567c 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -2516,7 +2516,7 @@ void mysql_stmt_close(THD *thd, char *packet) DBUG_ENTER("mysql_stmt_close"); if (!(stmt= find_prepared_statement(thd, stmt_id, "mysql_stmt_close"))) - DBUG_VOID_RETURN; + goto out; /* The only way currently a statement can be deallocated when it's @@ -2525,6 +2525,9 @@ void mysql_stmt_close(THD *thd, char *packet) DBUG_ASSERT(! (stmt->flags & (uint) Prepared_statement::IS_IN_USE)); (void) stmt->deallocate(); +out: + /* clear errors, response packet is not expected */ + thd->clear_error(); DBUG_VOID_RETURN; } @@ -2591,10 +2594,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length) #ifndef EMBEDDED_LIBRARY /* Minimal size of long data packet is 6 bytes */ if (packet_length <= MYSQL_LONG_DATA_HEADER) - { - my_error(ER_WRONG_ARGUMENTS, MYF(0), "mysql_stmt_send_long_data"); - DBUG_VOID_RETURN; - } + goto out; #endif stmt_id= uint4korr(packet); @@ -2614,7 +2614,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length) stmt->last_errno= ER_WRONG_ARGUMENTS; sprintf(stmt->last_error, ER(ER_WRONG_ARGUMENTS), "mysql_stmt_send_long_data"); - DBUG_VOID_RETURN; + goto out; } #endif @@ -2630,6 +2630,10 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length) stmt->last_errno= ER_OUTOFMEMORY; sprintf(stmt->last_error, ER(ER_OUTOFMEMORY), 0); } + +out: + /* clear errors, response packet is not expected */ + thd->clear_error(); DBUG_VOID_RETURN; } diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 0deb37d25c3..142fd741443 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -11746,6 +11746,7 @@ static void test_bug5194() rc= mysql_stmt_execute(stmt); check_execute(stmt, rc); + mysql_stmt_reset(stmt); } mysql_stmt_close(stmt); @@ -15942,83 +15943,6 @@ static void test_bug27592() DBUG_VOID_RETURN; } -#if 0 - -static void test_bug29948() -{ - MYSQL *dbc=NULL; - MYSQL_STMT *stmt=NULL; - MYSQL_BIND bind; - - int res=0; - my_bool auto_reconnect=1, error=0, is_null=0; - char kill_buf[20]; - const char *query; - int buf; - unsigned long length, cursor_type; - - dbc = mysql_init(NULL); - DIE_UNLESS(dbc); - - mysql_options(dbc, MYSQL_OPT_RECONNECT, (char*)&auto_reconnect); - if (!mysql_real_connect(dbc, opt_host, opt_user, - opt_password, current_db, opt_port, - opt_unix_socket, - (CLIENT_FOUND_ROWS | CLIENT_MULTI_STATEMENTS | - CLIENT_MULTI_RESULTS))) - { - printf("connection failed: %s (%d)", mysql_error(dbc), - mysql_errno(dbc)); - exit(1); - } - - bzero(&bind, sizeof(bind)); - bind.buffer_type= MYSQL_TYPE_LONG; - bind.buffer= (char *)&buf; - bind.is_null= &is_null; - bind.error= &error; - bind.length= &length; - - res= mysql_query(dbc, "DROP TABLE IF EXISTS t1"); - myquery(res); - res= mysql_query(dbc, "CREATE TABLE t1 (a INT)"); - myquery(res); - res= mysql_query(dbc, "INSERT INTO t1 VALUES(1)"); - myquery(res); - - stmt= mysql_stmt_init(dbc); - check_stmt(stmt); - - cursor_type= CURSOR_TYPE_READ_ONLY; - res= mysql_stmt_attr_set(stmt, STMT_ATTR_CURSOR_TYPE, (void *)&cursor_type); - myquery(res); - - query= "SELECT * from t1 where a=?"; - res= mysql_stmt_prepare(stmt, query, strlen(query)); - myquery(res); - - res= mysql_stmt_bind_param(stmt, &bind); - myquery(res); - - res= mysql_stmt_execute(stmt); - check_execute(stmt, res); - - res= mysql_stmt_bind_result(stmt,&bind); - check_execute(stmt, res); - - sprintf(kill_buf, "kill %ld", dbc->thread_id); - mysql_query(dbc, kill_buf); - - res= mysql_stmt_store_result(stmt); - DIE_UNLESS(res); - - mysql_stmt_free_result(stmt); - mysql_stmt_close(stmt); - mysql_query(dbc, "DROP TABLE t1"); - mysql_close(dbc); -} - -#endif /** Bug#29306 Truncated data in MS Access with decimal (3,1) columns in a VIEW @@ -16546,7 +16470,6 @@ static struct my_tests_st my_tests[]= { { "test_bug28505", test_bug28505 }, { "test_bug28934", test_bug28934 }, { "test_bug27592", test_bug27592 }, - /* { "test_bug29948", test_bug29948 }, Bug#35103 */ { "test_bug29306", test_bug29306 }, { "test_bug31669", test_bug31669 }, { "test_bug32265", test_bug32265 }, From 44fe22e727c41759474a8724129e1d80e9bbd3bb Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Mon, 17 Mar 2008 11:16:37 -0300 Subject: [PATCH 098/139] Post-merge fix for Bug 35103. --- sql/sql_prepare.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 207183f567c..b00606aba4a 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -2602,7 +2602,7 @@ void mysql_stmt_get_longdata(THD *thd, char *packet, ulong packet_length) if (!(stmt=find_prepared_statement(thd, stmt_id, "mysql_stmt_send_long_data"))) - DBUG_VOID_RETURN; + goto out; param_number= uint2korr(packet); packet+= 2; From 18dab9d7d8fc186ff2f5e02e3b609ed37fe6e8b0 Mon Sep 17 00:00:00 2001 From: "aelkin/andrei@mysql1000.(none)" <> Date: Mon, 17 Mar 2008 20:19:04 +0200 Subject: [PATCH 099/139] Bug #18199 PURGE BINARY LOGS fails silently with missing logs; Bug #18453 Warning/error message if there is a mismatch between ... There were three problems: 1. the reported lack of warnings for the BEFORE syntax of PURGE; 2. the similar lack of warnings for the TO syntax; 3. incompatible behaviour between the two in that the latter blanked out regardlessly of presence or lack the actual file corresponding to an index record; the former version gave up at the first mismatch. fixed with deploying the warning's generation and synronizing logics of purge_logs() and purge_logs_before_date(). my_stat() is called in either of two branches of purge_logs() (responsible for the TO syntax of PURGE) similarly to how it has behaved in the BEFORE syntax. If there is no actual binlog file, my_stat returns NULL and my_delete is not invoked. A critical error is reported to the user if a file from the index could not be retrieved info about or deleted with a system error code different than ENOENT. --- mysql-test/include/show_binary_logs.inc | 3 + mysql-test/r/binlog_index.result | 39 ++++++ mysql-test/t/binlog_index.test | 69 +++++++++++ sql/log.cc | 153 ++++++++++++++++++++---- sql/share/errmsg.txt | 2 + 5 files changed, 240 insertions(+), 26 deletions(-) create mode 100644 mysql-test/include/show_binary_logs.inc create mode 100644 mysql-test/r/binlog_index.result create mode 100644 mysql-test/t/binlog_index.test diff --git a/mysql-test/include/show_binary_logs.inc b/mysql-test/include/show_binary_logs.inc new file mode 100644 index 00000000000..43a9d5d2eed --- /dev/null +++ b/mysql-test/include/show_binary_logs.inc @@ -0,0 +1,3 @@ +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +--replace_column 2 # +show binary logs; diff --git a/mysql-test/r/binlog_index.result b/mysql-test/r/binlog_index.result new file mode 100644 index 00000000000..9c22a33435a --- /dev/null +++ b/mysql-test/r/binlog_index.result @@ -0,0 +1,39 @@ +flush logs; +flush logs; +flush logs; +show binary logs; +Log_name File_size +master-bin.000001 # +master-bin.000002 # +master-bin.000003 # +master-bin.000004 # +purge binary logs TO 'master-bin.000004'; +Warnings: +Warning 1476 Being purged log MYSQLTEST_VARDIR/log/master-bin.000001 was not found +*** must show a list starting from the 'TO' argument of PURGE *** +show binary logs; +Log_name File_size +master-bin.000004 # +reset master; +flush logs; +flush logs; +flush logs; +*** must be a warning master-bin.000001 was not found *** +Warnings: +Warning 1476 Being purged log MYSQLTEST_VARDIR/log/master-bin.000001 was not found +*** must show one record, of the active binlog, left in the index file after PURGE *** +show binary logs; +Log_name File_size +master-bin.000004 # +reset master; +flush logs; +flush logs; +flush logs; +purge binary logs TO 'master-bin.000002'; +ERROR HY000: Fatal error during log purge +show warnings; +Level Code Message +Error 1377 a problem with deleting MYSQLTEST_VARDIR/log/master-bin.000001; consider examining correspondence of your binlog index file to the actual binlog files +Error 1377 Fatal error during log purge +reset master; +End of tests diff --git a/mysql-test/t/binlog_index.test b/mysql-test/t/binlog_index.test new file mode 100644 index 00000000000..1e44a9b02e2 --- /dev/null +++ b/mysql-test/t/binlog_index.test @@ -0,0 +1,69 @@ +# +# testing of purging of binary log files bug#18199/Bug#18453 +# +source include/have_log_bin.inc; +source include/not_embedded.inc; + +# +# testing purge binary logs TO +# + +flush logs; +flush logs; +flush logs; + +source include/show_binary_logs.inc; + +remove_file $MYSQLTEST_VARDIR/log/master-bin.000001; + +# there must be a warning with file names +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +purge binary logs TO 'master-bin.000004'; + +--echo *** must show a list starting from the 'TO' argument of PURGE *** +source include/show_binary_logs.inc; + +# +# testing purge binary logs BEFORE +# + +reset master; + +flush logs; +flush logs; +flush logs; +remove_file $MYSQLTEST_VARDIR/log/master-bin.000001; + +--echo *** must be a warning master-bin.000001 was not found *** +let $date=`select NOW() + INTERVAL 1 MINUTE`; +--disable_query_log +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval purge binary logs BEFORE '$date'; +--enable_query_log + +--echo *** must show one record, of the active binlog, left in the index file after PURGE *** +source include/show_binary_logs.inc; + +# +# testing a fatal error +# Turning a binlog file into a directory must be a portable setup +# + +reset master; + +flush logs; +flush logs; +flush logs; + +remove_file $MYSQLTEST_VARDIR/log/master-bin.000001; +mkdir $MYSQLTEST_VARDIR/log/master-bin.000001; + +--error ER_BINLOG_PURGE_FATAL_ERR +purge binary logs TO 'master-bin.000002'; +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +show warnings; +rmdir $MYSQLTEST_VARDIR/log/master-bin.000001; +--disable_warnings +reset master; +--enable_warnings +--echo End of tests diff --git a/sql/log.cc b/sql/log.cc index 0376facb473..1924821c91c 100644 --- a/sql/log.cc +++ b/sql/log.cc @@ -1180,6 +1180,8 @@ int MYSQL_LOG::update_log_index(LOG_INFO* log_info, bool need_update_threads) RETURN VALUES 0 ok LOG_INFO_EOF to_log not found + LOG_INFO_FATAL if any other than ENOENT error from + my_stat() or my_delete() */ int MYSQL_LOG::purge_logs(const char *to_log, @@ -1208,33 +1210,75 @@ int MYSQL_LOG::purge_logs(const char *to_log, while ((strcmp(to_log,log_info.log_file_name) || (exit_loop=included)) && !log_in_use(log_info.log_file_name)) { - ulong file_size= 0; - if (decrease_log_space) //stat the file we want to delete + MY_STAT s; + if (!my_stat(log_info.log_file_name, &s, MYF(0))) { - MY_STAT s; - - /* - If we could not stat, we can't know the amount - of space that deletion will free. In most cases, - deletion won't work either, so it's not a problem. - */ - if (my_stat(log_info.log_file_name,&s,MYF(0))) - file_size= s.st_size; - else - sql_print_information("Failed to execute my_stat on file '%s'", + if (my_errno == ENOENT) + { + /* + It's not fatal if we can't stat a log file that does not exist; + If we could not stat, we won't delete. + */ + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_LOG_PURGE_NO_FILE, ER(ER_LOG_PURGE_NO_FILE), + log_info.log_file_name); + sql_print_information("Failed to execute my_stat on file '%s'", log_info.log_file_name); + my_errno= 0; + } + else + { + /* + Other than ENOENT are fatal + */ + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_ERROR, + ER_BINLOG_PURGE_FATAL_ERR, + "a problem with getting info on being purged %s; " + "consider examining correspondence " + "of your binlog index file " + "to the actual binlog files", + log_info.log_file_name); + error= LOG_INFO_FATAL; + goto err; + } + } + else + { + DBUG_PRINT("info",("purging %s",log_info.log_file_name)); + if (!my_delete(log_info.log_file_name, MYF(0))) + { + if (decrease_log_space) + *decrease_log_space-= s.st_size; + } + else + { + if (my_errno == ENOENT) + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_LOG_PURGE_NO_FILE, ER(ER_LOG_PURGE_NO_FILE), + log_info.log_file_name); + sql_print_information("Failed to delete file '%s'", + log_info.log_file_name); + my_errno= 0; + } + else + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_ERROR, + ER_BINLOG_PURGE_FATAL_ERR, + "a problem with deleting %s; " + "consider examining correspondence " + "of your binlog index file " + "to the actual binlog files", + log_info.log_file_name); + error= LOG_INFO_FATAL; + goto err; + } + } } - /* - It's not fatal if we can't delete a log file ; - if we could delete it, take its size into account - */ - DBUG_PRINT("info",("purging %s",log_info.log_file_name)); - if (!my_delete(log_info.log_file_name, MYF(0)) && decrease_log_space) - *decrease_log_space-= file_size; if (find_next_log(&log_info, 0) || exit_loop) break; } - + /* If we get killed -9 here, the sysadmin would have to edit the log index file after restart - otherwise, this should be safe @@ -1263,6 +1307,8 @@ err: RETURN VALUES 0 ok LOG_INFO_PURGE_NO_ROTATE Binary file that can't be rotated + LOG_INFO_FATAL if any other than ENOENT error from + my_stat() or my_delete() */ int MYSQL_LOG::purge_logs_before_date(time_t purge_time) @@ -1286,11 +1332,66 @@ int MYSQL_LOG::purge_logs_before_date(time_t purge_time) while (strcmp(log_file_name, log_info.log_file_name) && !log_in_use(log_info.log_file_name)) { - /* It's not fatal even if we can't delete a log file */ - if (!my_stat(log_info.log_file_name, &stat_area, MYF(0)) || - stat_area.st_mtime >= purge_time) - break; - my_delete(log_info.log_file_name, MYF(0)); + if (!my_stat(log_info.log_file_name, &stat_area, MYF(0))) + { + if (my_errno == ENOENT) + { + /* + It's not fatal if we can't stat a log file that does not exist. + */ + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_LOG_PURGE_NO_FILE, ER(ER_LOG_PURGE_NO_FILE), + log_info.log_file_name); + sql_print_information("Failed to execute my_stat on file '%s'", + log_info.log_file_name); + my_errno= 0; + } + else + { + /* + Other than ENOENT are fatal + */ + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_ERROR, + ER_BINLOG_PURGE_FATAL_ERR, + "a problem with getting info on being purged %s; " + "consider examining correspondence " + "of your binlog index file " + "to the actual binlog files", + log_info.log_file_name); + error= LOG_INFO_FATAL; + goto err; + } + } + else + { + if (stat_area.st_mtime >= purge_time) + break; + if (my_delete(log_info.log_file_name, MYF(0))) + { + if (my_errno == ENOENT) + { + /* It's not fatal even if we can't delete a log file */ + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_WARN, + ER_LOG_PURGE_NO_FILE, ER(ER_LOG_PURGE_NO_FILE), + log_info.log_file_name); + sql_print_information("Failed to delete file '%s'", + log_info.log_file_name); + my_errno= 0; + } + else + { + push_warning_printf(current_thd, MYSQL_ERROR::WARN_LEVEL_ERROR, + ER_BINLOG_PURGE_FATAL_ERR, + "a problem with deleting %s; " + "consider examining correspondence " + "of your binlog index file " + "to the actual binlog files", + log_info.log_file_name); + error= LOG_INFO_FATAL; + goto err; + } + } + } if (find_next_log(&log_info, 0)) break; } diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 9e6cf462113..516dba1cd08 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5641,3 +5641,5 @@ ER_NAME_BECOMES_EMPTY eng "Name '%-.64s' has become ''" ER_AMBIGUOUS_FIELD_TERM eng "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY" +ER_LOG_PURGE_NO_FILE + eng "Being purged log %s was not found" From 2536f33120e7de849f80a689340c657b1c99a4b9 Mon Sep 17 00:00:00 2001 From: "kent/mysqldev@mysql.com/production.mysql.com" <> Date: Tue, 18 Mar 2008 00:57:57 +0100 Subject: [PATCH 100/139] Raise version number after cloning 4.1.24 --- configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 01b5734a3b0..66825e5282b 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! # remember to also change ndb version below and update version.c in ndb -AM_INIT_AUTOMAKE(mysql, 4.1.24) +AM_INIT_AUTOMAKE(mysql, 4.1.25) AM_CONFIG_HEADER(config.h) PROTOCOL_VERSION=10 @@ -21,7 +21,7 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0 # ndb version NDB_VERSION_MAJOR=4 NDB_VERSION_MINOR=1 -NDB_VERSION_BUILD=24 +NDB_VERSION_BUILD=25 NDB_VERSION_STATUS="" # Set all version vars based on $VERSION. How do we do this more elegant ? From 70ca2ae2873ce1df767561a8817aada68c85c5f4 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/april.(none)" <> Date: Tue, 18 Mar 2008 16:38:12 +0400 Subject: [PATCH 101/139] Make gcov happy. --- sql/log_event.cc | 2 +- sql/repl_failsafe.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/log_event.cc b/sql/log_event.cc index 8e14a873fc6..05dccd782ad 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -406,7 +406,7 @@ Log_event::Log_event(const char* buf, binlog, so which will cause problems if the user uses this value in CHANGE MASTER). */ - log_pos+= data_written; + log_pos+= data_written; /* purecov: inspected */ } DBUG_PRINT("info", ("log_pos: %lu", (ulong) log_pos)); diff --git a/sql/repl_failsafe.cc b/sql/repl_failsafe.cc index f1826678c9f..7f98dd2d64a 100644 --- a/sql/repl_failsafe.cc +++ b/sql/repl_failsafe.cc @@ -191,7 +191,7 @@ int register_slave(THD* thd, uchar* packet, uint packet_length) err: my_free((gptr) si, MYF(MY_WME)); - my_message(ER_UNKNOWN_ERROR, errmsg, MYF(0)); + my_message(ER_UNKNOWN_ERROR, errmsg, MYF(0)); /* purecov: inspected */ err2: return 1; } From 635b44f19b1e7f521c2d37c25b7d914f6ef9dd29 Mon Sep 17 00:00:00 2001 From: "holyfoot/hf@mysql.com/hfmain.(none)" <> Date: Wed, 19 Mar 2008 15:51:22 +0400 Subject: [PATCH 102/139] Bug #33334 mysqltest_embedded crashes when disconnecting before reap. Before breaking the connection we have to check that there's no query executing at the moment. Otherwise it can lead to crash in embedded server. --- client/mysqltest.c | 34 +++++++++++++++++++++++++--------- mysql-test/r/flush.result | 1 + mysql-test/t/flush.test | 9 +++++++++ 3 files changed, 35 insertions(+), 9 deletions(-) diff --git a/client/mysqltest.c b/client/mysqltest.c index 88575c26bc6..b028794295c 100644 --- a/client/mysqltest.c +++ b/client/mysqltest.c @@ -542,6 +542,17 @@ static int do_send_query(struct st_connection *cn, const char *q, int q_len, return 0; } +static void wait_query_thread_end(struct st_connection *con) +{ + if (!con->query_done) + { + pthread_mutex_lock(&con->mutex); + while (!con->query_done) + pthread_cond_wait(&con->cond, &con->mutex); + pthread_mutex_unlock(&con->mutex); + } +} + #else /*EMBEDDED_LIBRARY*/ #define do_send_query(cn,q,q_len,flags) mysql_send_query(&cn->mysql, q, q_len) @@ -3939,7 +3950,14 @@ void do_close_connection(struct st_command *command) con->mysql.net.vio = 0; } } -#endif +#else + /* + As query could be still executed in a separate theread + we need to check if the query's thread was finished and probably wait + (embedded-server specific) + */ + wait_query_thread_end(con); +#endif /*EMBEDDED_LIBRARY*/ if (con->stmt) mysql_stmt_close(con->stmt); con->stmt= 0; @@ -4229,6 +4247,9 @@ void do_connect(struct st_command *command) (int) (sizeof(connections)/sizeof(struct st_connection))); } +#ifdef EMBEDDED_LIBRARY + con_slot->query_done= 1; +#endif if (!mysql_init(&con_slot->mysql)) die("Failed on mysql_init()"); if (opt_compress || con_compress) @@ -5716,16 +5737,11 @@ void run_query_normal(struct st_connection *cn, struct st_command *command, } #ifdef EMBEDDED_LIBRARY /* - Here we handle 'reap' command, so we need to check if the - query's thread was finished and probably wait + Here we handle 'reap' command, so we need to check if the + query's thread was finished and probably wait */ else if (flags & QUERY_REAP_FLAG) - { - pthread_mutex_lock(&cn->mutex); - while (!cn->query_done) - pthread_cond_wait(&cn->cond, &cn->mutex); - pthread_mutex_unlock(&cn->mutex); - } + wait_query_thread_end(cn); #endif /*EMBEDDED_LIBRARY*/ if (!(flags & QUERY_REAP_FLAG)) DBUG_VOID_RETURN; diff --git a/mysql-test/r/flush.result b/mysql-test/r/flush.result index ce64e09c1d3..778f138f29d 100644 --- a/mysql-test/r/flush.result +++ b/mysql-test/r/flush.result @@ -72,3 +72,4 @@ flush tables with read lock; unlock tables; drop table t1, t2; set session low_priority_updates=default; +select benchmark(200, (select sin(1))) > 1000; diff --git a/mysql-test/t/flush.test b/mysql-test/t/flush.test index 72efa8a2ee6..4c6d4265600 100644 --- a/mysql-test/t/flush.test +++ b/mysql-test/t/flush.test @@ -164,4 +164,13 @@ drop table t1, t2; set session low_priority_updates=default; +# +# Bug #33334 mysqltest_embedded crashes when disconnecting before reap +# + +connect (con1,localhost,root,,); +send select benchmark(200, (select sin(1))) > 1000; +disconnect con1; +connection default; + # End of 5.0 tests From 86db2a0cd5e2d3c3306d7f7ee9b5216c52fdd0a9 Mon Sep 17 00:00:00 2001 From: "mhansson/martin@riffraff.(none)" <> Date: Wed, 19 Mar 2008 14:32:28 +0100 Subject: [PATCH 103/139] Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY When swapping out heap I_S tables to disk, this is done after plan refinement. Thus, READ_RECORD::file will still point to the (deleted) heap handler at start of execution. This causes segmentation fault if join buffering is used and the query is a star query where the result is found to be empty before accessing some table. In this case that table has not been initialized (i.e. had its READ_RECORD re-initialized) before the cleanup routine tries to close the handler. Fixed by updating READ_RECORD::file when changing handler. --- mysql-test/r/information_schema.result | 10 ++++++++++ mysql-test/t/information_schema.test | 21 +++++++++++++++++++++ sql/sql_show.cc | 2 ++ 3 files changed, 33 insertions(+) diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index 80f85aee429..2803c5af729 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1422,3 +1422,13 @@ show fields from information_schema.table_names; ERROR 42S02: Unknown table 'table_names' in information_schema show keys from information_schema.table_names; ERROR 42S02: Unknown table 'table_names' in information_schema +USE information_schema; +SET max_heap_table_size = 16384; +CREATE TABLE test.t1( a INT ); +SELECT * +FROM tables ta +JOIN collations co ON ( co.collation_name = ta.table_catalog ) +JOIN character_sets cs ON ( cs.character_set_name = ta.table_catalog ); +TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN +DROP TABLE test.t1; +SET max_heap_table_size = DEFAULT; diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index 3d3310e389e..09005a4b145 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -1118,3 +1118,24 @@ show fields from information_schema.table_names; --error 1109 show keys from information_schema.table_names; +# +# Bug#34529: Crash on complex Falcon I_S select after ALTER .. PARTITION BY +# +USE information_schema; +SET max_heap_table_size = 16384; + +CREATE TABLE test.t1( a INT ); + +# What we need to create here is a bit of a corner case: +# We need a star query with information_schema tables, where the first +# branch of the star join produces zero rows, so that reading of the +# second branch never happens. At the same time we have to make sure +# that data for at least the last table is swapped from MEMORY/HEAP to +# MyISAM. This and only this triggers the bug. +SELECT * +FROM tables ta +JOIN collations co ON ( co.collation_name = ta.table_catalog ) +JOIN character_sets cs ON ( cs.character_set_name = ta.table_catalog ); + +DROP TABLE test.t1; +SET max_heap_table_size = DEFAULT; diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 36d154181f8..a80319785bd 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -4073,9 +4073,11 @@ bool get_schema_tables_result(JOIN *join, { result= 1; join->error= 1; + tab->read_record.file= table_list->table->file; table_list->schema_table_state= executed_place; break; } + tab->read_record.file= table_list->table->file; table_list->schema_table_state= executed_place; } } From b581227f89883da5185c38e364032dee1b5f4c04 Mon Sep 17 00:00:00 2001 From: "aelkin/andrei@mysql1000.(none)" <> Date: Wed, 19 Mar 2008 18:44:50 +0200 Subject: [PATCH 104/139] Bug #35178 INSERT_ID not written to binary log for inserts against BLACKHOLE backed tables binlogging of insert into a autoincrement blackhole table ignored an explicit set insert_id. Fixed with refining of the blackhole's insert method to call update_auto_increment() that prepares binlogging the insert query with the preceeding set insert_id. Note, as the engine does not store any actual data one has to explicitly provide to the server with the value of the autoincrement column via set insert_id. Otherwise binlogging will happend with the default set insert_id=1. --- mysql-test/r/blackhole.result | 17 +++++++++++++++++ mysql-test/t/blackhole.test | 26 ++++++++++++++++++++++++-- sql/ha_blackhole.cc | 2 +- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/blackhole.result b/mysql-test/r/blackhole.result index a4b780f9db5..51c19c29b0f 100644 --- a/mysql-test/r/blackhole.result +++ b/mysql-test/r/blackhole.result @@ -138,3 +138,20 @@ ALTER TABLE t1 DROP INDEX a; ALTER TABLE t1 ADD PRIMARY KEY(a); DELETE FROM t1 WHERE a=10; DROP TABLE t1; +reset master; +create table t1 (a int auto_increment, primary key (a)) engine=blackhole; +insert into t1 values (11), (NULL), (NULL), (NULL); +set insert_id= 3; +insert into t1 values (NULL), (33), (NULL); +set insert_id= 5; +insert into t1 values (55), (NULL); +show binlog events from ; +Log_name Pos Event_type Server_id End_log_pos Info +master-bin.000001 # Query 1 # use `test`; create table t1 (a int auto_increment, primary key (a)) engine=blackhole +master-bin.000001 # Intvar 1 # INSERT_ID=1 +master-bin.000001 # Query 1 # use `test`; insert into t1 values (11), (NULL), (NULL), (NULL) +master-bin.000001 # Intvar 1 # INSERT_ID=3 +master-bin.000001 # Query 1 # use `test`; insert into t1 values (NULL), (33), (NULL) +master-bin.000001 # Intvar 1 # INSERT_ID=5 +master-bin.000001 # Query 1 # use `test`; insert into t1 values (55), (NULL) +drop table t1; diff --git a/mysql-test/t/blackhole.test b/mysql-test/t/blackhole.test index ba77b7b7f6a..cb8010d7967 100644 --- a/mysql-test/t/blackhole.test +++ b/mysql-test/t/blackhole.test @@ -142,7 +142,6 @@ CREATE TABLE t1(a INT) ENGINE=BLACKHOLE; INSERT DELAYED INTO t1 VALUES(1); DROP TABLE t1; -# End of 4.1 tests # #Bug#19717: DELETE Query Error on BLACKHOLE when using WHERE on column with UNIQUE INDEX @@ -159,4 +158,27 @@ ALTER TABLE t1 ADD PRIMARY KEY(a); DELETE FROM t1 WHERE a=10; DROP TABLE t1; -# End of 5.0 tests +# +# Bug#35178 INSERT_ID not written to binary log for inserts against BLACKHOLE backed tables +# +# +# the test checks that explicitly prescribed with set insert_id= value +# preceeds the following autoincrement insert in a blachhole +# + +reset master; +create table t1 (a int auto_increment, primary key (a)) engine=blackhole; + +# not insert_id prescribed insert binlogs with the default set insert_id 1 +insert into t1 values (11), (NULL), (NULL), (NULL); +set insert_id= 3; +insert into t1 values (NULL), (33), (NULL); +set insert_id= 5; +insert into t1 values (55), (NULL); +source include/show_binlog_events2.inc; + +# cleanup +drop table t1; + + +# End of tests diff --git a/sql/ha_blackhole.cc b/sql/ha_blackhole.cc index e477686d18e..01ede3d3bd2 100644 --- a/sql/ha_blackhole.cc +++ b/sql/ha_blackhole.cc @@ -115,7 +115,7 @@ const char *ha_blackhole::index_type(uint key_number) int ha_blackhole::write_row(byte * buf) { DBUG_ENTER("ha_blackhole::write_row"); - DBUG_RETURN(0); + DBUG_RETURN(table->next_number_field ? update_auto_increment() : 0); } int ha_blackhole::rnd_init(bool scan) From 3958a755b9718c0cd3119f27055b225720a56f9c Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Wed, 19 Mar 2008 15:01:03 -0300 Subject: [PATCH 105/139] Bug#30960 processlist state '*** DEAD ***' on recent 5.0.48 windows builds The problem is that unimplemented WIN32 version of pthread_kill is returning ESRCH no matter the arguments, causing calls to mysqld_list_processes to set the procinfo to dead because pthread_kill returns non zero. The dead procinfo would show up on a second invocation of show processlist. --- include/my_pthread.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/include/my_pthread.h b/include/my_pthread.h index 13b7cf93d6f..51202d6665e 100644 --- a/include/my_pthread.h +++ b/include/my_pthread.h @@ -181,7 +181,7 @@ extern int pthread_mutex_destroy (pthread_mutex_t *); #define pthread_mutex_unlock(A) LeaveCriticalSection(A) #define pthread_mutex_destroy(A) DeleteCriticalSection(A) #define my_pthread_setprio(A,B) SetThreadPriority(GetCurrentThread(), (B)) -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #endif /* OS2 */ /* Dummy defines for easier code */ @@ -445,14 +445,14 @@ struct tm *gmtime_r(const time_t *clock, struct tm *res); #define pthread_attr_setdetachstate(A,B) pthread_dummy(0) #define pthread_create(A,B,C,D) pthread_create((A),*(B),(C),(D)) #define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #undef pthread_detach_this_thread #define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } #endif #ifdef HAVE_DARWIN5_THREADS #define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #define pthread_condattr_init(A) pthread_dummy(0) #define pthread_condattr_destroy(A) pthread_dummy(0) #undef pthread_detach_this_thread @@ -472,7 +472,7 @@ struct tm *gmtime_r(const time_t *clock, struct tm *res); #ifndef pthread_sigmask #define pthread_sigmask(A,B,C) sigprocmask((A),(B),(C)) #endif -#define pthread_kill(A,B) pthread_dummy(ESRCH) +#define pthread_kill(A,B) pthread_dummy((A) ? 0 : ESRCH) #undef pthread_detach_this_thread #define pthread_detach_this_thread() { pthread_t tmp=pthread_self() ; pthread_detach(&tmp); } #elif !defined(__NETWARE__) /* HAVE_PTHREAD_ATTR_CREATE && !HAVE_SIGWAIT */ From d4e7bf87095f7be5405f3712f0088393bbde44df Mon Sep 17 00:00:00 2001 From: "joerg@trift2." <> Date: Wed, 19 Mar 2008 19:13:28 +0100 Subject: [PATCH 106/139] support-files/mysql.spec.sh : Add the man pages for "ndbd" and "ndb_mgmd". --- support-files/mysql.spec.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index b28af51d43e..49cb86d5bd5 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -642,10 +642,12 @@ fi %files ndb-storage %defattr(-,root,root,0755) %attr(755, root, root) %{_sbindir}/ndbd +%doc %attr(644, root, man) %{_mandir}/man8/ndbd.8* %files ndb-management %defattr(-,root,root,0755) %attr(755, root, root) %{_sbindir}/ndb_mgmd +%doc %attr(644, root, man) %{_mandir}/man8/ndb_mgmd.8* %files ndb-tools %defattr(-,root,root,0755) @@ -737,6 +739,10 @@ fi # itself - note that they must be ordered by date (important when # merging BK trees) %changelog +* Wed Mar 19 2008 Joerg Bruehe + +- Add the man pages for "ndbd" and "ndb_mgmd". + * Fri Mar 02 2007 Joerg Bruehe - Add several man pages for NDB which are now created. From 955983a1543f50000588f314844f4a53f9f503ea Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Wed, 19 Mar 2008 18:13:56 -0400 Subject: [PATCH 107/139] Bug#30378: mysql.server needs to skip wait_for_pid() when mysqld \ isn't running Pass the process id of the manager as a parameter to "wait_for_pid" and if the manager isn't running, then do not continue to wait. Also, capture the error message of our process-existence test, "kill -0", as we expect errors and shouldn't pass them to the user. Additionally, be a bit more descriptive of what the problem is. --- support-files/mysql.server.sh | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh index 0a87b04c992..be8a8bd741e 100644 --- a/support-files/mysql.server.sh +++ b/support-files/mysql.server.sh @@ -150,22 +150,45 @@ parse_manager_arguments() { } wait_for_pid () { + verb="$1" + manager_pid="$2" # process ID of the program operating on the pid-file i=0 + avoid_race_condition="by checking again" while test $i -ne $service_startup_timeout ; do sleep 1 - case "$1" in + + case "$verb" in 'created') + # wait for a PID-file to pop into existence. test -s $pid_file && i='' && break - kill -0 $2 || break # if the program goes away, stop waiting ;; 'removed') + # wait for this PID-file to disappear test ! -s $pid_file && i='' && break ;; *) - echo "wait_for_pid () usage: wait_for_pid created|removed" + echo "wait_for_pid () usage: wait_for_pid created|removed manager_pid" exit 1 ;; esac + + # if manager isn't running, then pid-file will never be updated + if test -n "$manager_pid"; then + if kill -0 "$manager_pid" 2>/dev/null; then + : # the manager still runs + else + # The manager may have exited between the last pid-file check and now. + if test -n "$avoid_race_condition"; then + avoid_race_condition="" + continue # Check again. + fi + + # there's nothing that will affect the file. + log_failure_msg "Manager of pid-file quit without updating file." + return 1 # not waiting any more. + fi + fi + echo $echo_n ".$echo_c" i=`expr $i + 1` done @@ -335,7 +358,7 @@ case "$mode" in echo $echo_n "Shutting down MySQL" kill $mysqlmanager_pid # mysqlmanager should remove the pid_file when it exits, so wait for it. - wait_for_pid removed; return_value=$? + wait_for_pid removed "$mysqlmanager_pid"; return_value=$? # delete lock for RedHat / SuSE if test -f $lock_dir From 897f772c14befda8c4b052d6d73b8be710a9e30c Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Wed, 19 Mar 2008 18:36:41 -0400 Subject: [PATCH 108/139] Suggestion of Tim. Avoid unnecessary sleep. --- support-files/mysql.server.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh index be8a8bd741e..ac7a9c25ce6 100644 --- a/support-files/mysql.server.sh +++ b/support-files/mysql.server.sh @@ -155,7 +155,6 @@ wait_for_pid () { i=0 avoid_race_condition="by checking again" while test $i -ne $service_startup_timeout ; do - sleep 1 case "$verb" in 'created') @@ -191,6 +190,7 @@ wait_for_pid () { echo $echo_n ".$echo_c" i=`expr $i + 1` + sleep 1 done if test -z "$i" ; then From 2b552aae5024d4ac97b9bee50b4625edc5943897 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/june.mysql.com" <> Date: Thu, 20 Mar 2008 19:07:17 +0400 Subject: [PATCH 109/139] BUG#34788 - malformed federated connection url is not handled correctly - crashes server ! Creating federated table with connect string containing empty (zero-length) host name and port is evaluated as 0 (port is incorrect, omitted or 0) crashes server. This happens because federated calls strcmp() with NULL pointer. Fixed by avoiding strcmp() call if hostname is set to NULL. --- mysql-test/r/federated.result | 2 ++ mysql-test/t/federated.test | 7 +++++++ sql/ha_federated.cc | 9 ++++++++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/federated.result b/mysql-test/r/federated.result index 3a934e7fe3c..685e4d0c335 100644 --- a/mysql-test/r/federated.result +++ b/mysql-test/r/federated.result @@ -2069,6 +2069,8 @@ a b 1 1 DROP TABLE t1; DROP TABLE t1; +CREATE TABLE t1 (a INT) ENGINE=federated CONNECTION='mysql://@:://'; +DROP TABLE t1; DROP TABLE IF EXISTS federated.t1; DROP DATABASE IF EXISTS federated; DROP TABLE IF EXISTS federated.t1; diff --git a/mysql-test/t/federated.test b/mysql-test/t/federated.test index 934db5cd68b..f33dfa3a1b8 100644 --- a/mysql-test/t/federated.test +++ b/mysql-test/t/federated.test @@ -1738,4 +1738,11 @@ DROP TABLE t1; connection slave; DROP TABLE t1; +# +# BUG#34788 - malformed federated connection url is not handled correctly - +# crashes server ! +# +CREATE TABLE t1 (a INT) ENGINE=federated CONNECTION='mysql://@:://'; +DROP TABLE t1; + source include/federated_cleanup.inc; diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index c0743bd6c9a..a5e4714c53a 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -643,12 +643,19 @@ static int parse_url(FEDERATED_SHARE *share, TABLE *table, if ((strchr(share->table_name, '/'))) goto error; + /* + If hostname is omitted, we set it to NULL. According to + mysql_real_connect() manual: + The value of host may be either a hostname or an IP address. + If host is NULL or the string "localhost", a connection to the + local host is assumed. + */ if (share->hostname[0] == '\0') share->hostname= NULL; if (!share->port) { - if (strcmp(share->hostname, my_localhost) == 0) + if (!share->hostname || strcmp(share->hostname, my_localhost) == 0) share->socket= my_strdup(MYSQL_UNIX_ADDR, MYF(0)); else share->port= MYSQL_PORT; From ff0aac178d8092cc78f77d332b1a68f4100e282c Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@macbook.gmz" <> Date: Fri, 21 Mar 2008 17:23:17 +0200 Subject: [PATCH 110/139] Bug #26461: Intrinsic data type bool (1 byte) redefined to BOOL (4 bytes) The bool data type was redefined to BOOL (4 bytes on windows). Removed the #define and fixed some of the warnings that were uncovered by this. Note that the fix also disables 2 warnings : 4800 : 'type' : forcing value to bool 'true' or 'false' (performance warning) 4805: 'operation' : unsafe mix of type 'type' and type 'type' in operation These warnings will be handled in a separate bug, as they are performance related or bogus. Fixed to int the return type of functions that return more than 2 distinct values. --- CMakeLists.txt | 4 ++++ include/config-win.h | 4 +--- include/my_global.h | 2 +- sql/handler.h | 2 +- sql/mysql_priv.h | 14 +++++++------- sql/procedure.h | 2 +- sql/sql_acl.cc | 6 +++--- sql/sql_acl.h | 6 +++--- sql/sql_analyse.cc | 2 +- sql/sql_analyse.h | 2 +- sql/sql_base.cc | 2 +- sql/sql_db.cc | 2 +- sql/sql_delete.cc | 4 ++-- sql/sql_load.cc | 2 +- sql/sql_parse.cc | 4 ++-- sql/sql_prepare.cc | 6 +++--- sql/sql_update.cc | 2 +- 17 files changed, 34 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 27b2bf9b70e..77c95e16a76 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,6 +78,10 @@ SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DDBUG_OFF SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DDBUG_OFF") SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -DDBUG_OFF") +#TODO: update the code and remove the disabled warnings +SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4800 /wd4805") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4800 /wd4805") + IF(CMAKE_GENERATOR MATCHES "Visual Studio 8") SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /wd4996") SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /wd4996") diff --git a/include/config-win.h b/include/config-win.h index 45bfeb5ba26..c9c25d44691 100644 --- a/include/config-win.h +++ b/include/config-win.h @@ -157,14 +157,12 @@ typedef uint rf_SetTimer; #define Socket_defined #define my_socket SOCKET -#define bool BOOL #define SIGPIPE SIGINT #define RETQSORTTYPE void #define QSORT_TYPE_IS_VOID #define RETSIGTYPE void #define SOCKET_SIZE_TYPE int #define my_socket_defined -#define bool_defined #define byte_defined #define HUGE_PTR #define STDCALL __stdcall /* Used by libmysql.dll */ @@ -457,4 +455,4 @@ inline double ulonglong2double(ulonglong value) #define HAVE_CHARSET_ujis 1 #define HAVE_CHARSET_utf8 1 #define HAVE_UCA_COLLATIONS 1 - +#define HAVE_BOOL 1 diff --git a/include/my_global.h b/include/my_global.h index 08877300d8a..f0f33a7de8b 100644 --- a/include/my_global.h +++ b/include/my_global.h @@ -980,7 +980,7 @@ typedef int myf; /* Type of MyFlags in my_funcs */ typedef char byte; /* Smallest addressable unit */ #endif typedef char my_bool; /* Small bool */ -#if !defined(bool) && !defined(bool_defined) && (!defined(HAVE_BOOL) || !defined(__cplusplus)) +#if !defined(bool) && (!defined(HAVE_BOOL) || !defined(__cplusplus)) typedef char bool; /* Ordinary boolean values 0 1 */ #endif /* Macros for converting *constants* to the right type */ diff --git a/sql/handler.h b/sql/handler.h index 74c09d2d9ee..aa3377c3868 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -815,7 +815,7 @@ public: { return HA_ADMIN_NOT_IMPLEMENTED; } /* end of the list of admin commands */ - virtual bool check_and_repair(THD *thd) { return HA_ERR_WRONG_COMMAND; } + virtual bool check_and_repair(THD *thd) { return TRUE; } virtual int dump(THD* thd, int fd = -1) { return HA_ERR_WRONG_COMMAND; } virtual int disable_indexes(uint mode) { return HA_ERR_WRONG_COMMAND; } virtual int enable_indexes(uint mode) { return HA_ERR_WRONG_COMMAND; } diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 59ec18e1a3d..0b488900ac5 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -597,8 +597,8 @@ bool check_merge_table_access(THD *thd, char *db, bool check_some_routine_access(THD *thd, const char *db, const char *name, bool is_proc); bool multi_update_precheck(THD *thd, TABLE_LIST *tables); bool multi_delete_precheck(THD *thd, TABLE_LIST *tables); -bool mysql_multi_update_prepare(THD *thd); -bool mysql_multi_delete_prepare(THD *thd); +int mysql_multi_update_prepare(THD *thd); +int mysql_multi_delete_prepare(THD *thd); bool mysql_insert_select_prepare(THD *thd); bool update_precheck(THD *thd, TABLE_LIST *tables); bool delete_precheck(THD *thd, TABLE_LIST *tables); @@ -691,7 +691,7 @@ struct Query_cache_query_flags uint build_table_path(char *buff, size_t bufflen, const char *db, const char *table, const char *ext); -bool mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create, bool silent); +int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create, bool silent); bool mysql_alter_db(THD *thd, const char *db, HA_CREATE_INFO *create); bool mysql_rm_db(THD *thd,char *db,bool if_exists, bool silent); void mysql_binlog_send(THD* thd, char* log_ident, my_off_t pos, ushort flags); @@ -731,7 +731,7 @@ pthread_handler_t handle_one_connection(void *arg); pthread_handler_t handle_bootstrap(void *arg); void end_thread(THD *thd,bool put_in_cache); void flush_thread_cache(); -bool mysql_execute_command(THD *thd); +int mysql_execute_command(THD *thd); bool dispatch_command(enum enum_server_command command, THD *thd, char* packet, uint packet_length); void log_slow_statement(THD *thd); @@ -862,7 +862,7 @@ void prepare_triggers_for_insert_stmt(THD *thd, TABLE *table, enum_duplicates duplic); void mark_fields_used_by_triggers_for_insert_stmt(THD *thd, TABLE *table, enum_duplicates duplic); -bool mysql_prepare_delete(THD *thd, TABLE_LIST *table_list, Item **conds); +int mysql_prepare_delete(THD *thd, TABLE_LIST *table_list, Item **conds); bool mysql_delete(THD *thd, TABLE_LIST *table_list, COND *conds, SQL_LIST *order, ha_rows rows, ulonglong options, bool reset_auto_increment); @@ -1106,7 +1106,7 @@ int init_ftfuncs(THD *thd, SELECT_LEX* select, bool no_order); void wait_for_refresh(THD *thd); int open_tables(THD *thd, TABLE_LIST **tables, uint *counter, uint flags); int simple_open_n_lock_tables(THD *thd,TABLE_LIST *tables); -bool open_and_lock_tables(THD *thd,TABLE_LIST *tables); +int open_and_lock_tables(THD *thd,TABLE_LIST *tables); bool open_normal_and_derived_tables(THD *thd, TABLE_LIST *tables, uint flags); int lock_tables(THD *thd, TABLE_LIST *tables, uint counter, bool *need_reopen); TABLE *open_temporary_table(THD *thd, const char *path, const char *db, @@ -1177,7 +1177,7 @@ inline TABLE_LIST *find_table_in_local_list(TABLE_LIST *table, bool eval_const_cond(COND *cond); /* sql_load.cc */ -bool mysql_load(THD *thd, sql_exchange *ex, TABLE_LIST *table_list, +int mysql_load(THD *thd, sql_exchange *ex, TABLE_LIST *table_list, List &fields_vars, List &set_fields, List &set_values_list, enum enum_duplicates handle_duplicates, bool ignore, diff --git a/sql/procedure.h b/sql/procedure.h index 850d5c74db4..f1fb433a6ee 100644 --- a/sql/procedure.h +++ b/sql/procedure.h @@ -144,7 +144,7 @@ public: virtual int send_row(List &fields)=0; virtual bool change_columns(List &fields)=0; virtual void update_refs(void) {} - virtual bool end_of_records() { return 0; } + virtual int end_of_records() { return 0; } }; Procedure *setup_procedure(THD *thd,ORDER *proc_param,select_result *result, diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index e9504f423ad..e773f754e18 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -1382,7 +1382,7 @@ bool acl_check_host(const char *host, const char *ip) 1 ERROR ; In this case the error is sent to the client. */ -bool check_change_password(THD *thd, const char *host, const char *user, +int check_change_password(THD *thd, const char *host, const char *user, char *new_password, uint new_password_len) { if (!initialized) @@ -2763,7 +2763,7 @@ table_error: TRUE error */ -bool mysql_table_grant(THD *thd, TABLE_LIST *table_list, +int mysql_table_grant(THD *thd, TABLE_LIST *table_list, List &user_list, List &columns, ulong rights, bool revoke_grant) @@ -5805,7 +5805,7 @@ bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name, < 0 Error. Error message not yet sent. */ -bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name, +int sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name, bool is_proc) { Security_context *sctx= thd->security_ctx; diff --git a/sql/sql_acl.h b/sql/sql_acl.h index b2007ccdf47..1efcd2e3b6b 100644 --- a/sql/sql_acl.h +++ b/sql/sql_acl.h @@ -183,13 +183,13 @@ int acl_getroot(THD *thd, USER_RESOURCES *mqh, const char *passwd, bool acl_getroot_no_password(Security_context *sctx, char *user, char *host, char *ip, char *db); bool acl_check_host(const char *host, const char *ip); -bool check_change_password(THD *thd, const char *host, const char *user, +int check_change_password(THD *thd, const char *host, const char *user, char *password, uint password_len); bool change_password(THD *thd, const char *host, const char *user, char *password); bool mysql_grant(THD *thd, const char *db, List &user_list, ulong rights, bool revoke); -bool mysql_table_grant(THD *thd, TABLE_LIST *table, List &user_list, +int mysql_table_grant(THD *thd, TABLE_LIST *table, List &user_list, List &column_list, ulong rights, bool revoke); bool mysql_routine_grant(THD *thd, TABLE_LIST *table, bool is_proc, @@ -225,7 +225,7 @@ void fill_effective_table_privileges(THD *thd, GRANT_INFO *grant, const char *db, const char *table); bool sp_revoke_privileges(THD *thd, const char *sp_db, const char *sp_name, bool is_proc); -bool sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name, +int sp_grant_privileges(THD *thd, const char *sp_db, const char *sp_name, bool is_proc); bool check_routine_level_acl(THD *thd, const char *db, const char *name, bool is_proc); diff --git a/sql/sql_analyse.cc b/sql/sql_analyse.cc index 95a7fb3d34d..2e90d00f8aa 100644 --- a/sql/sql_analyse.cc +++ b/sql/sql_analyse.cc @@ -683,7 +683,7 @@ int analyse::send_row(List &field_list __attribute__((unused))) } // analyse::send_row -bool analyse::end_of_records() +int analyse::end_of_records() { field_info **f = f_info; char buff[MAX_FIELD_WIDTH]; diff --git a/sql/sql_analyse.h b/sql/sql_analyse.h index 21a37209e89..2a4226b2d95 100644 --- a/sql/sql_analyse.h +++ b/sql/sql_analyse.h @@ -350,7 +350,7 @@ public: virtual bool change_columns(List &fields); virtual int send_row(List &fields); virtual void end_group(void) {} - virtual bool end_of_records(void); + virtual int end_of_records(void); friend Procedure *proc_analyse_init(THD *thd, ORDER *param, select_result *result, List &field_list); diff --git a/sql/sql_base.cc b/sql/sql_base.cc index c9f20b3d71b..533b0070fee 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -3046,7 +3046,7 @@ int simple_open_n_lock_tables(THD *thd, TABLE_LIST *tables) The lock will automaticaly be freed by close_thread_tables() */ -bool open_and_lock_tables(THD *thd, TABLE_LIST *tables) +int open_and_lock_tables(THD *thd, TABLE_LIST *tables) { uint counter; bool need_reopen; diff --git a/sql/sql_db.cc b/sql/sql_db.cc index 91b0c02d23b..e25ede1be03 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -449,7 +449,7 @@ bool load_db_opt_by_name(THD *thd, const char *db_name, */ -bool mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info, +int mysql_create_db(THD *thd, char *db, HA_CREATE_INFO *create_info, bool silent) { char path[FN_REFLEN+16]; diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc index a28a39a769d..af895c172ff 100644 --- a/sql/sql_delete.cc +++ b/sql/sql_delete.cc @@ -370,7 +370,7 @@ cleanup: FALSE OK TRUE error */ -bool mysql_prepare_delete(THD *thd, TABLE_LIST *table_list, Item **conds) +int mysql_prepare_delete(THD *thd, TABLE_LIST *table_list, Item **conds) { Item *fake_conds= 0; SELECT_LEX *select_lex= &thd->lex->select_lex; @@ -433,7 +433,7 @@ extern "C" int refpos_order_cmp(void* arg, const void *a,const void *b) TRUE Error */ -bool mysql_multi_delete_prepare(THD *thd) +int mysql_multi_delete_prepare(THD *thd) { LEX *lex= thd->lex; TABLE_LIST *aux_tables= (TABLE_LIST *)lex->auxiliary_table_list.first; diff --git a/sql/sql_load.cc b/sql/sql_load.cc index d687ceff393..4da3c19bb3c 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -110,7 +110,7 @@ static bool write_execute_load_query_log_event(THD *thd, TRUE - error / FALSE - success */ -bool mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, +int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, List &fields_vars, List &set_fields, List &set_values, enum enum_duplicates handle_duplicates, bool ignore, diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc index 8bdbd812529..98e04e45bdd 100644 --- a/sql/sql_parse.cc +++ b/sql/sql_parse.cc @@ -2500,10 +2500,10 @@ static void reset_one_shot_variables(THD *thd) TRUE Error */ -bool +int mysql_execute_command(THD *thd) { - bool res= FALSE; + int res= FALSE; bool need_start_waiting= FALSE; // have protection against global read lock int up_result= 0; LEX *lex= thd->lex; diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 18cfd8d7dfc..220b9a0bcd8 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -1403,7 +1403,7 @@ error: */ static bool select_like_stmt_test(Prepared_statement *stmt, - bool (*specific_prepare)(THD *thd), + int (*specific_prepare)(THD *thd), ulong setup_tables_done_option) { DBUG_ENTER("select_like_stmt_test"); @@ -1441,7 +1441,7 @@ static bool select_like_stmt_test(Prepared_statement *stmt, static bool select_like_stmt_test_with_open_n_lock(Prepared_statement *stmt, TABLE_LIST *tables, - bool (*specific_prepare)(THD *thd), + int (*specific_prepare)(THD *thd), ulong setup_tables_done_option) { DBUG_ENTER("select_like_stmt_test_with_open_n_lock"); @@ -1630,7 +1630,7 @@ error: because mysql_handle_derived uses local tables lists. */ -static bool mysql_insert_select_prepare_tester(THD *thd) +static int mysql_insert_select_prepare_tester(THD *thd) { SELECT_LEX *first_select= &thd->lex->select_lex; TABLE_LIST *second_table= ((TABLE_LIST*)first_select->table_list.first)-> diff --git a/sql/sql_update.cc b/sql/sql_update.cc index 84349a40977..541704cfaf1 100644 --- a/sql/sql_update.cc +++ b/sql/sql_update.cc @@ -716,7 +716,7 @@ static table_map get_table_map(List *items) TRUE Error */ -bool mysql_multi_update_prepare(THD *thd) +int mysql_multi_update_prepare(THD *thd) { LEX *lex= thd->lex; TABLE_LIST *table_list= lex->query_tables; From f064cd84d59c0f9de3dc8842c28227c6a4d75a00 Mon Sep 17 00:00:00 2001 From: "svoj@mysql.com/june.mysql.com" <> Date: Tue, 25 Mar 2008 12:47:57 +0400 Subject: [PATCH 111/139] BUG#35509 - Federated leaks memory when connecting to localhost/default port When creating federated table that points to unspecified host or localhost on unspecified port or port is 0, small memory leak occurs. This happens because we make a copy of unix socket path, which is never freed. With this fix we do not make a copy of unix socket path, instead share->socket points to MYSQL_UNIX_ADDR constant directly. This fix is covered by a test case for BUG34788. Affects 5.0 only. --- mysql-test/t/federated.test | 5 +++++ sql/ha_federated.cc | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/mysql-test/t/federated.test b/mysql-test/t/federated.test index f33dfa3a1b8..9e7548a21ed 100644 --- a/mysql-test/t/federated.test +++ b/mysql-test/t/federated.test @@ -1742,6 +1742,11 @@ DROP TABLE t1; # BUG#34788 - malformed federated connection url is not handled correctly - # crashes server ! # +# also tests +# +# BUG#35509 - Federated leaks memory when connecting to localhost/default +# port +# CREATE TABLE t1 (a INT) ENGINE=federated CONNECTION='mysql://@:://'; DROP TABLE t1; diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index a5e4714c53a..d414dc34f02 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -656,7 +656,7 @@ static int parse_url(FEDERATED_SHARE *share, TABLE *table, if (!share->port) { if (!share->hostname || strcmp(share->hostname, my_localhost) == 0) - share->socket= my_strdup(MYSQL_UNIX_ADDR, MYF(0)); + share->socket= (char*) MYSQL_UNIX_ADDR; else share->port= MYSQL_PORT; } @@ -1342,7 +1342,6 @@ static int free_share(FEDERATED_SHARE *share) { hash_delete(&federated_open_tables, (byte*) share); my_free((gptr) share->scheme, MYF(MY_ALLOW_ZERO_PTR)); - my_free((gptr) share->socket, MYF(MY_ALLOW_ZERO_PTR)); thr_lock_delete(&share->lock); VOID(pthread_mutex_destroy(&share->mutex)); my_free((gptr) share, MYF(0)); From 1eb00401f4e46b555cdbf906cc468d152be563c2 Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Tue, 25 Mar 2008 19:44:27 +0400 Subject: [PATCH 112/139] information_schema.test, information_schema.result: Minor test case cleanup after bug#34529. --- mysql-test/r/information_schema.result | 3 ++- mysql-test/t/information_schema.test | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/mysql-test/r/information_schema.result b/mysql-test/r/information_schema.result index 2803c5af729..d7ff87bd1eb 100644 --- a/mysql-test/r/information_schema.result +++ b/mysql-test/r/information_schema.result @@ -1417,7 +1417,6 @@ select * from `information_schema`.`VIEWS` where `TABLE_SCHEMA` = NULL; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE select * from `information_schema`.`VIEWS` where `TABLE_NAME` = NULL; TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE -End of 5.0 tests. show fields from information_schema.table_names; ERROR 42S02: Unknown table 'table_names' in information_schema show keys from information_schema.table_names; @@ -1432,3 +1431,5 @@ JOIN character_sets cs ON ( cs.character_set_name = ta.table_catalog ); TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN DROP TABLE test.t1; SET max_heap_table_size = DEFAULT; +USE test; +End of 5.0 tests. diff --git a/mysql-test/t/information_schema.test b/mysql-test/t/information_schema.test index 09005a4b145..caf38945cbc 100644 --- a/mysql-test/t/information_schema.test +++ b/mysql-test/t/information_schema.test @@ -1108,8 +1108,6 @@ select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_TABLE` = NULL; select * from `information_schema`.`VIEWS` where `TABLE_SCHEMA` = NULL; select * from `information_schema`.`VIEWS` where `TABLE_NAME` = NULL; ---echo End of 5.0 tests. - # # Bug#30079 A check for "hidden" I_S tables is flawed # @@ -1139,3 +1137,7 @@ JOIN character_sets cs ON ( cs.character_set_name = ta.table_catalog ); DROP TABLE test.t1; SET max_heap_table_size = DEFAULT; +USE test; + +--echo End of 5.0 tests. + From 0a2e401c0a99fad0c62c5c6b308db744d3146d40 Mon Sep 17 00:00:00 2001 From: "malff@lambda.hsd1.co.comcast.net." <> Date: Tue, 25 Mar 2008 11:20:11 -0600 Subject: [PATCH 113/139] Bug#20906 (Multiple assignments in SET in stored routine produce incorrect instructions) This bug can not be reproduced in the current version, adding the test case to the test suite for coverage, no code change. --- mysql-test/r/sp-code.result | 28 ++++++++++++++++++++++++++++ mysql-test/t/sp-code.test | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) diff --git a/mysql-test/r/sp-code.result b/mysql-test/r/sp-code.result index 855cabc25d8..2848306b442 100644 --- a/mysql-test/r/sp-code.result +++ b/mysql-test/r/sp-code.result @@ -842,4 +842,32 @@ Pos Instruction 21 jump 3 drop procedure proc_33618_h; drop procedure proc_33618_c; +drop procedure if exists p_20906_a; +drop procedure if exists p_20906_b; +create procedure p_20906_a() SET @a=@a+1, @b=@b+1; +show procedure code p_20906_a; +Pos Instruction +0 stmt 32 "SET @a=@a+1" +1 stmt 32 "SET @b=@b+1" +set @a=1; +set @b=1; +call p_20906_a(); +select @a, @b; +@a @b +2 2 +create procedure p_20906_b() SET @a=@a+1, @b=@b+1, @c=@c+1; +show procedure code p_20906_b; +Pos Instruction +0 stmt 32 "SET @a=@a+1" +1 stmt 32 "SET @b=@b+1" +2 stmt 32 "SET @c=@c+1" +set @a=1; +set @b=1; +set @c=1; +call p_20906_b(); +select @a, @b, @c; +@a @b @c +2 2 2 +drop procedure p_20906_a; +drop procedure p_20906_b; End of 5.0 tests. diff --git a/mysql-test/t/sp-code.test b/mysql-test/t/sp-code.test index 751282c895a..a76863dd5fa 100644 --- a/mysql-test/t/sp-code.test +++ b/mysql-test/t/sp-code.test @@ -598,4 +598,36 @@ show procedure code proc_33618_c; drop procedure proc_33618_h; drop procedure proc_33618_c; +# +# Bug#20906 (Multiple assignments in SET in stored routine produce incorrect +# instructions) +# + +--disable_warnings +drop procedure if exists p_20906_a; +drop procedure if exists p_20906_b; +--enable_warnings + +create procedure p_20906_a() SET @a=@a+1, @b=@b+1; +show procedure code p_20906_a; + +set @a=1; +set @b=1; + +call p_20906_a(); +select @a, @b; + +create procedure p_20906_b() SET @a=@a+1, @b=@b+1, @c=@c+1; +show procedure code p_20906_b; + +set @a=1; +set @b=1; +set @c=1; + +call p_20906_b(); +select @a, @b, @c; + +drop procedure p_20906_a; +drop procedure p_20906_b; + --echo End of 5.0 tests. From 2dcec449e0c0854b1d3387dc7d55e3b5969baa1a Mon Sep 17 00:00:00 2001 From: "gshchepa/uchum@host.loc" <> Date: Wed, 26 Mar 2008 22:43:12 +0400 Subject: [PATCH 114/139] Fixed bug #35193. View definition as SELECT ... FROM DUAL WHERE ... has valid syntax, but use of such view in SELECT or SHOW CREATE VIEW syntax causes unexpected syntax error. Server omits FROM DUAL clause when storing view body string in a .frm file for further evaluation. However, syntax of SELECT-witout-FROM query is more restrictive than SELECT FROM DUAL syntax, and doesn't allow the WHERE clause. NOTE: this syntax difference is not documented. View registration procedure has been modified to preserve original structure of view's body. --- mysql-test/r/view.result | 18 ++++++++++++++++++ mysql-test/t/view.test | 23 +++++++++++++++++++++++ sql/sql_select.cc | 8 ++++++++ 3 files changed, 49 insertions(+) diff --git a/mysql-test/r/view.result b/mysql-test/r/view.result index 520bf9426b8..eb7a89c3d12 100644 --- a/mysql-test/r/view.result +++ b/mysql-test/r/view.result @@ -3659,6 +3659,24 @@ DROP TABLE t1; # -- End of test case for Bug#34337. +# ----------------------------------------------------------------- +# -- Bug#35193: VIEW query is rewritten without "FROM DUAL", +# -- causing syntax error +# ----------------------------------------------------------------- + +CREATE VIEW v1 AS SELECT 1 FROM DUAL WHERE 1; + +SELECT * FROM v1; +1 +1 +SHOW CREATE TABLE v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select 1 AS `1` from DUAL where 1 + +DROP VIEW v1; + +# -- End of test case for Bug#35193. + # ----------------------------------------------------------------- # -- End of 5.0 tests. # ----------------------------------------------------------------- diff --git a/mysql-test/t/view.test b/mysql-test/t/view.test index 23e64b0546f..9fa981ccb9a 100644 --- a/mysql-test/t/view.test +++ b/mysql-test/t/view.test @@ -3537,6 +3537,29 @@ DROP TABLE t1; ########################################################################### +--echo # ----------------------------------------------------------------- +--echo # -- Bug#35193: VIEW query is rewritten without "FROM DUAL", +--echo # -- causing syntax error +--echo # ----------------------------------------------------------------- +--echo + +CREATE VIEW v1 AS SELECT 1 FROM DUAL WHERE 1; + +--echo + +SELECT * FROM v1; +SHOW CREATE TABLE v1; + +--echo + +DROP VIEW v1; + +--echo +--echo # -- End of test case for Bug#35193. +--echo + +########################################################################### + --echo # ----------------------------------------------------------------- --echo # -- End of 5.0 tests. --echo # ----------------------------------------------------------------- diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6392f7c4299..bb3030a721c 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -15806,6 +15806,14 @@ void st_select_lex::print(THD *thd, String *str) /* go through join tree */ print_join(thd, str, &top_join_list); } + else if (where) + { + /* + "SELECT 1 FROM DUAL WHERE 2" should not be printed as + "SELECT 1 WHERE 2": the 1st syntax is valid, but the 2nd is not. + */ + str->append(STRING_WITH_LEN(" from DUAL ")); + } // Where Item *cur_where= where; From 07a3ae238adc048ae007f44f114a6b7449326d2e Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Wed, 26 Mar 2008 14:52:10 -0400 Subject: [PATCH 115/139] Fix minor complaints of Marc Alff, for patch against B-g#15776. --- mysql-test/t/type_blob.test | 5 ++++- sql/sql_yacc.yy | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test index 097c749f977..ad578a18979 100644 --- a/mysql-test/t/type_blob.test +++ b/mysql-test/t/type_blob.test @@ -449,6 +449,9 @@ set @@sql_mode=''; # raise ER_TOO_BIG_DISPLAYWIDTH # BLOB and TEXT types +--disable_warnings +drop table if exists b15776; +--enable_warnings create table b15776 (data blob(2147483647)); drop table b15776; --error ER_PARSE_ERROR @@ -570,7 +573,7 @@ explain select cast(1 as binary(4294967296)); explain select cast(1 as decimal(-1)); explain select cast(1 as decimal(64, 30)); # It's not as important which errors are raised for these, since the -# limit is nowhere near 3**32. We may fix these eventually to take +# limit is nowhere near 2**32. We may fix these eventually to take # 4294967295 and still reject it because it's greater than 64 or 30, # but that's not a high priority and the parser needn't worry about # such a weird case. diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index c270e005454..d47e6679269 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -3010,7 +3010,7 @@ udf_type: field_list: field_list_item - | field_list ',' field_list_item; /* FIXME: Should this be backward? */ + | field_list ',' field_list_item; field_list_item: From c87874a1a3508444bb1cf64899b457ea4cedcc37 Mon Sep 17 00:00:00 2001 From: "mattiasj@witty." <> Date: Thu, 27 Mar 2008 01:13:39 +0100 Subject: [PATCH 116/139] Recommit of antonys previous commit. Bug#21413 "Engine table handler used by multiple threads in REPLACE DELAYED" When executing a REPLACE DELAYED statement, the storage engine ::extra() method was invoked by a different thread than the thread which has acquired the handler instance. This did not cause problems within the current server and with the current storage engines. But it has the potential to confuse future storage engines. Added code to avoid surplus calls to extra() method in case of DELAYED which avoids calling storage engine from a different thread than expected. No test case. This change does not change behavior in conjunction with current storage engines. So it cannot be tested by the regression test suite. --- sql/sql_insert.cc | 44 ++++++++++++++++++++++++++++++-------------- 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index f5bbba742a5..2e371971838 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -315,18 +315,23 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, error=0; id=0; thd->proc_info="update"; - if (duplic != DUP_ERROR || ignore) - table->file->extra(HA_EXTRA_IGNORE_DUP_KEY); - /* - let's *try* to start bulk inserts. It won't necessary - start them as values_list.elements should be greater than - some - handler dependent - threshold. - So we call start_bulk_insert to perform nesessary checks on - values_list.elements, and - if nothing else - to initialize - the code to make the call of end_bulk_insert() below safe. - */ +#ifndef EMBEDDED_LIBRARY if (lock_type != TL_WRITE_DELAYED) +#endif /* EMBEDDED_LIBRARY */ + { + if (duplic != DUP_ERROR || ignore) + table->file->extra(HA_EXTRA_IGNORE_DUP_KEY); + + /* + let's *try* to start bulk inserts. It won't necessary + start them as values_list.elements should be greater than + some - handler dependent - threshold. + So we call start_bulk_insert to perform nesessary checks on + values_list.elements, and - if nothing else - to initialize + the code to make the call of end_bulk_insert() below safe. + */ table->file->start_bulk_insert(values_list.elements); + } while ((values= its++)) { @@ -415,6 +420,9 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, else if (table->next_number_field && info.copied) id=table->next_number_field->val_int(); // Return auto_increment value + if (duplic != DUP_ERROR || ignore) + table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY); + /* Invalidate the table in the query cache if something changed. For the transactional algorithm to work the invalidation must be @@ -455,8 +463,6 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, table->next_number_field=0; thd->count_cuted_fields= CHECK_FIELD_IGNORE; thd->next_insert_id=0; // Reset this if wrongly used - if (duplic != DUP_ERROR || ignore) - table->file->extra(HA_EXTRA_NO_IGNORE_DUP_KEY); /* Reset value of LAST_INSERT_ID if no rows where inserted */ if (!info.copied && thd->insert_id_used) @@ -561,7 +567,12 @@ int mysql_prepare_insert(THD *thd, TABLE_LIST *table_list, DBUG_RETURN(-1); } } - if (duplic == DUP_UPDATE || duplic == DUP_REPLACE) + /* + Only call extra() handler method if we are not performing a DELAYED + operation. It will instead be executed by delayed insert thread. + */ + if ((duplic == DUP_UPDATE || duplic == DUP_REPLACE) && + (insert_table_list->lock_type != TL_WRITE_DELAYED)) table->file->extra(HA_EXTRA_RETRIEVE_PRIMARY_KEY); DBUG_RETURN(0); @@ -930,9 +941,11 @@ static TABLE *delayed_get_table(THD *thd,TABLE_LIST *table_list) my_error(ER_OUT_OF_RESOURCES,MYF(0)); goto err1; } - tmp->table_list= *table_list; // Needed to open table + /* We only need the db and table name to open tables with open_ltable() */ tmp->table_list.db= tmp->thd.db; + tmp->table_list.db_length= table_list->db_length; tmp->table_list.alias= tmp->table_list.real_name=tmp->thd.query; + tmp->table_list.real_name_length= table_list->real_name_length; tmp->lock(); pthread_mutex_lock(&tmp->mutex); if ((error=pthread_create(&tmp->thd.real_id,&connection_attrib, @@ -1491,6 +1504,9 @@ bool delayed_insert::handle_inserts(void) info.ignore= row->ignore; info.handle_duplicates= row->dup; + if (info.handle_duplicates == DUP_UPDATE || + info.handle_duplicates == DUP_REPLACE) + table->file->extra(HA_EXTRA_RETRIEVE_PRIMARY_KEY); if (info.ignore || info.handle_duplicates != DUP_ERROR) { From 68fc98bdb3f0a02c61eba23e8588da05c04ece8d Mon Sep 17 00:00:00 2001 From: "hezx@mail.hezx.com" <> Date: Thu, 27 Mar 2008 13:42:34 +0800 Subject: [PATCH 117/139] post fix after push of BUG#33029 --- mysql-test/r/binlog_killed_simulate.result | 6 +- mysql-test/r/mix_innodb_myisam_binlog.result | 186 +++++++++--------- mysql-test/r/multi_update.result | 4 +- .../r/rpl_auto_increment_bug33029.result | 2 - mysql-test/r/rpl_user.result | 14 +- mysql-test/t/rpl_auto_increment_bug33029.test | 2 + 6 files changed, 107 insertions(+), 107 deletions(-) diff --git a/mysql-test/r/binlog_killed_simulate.result b/mysql-test/r/binlog_killed_simulate.result index a21ac5b1e32..c0087316420 100644 --- a/mysql-test/r/binlog_killed_simulate.result +++ b/mysql-test/r/binlog_killed_simulate.result @@ -16,10 +16,10 @@ create table t2 (a int, b int) ENGINE=MyISAM; reset master; load data infile '../std_data_ln/rpl_loaddata.dat' into table t2 /* will be "killed" in the middle */; ERROR 70100: Query execution was interrupted -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Begin_load_query 1 # ;file_id=1;block_len=12 -master-bin.000001 133 Execute_load_query 1 # use `test`; load data infile '../std_data_ln/rpl_loaddata.dat' into table t2 /* will be "killed" in the middle */ ;file_id=1 +master-bin.000001 # Begin_load_query # # ;file_id=#;block_len=12 +master-bin.000001 # Execute_load_query # # use `test`; load data infile '../std_data_ln/rpl_loaddata.dat' into table t2 /* will be "killed" in the middle */ ;file_id=# select (@a:=load_file("MYSQLTEST_VARDIR/tmp/binlog_killed_bug27571.binlog")) is not null; diff --git a/mysql-test/r/mix_innodb_myisam_binlog.result b/mysql-test/r/mix_innodb_myisam_binlog.result index b1d328a61dc..eda3ff41c89 100644 --- a/mysql-test/r/mix_innodb_myisam_binlog.result +++ b/mysql-test/r/mix_innodb_myisam_binlog.result @@ -6,12 +6,12 @@ begin; insert into t1 values(1); insert into t2 select * from t1; commit; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(1) -master-bin.000001 253 Query 1 # use `test`; insert into t2 select * from t1 -master-bin.000001 347 Xid 1 # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(1) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Xid # # COMMIT /* XID */ delete from t1; delete from t2; reset master; @@ -21,12 +21,12 @@ insert into t2 select * from t1; rollback; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(2) -master-bin.000001 253 Query 1 # use `test`; insert into t2 select * from t1 -master-bin.000001 347 Query 1 # use `test`; ROLLBACK +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(2) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # use `test`; ROLLBACK delete from t1; delete from t2; reset master; @@ -39,15 +39,15 @@ rollback to savepoint my_savepoint; Warnings: Warning 1196 Some non-transactional changed tables couldn't be rolled back commit; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(3) -master-bin.000001 253 Query 1 # use `test`; savepoint my_savepoint -master-bin.000001 338 Query 1 # use `test`; insert into t1 values(4) -master-bin.000001 425 Query 1 # use `test`; insert into t2 select * from t1 -master-bin.000001 519 Query 1 # use `test`; rollback to savepoint my_savepoint -master-bin.000001 616 Xid 1 # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(3) +master-bin.000001 # Query # # use `test`; savepoint my_savepoint +master-bin.000001 # Query # # use `test`; insert into t1 values(4) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # use `test`; rollback to savepoint my_savepoint +master-bin.000001 # Xid # # COMMIT /* XID */ delete from t1; delete from t2; reset master; @@ -65,16 +65,16 @@ select a from t1 order by a; a 5 7 -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(5) -master-bin.000001 253 Query 1 # use `test`; savepoint my_savepoint -master-bin.000001 338 Query 1 # use `test`; insert into t1 values(6) -master-bin.000001 425 Query 1 # use `test`; insert into t2 select * from t1 -master-bin.000001 519 Query 1 # use `test`; rollback to savepoint my_savepoint -master-bin.000001 616 Query 1 # use `test`; insert into t1 values(7) -master-bin.000001 703 Xid 1 # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(5) +master-bin.000001 # Query # # use `test`; savepoint my_savepoint +master-bin.000001 # Query # # use `test`; insert into t1 values(6) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # use `test`; rollback to savepoint my_savepoint +master-bin.000001 # Query # # use `test`; insert into t1 values(7) +master-bin.000001 # Xid # # COMMIT /* XID */ delete from t1; delete from t2; reset master; @@ -87,46 +87,46 @@ insert into t2 select * from t1; select get_lock("a",10); get_lock("a",10) 1 -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(8) -master-bin.000001 253 Query 1 # use `test`; insert into t2 select * from t1 -master-bin.000001 347 Query 1 # use `test`; ROLLBACK +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(8) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # use `test`; ROLLBACK delete from t1; delete from t2; reset master; insert into t1 values(9); insert into t2 select * from t1; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(9) -master-bin.000001 253 Xid 1 # COMMIT /* XID */ -master-bin.000001 280 Query 1 # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(9) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 delete from t1; delete from t2; reset master; insert into t1 values(10); begin; insert into t2 select * from t1; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(10) -master-bin.000001 254 Xid 1 # COMMIT /* XID */ -master-bin.000001 281 Query 1 # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(10) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 insert into t1 values(11); commit; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(10) -master-bin.000001 254 Xid 1 # COMMIT /* XID */ -master-bin.000001 281 Query 1 # use `test`; insert into t2 select * from t1 -master-bin.000001 375 Query 1 # use `test`; BEGIN -master-bin.000001 443 Query 1 # use `test`; insert into t1 values(11) -master-bin.000001 531 Xid 1 # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(10) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(11) +master-bin.000001 # Xid # # COMMIT /* XID */ alter table t2 engine=INNODB; delete from t1; delete from t2; @@ -135,12 +135,12 @@ begin; insert into t1 values(12); insert into t2 select * from t1; commit; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(12) -master-bin.000001 254 Query 1 # use `test`; insert into t2 select * from t1 -master-bin.000001 348 Xid 1 # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(12) +master-bin.000001 # Query # # use `test`; insert into t2 select * from t1 +master-bin.000001 # Xid # # COMMIT /* XID */ delete from t1; delete from t2; reset master; @@ -148,7 +148,7 @@ begin; insert into t1 values(13); insert into t2 select * from t1; rollback; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info delete from t1; delete from t2; @@ -160,11 +160,11 @@ insert into t1 values(15); insert into t2 select * from t1; rollback to savepoint my_savepoint; commit; -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(14) -master-bin.000001 254 Xid 1 # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(14) +master-bin.000001 # Xid # # COMMIT /* XID */ delete from t1; delete from t2; reset master; @@ -180,12 +180,12 @@ select a from t1 order by a; a 16 18 -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(16) -master-bin.000001 254 Query 1 # use `test`; insert into t1 values(18) -master-bin.000001 342 Xid 1 # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(16) +master-bin.000001 # Query # # use `test`; insert into t1 values(18) +master-bin.000001 # Xid # # COMMIT /* XID */ delete from t1; delete from t2; alter table t2 type=MyISAM; @@ -232,35 +232,35 @@ insert into t2 values (3); select get_lock("lock1",60); get_lock("lock1",60) 1 -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; BEGIN -master-bin.000001 166 Query 1 # use `test`; insert into t1 values(16) -master-bin.000001 254 Query 1 # use `test`; insert into t1 values(18) -master-bin.000001 342 Xid 1 # COMMIT /* XID */ -master-bin.000001 369 Query 1 # use `test`; BEGIN -master-bin.000001 437 Query 1 # use `test`; delete from t1 -master-bin.000001 514 Xid 1 # COMMIT /* XID */ -master-bin.000001 541 Query 1 # use `test`; BEGIN -master-bin.000001 609 Query 1 # use `test`; delete from t2 -master-bin.000001 686 Xid 1 # COMMIT /* XID */ -master-bin.000001 713 Query 1 # use `test`; alter table t2 type=MyISAM -master-bin.000001 802 Query 1 # use `test`; BEGIN -master-bin.000001 870 Query 1 # use `test`; insert into t1 values (1) -master-bin.000001 958 Xid 1 # COMMIT /* XID */ -master-bin.000001 985 Query 1 # use `test`; insert into t2 values (20) -master-bin.000001 1074 Query 1 # use `test`; drop table t1,t2 -master-bin.000001 1153 Query 1 # use `test`; create temporary table ti (a int) engine=innodb -master-bin.000001 1263 Query 1 # use `test`; BEGIN -master-bin.000001 1331 Query 1 # use `test`; insert into ti values(1) -master-bin.000001 1418 Xid 1 # COMMIT /* XID */ -master-bin.000001 1445 Query 1 # use `test`; create temporary table t1 (a int) engine=myisam -master-bin.000001 1555 Query 1 # use `test`; insert t1 values (1) -master-bin.000001 1638 Query 1 # use `test`; create table t0 (n int) -master-bin.000001 1724 Query 1 # use `test`; insert t0 select * from t1 -master-bin.000001 1813 Query 1 # use `test`; insert into t0 select GET_LOCK("lock1",null) -master-bin.000001 1920 Query 1 # use `test`; create table t2 (n int) engine=innodb -master-bin.000001 2020 Query 1 # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti` +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values(16) +master-bin.000001 # Query # # use `test`; insert into t1 values(18) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; delete from t1 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; delete from t2 +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; alter table t2 type=MyISAM +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into t1 values (1) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; insert into t2 values (20) +master-bin.000001 # Query # # use `test`; drop table t1,t2 +master-bin.000001 # Query # # use `test`; create temporary table ti (a int) engine=innodb +master-bin.000001 # Query # # use `test`; BEGIN +master-bin.000001 # Query # # use `test`; insert into ti values(1) +master-bin.000001 # Xid # # COMMIT /* XID */ +master-bin.000001 # Query # # use `test`; create temporary table t1 (a int) engine=myisam +master-bin.000001 # Query # # use `test`; insert t1 values (1) +master-bin.000001 # Query # # use `test`; create table t0 (n int) +master-bin.000001 # Query # # use `test`; insert t0 select * from t1 +master-bin.000001 # Query # # use `test`; insert into t0 select GET_LOCK("lock1",null) +master-bin.000001 # Query # # use `test`; create table t2 (n int) engine=innodb +master-bin.000001 # Query # # use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti` do release_lock("lock1"); drop table t0,t2; reset master; diff --git a/mysql-test/r/multi_update.result b/mysql-test/r/multi_update.result index 7a12fc87bdc..18394bfc88a 100644 --- a/mysql-test/r/multi_update.result +++ b/mysql-test/r/multi_update.result @@ -573,8 +573,8 @@ count(*) select count(*) from t3 /* must be 1 */; count(*) 1 -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; delete t3.* from t2,t3 where t2.a=t3.a +master-bin.000001 # Query # # use `test`; delete t3.* from t2,t3 where t2.a=t3.a drop table t1, t2, t3; end of tests diff --git a/mysql-test/r/rpl_auto_increment_bug33029.result b/mysql-test/r/rpl_auto_increment_bug33029.result index b1512a6ec1d..fb17553f5a0 100644 --- a/mysql-test/r/rpl_auto_increment_bug33029.result +++ b/mysql-test/r/rpl_auto_increment_bug33029.result @@ -163,5 +163,3 @@ DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p2; DROP FUNCTION IF EXISTS f1; DROP TRIGGER IF EXISTS tr1; -Warnings: -Note 1360 Trigger does not exist diff --git a/mysql-test/r/rpl_user.result b/mysql-test/r/rpl_user.result index 25e0f310f55..be24ce0bc46 100644 --- a/mysql-test/r/rpl_user.result +++ b/mysql-test/r/rpl_user.result @@ -35,11 +35,11 @@ drop user 'not_exist_user1'@'fakehost', 'not_exist_user2'@'fakehost'; ERROR HY000: Operation DROP USER failed for 'not_exist_user1'@'fakehost','not_exist_user2'@'fakehost' select Host,User from mysql.user where Host='fakehost'; Host User -show binlog events from 98; +show binlog events from ; Log_name Pos Event_type Server_id End_log_pos Info -master-bin.000001 98 Query 1 # use `test`; create user 'foo'@'fakehost' -master-bin.000001 189 Query 1 # use `test`; create user 'foo'@'fakehost', 'bar'@'fakehost' -master-bin.000001 298 Query 1 # use `test`; rename user 'foo'@'fakehost' to 'foofoo'@'fakehost' -master-bin.000001 412 Query 1 # use `test`; rename user 'not_exist_user1'@'fakehost' to 'foobar'@'fakehost', 'bar'@'fakehost' to 'barbar'@'fakehost' -master-bin.000001 579 Query 1 # use `test`; drop user 'foofoo'@'fakehost' -master-bin.000001 671 Query 1 # use `test`; drop user 'not_exist_user1'@'fakehost', 'barbar'@'fakehost' +master-bin.000001 # Query # # use `test`; create user 'foo'@'fakehost' +master-bin.000001 # Query # # use `test`; create user 'foo'@'fakehost', 'bar'@'fakehost' +master-bin.000001 # Query # # use `test`; rename user 'foo'@'fakehost' to 'foofoo'@'fakehost' +master-bin.000001 # Query # # use `test`; rename user 'not_exist_user1'@'fakehost' to 'foobar'@'fakehost', 'bar'@'fakehost' to 'barbar'@'fakehost' +master-bin.000001 # Query # # use `test`; drop user 'foofoo'@'fakehost' +master-bin.000001 # Query # # use `test`; drop user 'not_exist_user1'@'fakehost', 'barbar'@'fakehost' diff --git a/mysql-test/t/rpl_auto_increment_bug33029.test b/mysql-test/t/rpl_auto_increment_bug33029.test index a4f716d8411..db548945c7f 100644 --- a/mysql-test/t/rpl_auto_increment_bug33029.test +++ b/mysql-test/t/rpl_auto_increment_bug33029.test @@ -99,9 +99,11 @@ SELECT * FROM t2; # clean up connection master; +disable_warnings; DROP TABLE IF EXISTS t1, t2; DROP PROCEDURE IF EXISTS p1; DROP PROCEDURE IF EXISTS p2; DROP FUNCTION IF EXISTS f1; DROP TRIGGER IF EXISTS tr1; +enable_warnings; sync_slave_with_master; From 7297fe19508261a67ae3ea041c305719d7532f51 Mon Sep 17 00:00:00 2001 From: "df@pippilotta.erinye.com" <> Date: Thu, 27 Mar 2008 13:02:59 +0100 Subject: [PATCH 118/139] BUG#25340 --- win/configure.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/win/configure.js b/win/configure.js index 4450b97f9a1..0de09fb318c 100755 --- a/win/configure.js +++ b/win/configure.js @@ -134,6 +134,8 @@ function GetValue(str, key) var end = str.indexOf("\n", pos); if (str.charAt(pos) == "\"") pos++; + if (str.charAt(end-1) == "\r") + end--; if (str.charAt(end-1) == "\"") end--; return str.substring(pos, end); From 65c1cf30ff5ff2dabb6ed7b89fbbb580c891783a Mon Sep 17 00:00:00 2001 From: "davi@mysql.com/endora.local" <> Date: Thu, 27 Mar 2008 09:37:20 -0300 Subject: [PATCH 119/139] Patch clean up. Fixed interference between tests: Users were added but not properly removed. This caused later tests to fail. --- mysql-test/r/grant.result | 4 ++-- mysql-test/t/grant.test | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/grant.result b/mysql-test/r/grant.result index 98a21b14585..d56020c3090 100644 --- a/mysql-test/r/grant.result +++ b/mysql-test/r/grant.result @@ -1146,8 +1146,8 @@ select col1 from test limit 1 into tmp; return '1'; end| create view v1 as select test.* from test where test.col1=test_function(); -grant update (col1) on v1 to 'greg'; -revoke all privileges on v1 from 'greg'; +grant update (col1) on v1 to 'greg'@'localhost'; +drop user 'greg'@'localhost'; drop view v1; drop table test; drop function test_function; diff --git a/mysql-test/t/grant.test b/mysql-test/t/grant.test index 43548094a33..e4b95502143 100644 --- a/mysql-test/t/grant.test +++ b/mysql-test/t/grant.test @@ -1169,8 +1169,8 @@ begin end| delimiter ;| create view v1 as select test.* from test where test.col1=test_function(); -grant update (col1) on v1 to 'greg'; -revoke all privileges on v1 from 'greg'; +grant update (col1) on v1 to 'greg'@'localhost'; +drop user 'greg'@'localhost'; drop view v1; drop table test; drop function test_function; From 21c6145a6e70c06b36f55929223dc84edab952bf Mon Sep 17 00:00:00 2001 From: "evgen@moonbone.local" <> Date: Thu, 27 Mar 2008 19:49:32 +0300 Subject: [PATCH 120/139] Bug#27219: Aggregate functions in ORDER BY. Mixing aggregate functions and non-grouping columns is not allowed in the ONLY_FULL_GROUP_BY mode. However in some cases the error wasn't thrown because of insufficient check. In order to check more thoroughly the new algorithm employs a list of outer fields used in a sum function and a SELECT_LEX::full_group_by_flag. Each non-outer field checked to find out whether it's aggregated or not and the current select is marked accordingly. All outer fields that are used under an aggregate function are added to the Item_sum::outer_fields list and later checked by the Item_sum::check_sum_func function. --- mysql-test/r/group_by.result | 146 +++++++++++++++++++++++++++++++++++ mysql-test/t/group_by.test | 117 ++++++++++++++++++++++++++++ sql/item.cc | 28 ++++++- sql/item_subselect.cc | 14 ++++ sql/item_sum.cc | 64 +++++++++++++++ sql/item_sum.h | 7 ++ sql/mysql_priv.h | 7 ++ sql/sql_lex.cc | 3 +- sql/sql_lex.h | 11 ++- sql/sql_select.cc | 34 ++------ 10 files changed, 395 insertions(+), 36 deletions(-) diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result index 7574aa916ae..28a9e15d473 100644 --- a/mysql-test/r/group_by.result +++ b/mysql-test/r/group_by.result @@ -1213,4 +1213,150 @@ FROM t1; ERROR 21000: Subquery returns more than 1 row DROP TABLE t1; SET @@sql_mode = @old_sql_mode; +# +# Bug#27219: Aggregate functions in ORDER BY. +# +SET @save_sql_mode=@@sql_mode; +SET @@sql_mode='ONLY_FULL_GROUP_BY'; +CREATE TABLE t1 (a INT, b INT, c INT DEFAULT 0); +INSERT INTO t1 (a, b) VALUES (3,3), (2,2), (3,3), (2,2), (3,3), (4,4); +CREATE TABLE t2 SELECT * FROM t1; +SELECT 1 FROM t1 ORDER BY COUNT(*); +1 +1 +SELECT 1 FROM t1 ORDER BY COUNT(*) + 1; +1 +1 +SELECT 1 FROM t1 ORDER BY COUNT(*) + a; +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT 1 FROM t1 ORDER BY COUNT(*), 1; +1 +1 +SELECT 1 FROM t1 ORDER BY COUNT(*), a; +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT 1 FROM t1 ORDER BY SUM(a); +1 +1 +SELECT 1 FROM t1 ORDER BY SUM(a + 1); +1 +1 +SELECT 1 FROM t1 ORDER BY SUM(a) + 1; +1 +1 +SELECT 1 FROM t1 ORDER BY SUM(a), b; +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT a FROM t1 ORDER BY COUNT(b); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 ORDER BY (SELECT SUM(t2.a) FROM t2); +a +3 +2 +3 +2 +3 +4 +SELECT t1.a FROM t1 ORDER BY (SELECT SUM(t2.a), t2.a FROM t2); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 ORDER BY (SELECT SUM(t2.a) FROM t2 ORDER BY t2.a); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 ORDER BY (SELECT t2.a FROM t2 ORDER BY SUM(t2.b) LIMIT 1); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 +WHERE t1.a = (SELECT t2.a FROM t2 ORDER BY SUM(t2.b) LIMIT 1); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 GROUP BY t1.a +HAVING t1.a = (SELECT t2.a FROM t2 ORDER BY SUM(t2.a) LIMIT 1); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 GROUP BY t1.a +HAVING t1.a IN (SELECT t2.a FROM t2 ORDER BY SUM(t1.b)); +a +2 +3 +4 +SELECT t1.a FROM t1 GROUP BY t1.a +HAVING t1.a IN (SELECT t2.a FROM t2 ORDER BY t2.a, SUM(t2.b)); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 GROUP BY t1.a +HAVING t1.a > ANY (SELECT t2.a FROM t2 ORDER BY t2.a, SUM(t2.b)); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 +WHERE t1.a = (SELECT t2.a FROM t2 ORDER BY SUM(t1.b)); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT 1 FROM t1 GROUP BY t1.a +HAVING (SELECT AVG(SUM(t1.b) + 1) FROM t2 ORDER BY SUM(t2.a) LIMIT 1); +1 +1 +1 +1 +SELECT 1 FROM t1 GROUP BY t1.a +HAVING (SELECT AVG(SUM(t1.b) + t2.b) FROM t2 ORDER BY SUM(t2.a) LIMIT 1); +1 +1 +1 +1 +SELECT 1 FROM t1 GROUP BY t1.a +HAVING (SELECT AVG(t1.b + t2.b) FROM t2 ORDER BY SUM(t2.a) LIMIT 1); +1 +1 +1 +1 +SELECT 1 FROM t1 GROUP BY t1.a +HAVING (SELECT AVG(SUM(t1.b) + 1) FROM t2 ORDER BY t2.a LIMIT 1); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT 1 FROM t1 GROUP BY t1.a +HAVING (SELECT AVG(SUM(t1.b) + t2.b) FROM t2 ORDER BY t2.a LIMIT 1); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT 1 FROM t1 GROUP BY t1.a +HAVING (SELECT AVG(t1.b + t2.b) FROM t2 ORDER BY t2.a LIMIT 1); +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +SELECT t1.a FROM t1 +WHERE t1.a = (SELECT t2.a FROM t2 GROUP BY t2.a +ORDER BY SUM(t2.b), SUM(t1.b) LIMIT 1); +a +4 +SELECT t1.a, SUM(t1.b) FROM t1 +WHERE t1.a = (SELECT SUM(t2.b) FROM t2 GROUP BY t2.a +ORDER BY SUM(t2.b), SUM(t1.b) LIMIT 1) +GROUP BY t1.a; +a SUM(t1.b) +4 4 +SELECT t1.a, SUM(t1.b) FROM t1 +WHERE t1.a = (SELECT SUM(t2.b) FROM t2 +ORDER BY SUM(t2.b) + SUM(t1.b) LIMIT 1) +GROUP BY t1.a; +a SUM(t1.b) +SELECT t1.a, SUM(t1.b) FROM t1 +WHERE t1.a = (SELECT SUM(t2.b) FROM t2 +ORDER BY SUM(t2.b + t1.a) LIMIT 1) +GROUP BY t1.a; +a SUM(t1.b) +SELECT t1.a FROM t1 GROUP BY t1.a +HAVING (1, 1) = (SELECT SUM(t1.a), t1.a FROM t2 LIMIT 1); +a +select avg ( +(select +(select sum(outr.a + innr.a) from t1 as innr limit 1) as tt +from t1 as outr order by outr.a limit 1)) +from t1 as most_outer; +avg ( +(select +(select sum(outr.a + innr.a) from t1 as innr limit 1) as tt +from t1 as outr order by outr.a limit 1)) +29.0000 +select avg ( +(select ( +(select sum(outr.a + innr.a) from t1 as innr limit 1)) as tt +from t1 as outr order by count(outr.a) limit 1)) as tt +from t1 as most_outer; +ERROR 42000: Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause +select (select sum(outr.a + t1.a) from t1 limit 1) as tt from t1 as outr order by outr.a; +tt +29 +29 +35 +35 +35 +41 +SET sql_mode=@save_sql_mode; +DROP TABLE t1, t2; End of 5.0 tests diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test index 636544f7854..82bb8a45faa 100644 --- a/mysql-test/t/group_by.test +++ b/mysql-test/t/group_by.test @@ -893,4 +893,121 @@ FROM t1; DROP TABLE t1; SET @@sql_mode = @old_sql_mode; +--echo # +--echo # Bug#27219: Aggregate functions in ORDER BY. +--echo # +SET @save_sql_mode=@@sql_mode; +SET @@sql_mode='ONLY_FULL_GROUP_BY'; + +CREATE TABLE t1 (a INT, b INT, c INT DEFAULT 0); +INSERT INTO t1 (a, b) VALUES (3,3), (2,2), (3,3), (2,2), (3,3), (4,4); +CREATE TABLE t2 SELECT * FROM t1; + +SELECT 1 FROM t1 ORDER BY COUNT(*); +SELECT 1 FROM t1 ORDER BY COUNT(*) + 1; +--error 1140 +SELECT 1 FROM t1 ORDER BY COUNT(*) + a; +SELECT 1 FROM t1 ORDER BY COUNT(*), 1; +--error 1140 +SELECT 1 FROM t1 ORDER BY COUNT(*), a; + +SELECT 1 FROM t1 ORDER BY SUM(a); +SELECT 1 FROM t1 ORDER BY SUM(a + 1); +SELECT 1 FROM t1 ORDER BY SUM(a) + 1; +--error 1140 +SELECT 1 FROM t1 ORDER BY SUM(a), b; + +--error 1140 +SELECT a FROM t1 ORDER BY COUNT(b); + +SELECT t1.a FROM t1 ORDER BY (SELECT SUM(t2.a) FROM t2); + +--error 1140 +SELECT t1.a FROM t1 ORDER BY (SELECT SUM(t2.a), t2.a FROM t2); +--error 1140 +SELECT t1.a FROM t1 ORDER BY (SELECT SUM(t2.a) FROM t2 ORDER BY t2.a); +--error 1140 +SELECT t1.a FROM t1 ORDER BY (SELECT t2.a FROM t2 ORDER BY SUM(t2.b) LIMIT 1); + +--error 1140 +SELECT t1.a FROM t1 + WHERE t1.a = (SELECT t2.a FROM t2 ORDER BY SUM(t2.b) LIMIT 1); +--error 1140 +SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a = (SELECT t2.a FROM t2 ORDER BY SUM(t2.a) LIMIT 1); + +SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a IN (SELECT t2.a FROM t2 ORDER BY SUM(t1.b)); +--error 1140 +SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a IN (SELECT t2.a FROM t2 ORDER BY t2.a, SUM(t2.b)); +--error 1140 +SELECT t1.a FROM t1 GROUP BY t1.a + HAVING t1.a > ANY (SELECT t2.a FROM t2 ORDER BY t2.a, SUM(t2.b)); + +--error 1140 +SELECT t1.a FROM t1 + WHERE t1.a = (SELECT t2.a FROM t2 ORDER BY SUM(t1.b)); + +SELECT 1 FROM t1 GROUP BY t1.a + HAVING (SELECT AVG(SUM(t1.b) + 1) FROM t2 ORDER BY SUM(t2.a) LIMIT 1); +SELECT 1 FROM t1 GROUP BY t1.a + HAVING (SELECT AVG(SUM(t1.b) + t2.b) FROM t2 ORDER BY SUM(t2.a) LIMIT 1); +SELECT 1 FROM t1 GROUP BY t1.a + HAVING (SELECT AVG(t1.b + t2.b) FROM t2 ORDER BY SUM(t2.a) LIMIT 1); + +--error 1140 +SELECT 1 FROM t1 GROUP BY t1.a + HAVING (SELECT AVG(SUM(t1.b) + 1) FROM t2 ORDER BY t2.a LIMIT 1); +--error 1140 +SELECT 1 FROM t1 GROUP BY t1.a + HAVING (SELECT AVG(SUM(t1.b) + t2.b) FROM t2 ORDER BY t2.a LIMIT 1); +--error 1140 +SELECT 1 FROM t1 GROUP BY t1.a + HAVING (SELECT AVG(t1.b + t2.b) FROM t2 ORDER BY t2.a LIMIT 1); + +# Both SUMs are aggregated in the subquery, no mixture: +SELECT t1.a FROM t1 + WHERE t1.a = (SELECT t2.a FROM t2 GROUP BY t2.a + ORDER BY SUM(t2.b), SUM(t1.b) LIMIT 1); + +# SUM(t1.b) is aggregated in the subquery, no mixture: +SELECT t1.a, SUM(t1.b) FROM t1 + WHERE t1.a = (SELECT SUM(t2.b) FROM t2 GROUP BY t2.a + ORDER BY SUM(t2.b), SUM(t1.b) LIMIT 1) + GROUP BY t1.a; + +# 2nd SUM(t1.b) is aggregated in the subquery, no mixture: +SELECT t1.a, SUM(t1.b) FROM t1 + WHERE t1.a = (SELECT SUM(t2.b) FROM t2 + ORDER BY SUM(t2.b) + SUM(t1.b) LIMIT 1) + GROUP BY t1.a; + +# SUM(t2.b + t1.a) is aggregated in the subquery, no mixture: +SELECT t1.a, SUM(t1.b) FROM t1 + WHERE t1.a = (SELECT SUM(t2.b) FROM t2 + ORDER BY SUM(t2.b + t1.a) LIMIT 1) + GROUP BY t1.a; + +SELECT t1.a FROM t1 GROUP BY t1.a + HAVING (1, 1) = (SELECT SUM(t1.a), t1.a FROM t2 LIMIT 1); + +select avg ( + (select + (select sum(outr.a + innr.a) from t1 as innr limit 1) as tt + from t1 as outr order by outr.a limit 1)) +from t1 as most_outer; + +--error 1140 +select avg ( + (select ( + (select sum(outr.a + innr.a) from t1 as innr limit 1)) as tt + from t1 as outr order by count(outr.a) limit 1)) as tt +from t1 as most_outer; + +select (select sum(outr.a + t1.a) from t1 limit 1) as tt from t1 as outr order by outr.a; + +SET sql_mode=@save_sql_mode; +DROP TABLE t1, t2; + --echo End of 5.0 tests diff --git a/sql/item.cc b/sql/item.cc index 6f0119393e7..85756dcb124 100644 --- a/sql/item.cc +++ b/sql/item.cc @@ -3925,9 +3925,9 @@ bool Item_field::fix_fields(THD *thd, Item **reference) } if ((ret= fix_outer_field(thd, &from_field, reference)) < 0) goto error; - else if (!ret) - return FALSE; outer_fixed= TRUE; + if (!ret) + goto mark_non_agg_field; } else if (!from_field) goto error; @@ -3939,9 +3939,9 @@ bool Item_field::fix_fields(THD *thd, Item **reference) int ret; if ((ret= fix_outer_field(thd, &from_field, reference)) < 0) goto error; - else if (!ret) - return FALSE; outer_fixed= 1; + if (!ret) + goto mark_non_agg_field; } /* @@ -4007,6 +4007,26 @@ bool Item_field::fix_fields(THD *thd, Item **reference) thd->lex->current_select->non_agg_fields.push_back(this); marker= thd->lex->current_select->cur_pos_in_select_list; } +mark_non_agg_field: + if (fixed && thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY) + { + /* + Mark selects according to presence of non aggregated fields. + Fields from outer selects added to the aggregate function + outer_fields list as its unknown at the moment whether it's + aggregated or not. + */ + if (!thd->lex->in_sum_func) + cached_table->select_lex->full_group_by_flag|= NON_AGG_FIELD_USED; + else + { + if (outer_fixed) + thd->lex->in_sum_func->outer_fields.push_back(this); + else if (thd->lex->in_sum_func->nest_level != + thd->lex->current_select->nest_level) + cached_table->select_lex->full_group_by_flag|= NON_AGG_FIELD_USED; + } + } return FALSE; error: diff --git a/sql/item_subselect.cc b/sql/item_subselect.cc index b3710841dfb..1c81a4ac3a1 100644 --- a/sql/item_subselect.cc +++ b/sql/item_subselect.cc @@ -1434,6 +1434,19 @@ Item_in_subselect::select_in_like_transformer(JOIN *join, Comp_creator *func) DBUG_ENTER("Item_in_subselect::select_in_like_transformer"); + { + /* + IN/SOME/ALL/ANY subqueries aren't support LIMIT clause. Without it + ORDER BY clause becomes meaningless thus we drop it here. + */ + SELECT_LEX *sl= current->master_unit()->first_select(); + for (; sl; sl= sl->next_select()) + { + if (sl->join) + sl->join->order= 0; + } + } + if (changed) { DBUG_RETURN(RES_OK); @@ -1468,6 +1481,7 @@ Item_in_subselect::select_in_like_transformer(JOIN *join, Comp_creator *func) transformed= 1; arena= thd->activate_stmt_arena_if_needed(&backup); + /* Both transformers call fix_fields() only for Items created inside them, and all that items do not make permanent changes in current item arena diff --git a/sql/item_sum.cc b/sql/item_sum.cc index 3d6d46ab3f4..42c934261b0 100644 --- a/sql/item_sum.cc +++ b/sql/item_sum.cc @@ -66,6 +66,7 @@ bool Item_sum::init_sum_func_check(THD *thd) aggr_sel= NULL; max_arg_level= -1; max_sum_func_level= -1; + outer_fields.empty(); return FALSE; } @@ -175,6 +176,7 @@ bool Item_sum::check_sum_func(THD *thd, Item **ref) MYF(0)); return TRUE; } + if (in_sum_func) { /* @@ -195,6 +197,68 @@ bool Item_sum::check_sum_func(THD *thd, Item **ref) set_if_bigger(in_sum_func->max_sum_func_level, aggr_level); set_if_bigger(in_sum_func->max_sum_func_level, max_sum_func_level); } + + /* + Check that non-aggregated fields and sum functions aren't mixed in the + same select in the ONLY_FULL_GROUP_BY mode. + */ + if (outer_fields.elements) + { + Item_field *field; + /* + Here we compare the nesting level of the select to which an outer field + belongs to with the aggregation level of the sum function. All fields in + the outer_fields list are checked. + + If the nesting level is equal to the aggregation level then the field is + aggregated by this sum function. + If the nesting level is less than the aggregation level then the field + belongs to an outer select. In this case if there is an embedding sum + function add current field to functions outer_fields list. If there is + no embedding function then the current field treated as non aggregated + and the select it belongs to is marked accordingly. + If the nesting level is greater than the aggregation level then it means + that this field was added by an inner sum function. + Consider an example: + + select avg ( <-- we are here, checking outer.f1 + select ( + select sum(outer.f1 + inner.f1) from inner + ) from outer) + from most_outer; + + In this case we check that no aggregate functions are used in the + select the field belongs to. If there are some then an error is + raised. + */ + List_iterator of(outer_fields); + while ((field= of++)) + { + SELECT_LEX *sel= field->cached_table->select_lex; + if (sel->nest_level < aggr_level) + { + if (in_sum_func) + { + /* + Let upper function decide whether this field is a non + aggregated one. + */ + in_sum_func->outer_fields.push_back(field); + } + else + sel->full_group_by_flag|= NON_AGG_FIELD_USED; + } + if (sel->nest_level > aggr_level && + (sel->full_group_by_flag & SUM_FUNC_USED) && + !sel->group_list.elements) + { + my_message(ER_MIX_OF_GROUP_FUNC_AND_FIELDS, + ER(ER_MIX_OF_GROUP_FUNC_AND_FIELDS), MYF(0)); + return TRUE; + } + } + } + aggr_sel->full_group_by_flag|= SUM_FUNC_USED; update_used_tables(); thd->lex->in_sum_func= in_sum_func; return FALSE; diff --git a/sql/item_sum.h b/sql/item_sum.h index bf0abe53eea..d39fc96e254 100644 --- a/sql/item_sum.h +++ b/sql/item_sum.h @@ -239,6 +239,13 @@ public: int8 max_arg_level; /* max level of unbound column references */ int8 max_sum_func_level;/* max level of aggregation for embedded functions */ bool quick_group; /* If incremental update of fields */ + /* + This list is used by the check for mixing non aggregated fields and + sum functions in the ONLY_FULL_GROUP_BY_MODE. We save all outer fields + directly or indirectly used under this function it as it's unclear + at the moment of fixing outer field whether it's aggregated or not. + */ + List outer_fields; protected: table_map used_tables_cache; diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h index 59ec18e1a3d..6352647a154 100644 --- a/sql/mysql_priv.h +++ b/sql/mysql_priv.h @@ -1044,6 +1044,13 @@ SQL_SELECT *make_select(TABLE *head, table_map const_tables, bool allow_null_cond, int *error); extern Item **not_found_item; +/* + A set of constants used for checking non aggregated fields and sum + functions mixture in the ONLY_FULL_GROUP_BY_MODE. +*/ +#define NON_AGG_FIELD_USED 1 +#define SUM_FUNC_USED 2 + /* This enumeration type is used only by the function find_item_in_list to return the info on how an item has been resolved against a list diff --git a/sql/sql_lex.cc b/sql/sql_lex.cc index f1b4ffc949d..6bfcd982b04 100644 --- a/sql/sql_lex.cc +++ b/sql/sql_lex.cc @@ -1253,6 +1253,7 @@ void st_select_lex::init_select() non_agg_fields.empty(); cond_value= having_value= Item::COND_UNDEF; inner_refs_list.empty(); + full_group_by_flag= 0; } /* @@ -1491,8 +1492,6 @@ bool st_select_lex::test_limit() "LIMIT & IN/ALL/ANY/SOME subquery"); return(1); } - // no sense in ORDER BY without LIMIT - order_list.empty(); return(0); } diff --git a/sql/sql_lex.h b/sql/sql_lex.h index f216f51b0e4..cde4c3a97b3 100644 --- a/sql/sql_lex.h +++ b/sql/sql_lex.h @@ -611,7 +611,16 @@ public: joins on the right. */ List *prev_join_using; - + /* + Bitmap used in the ONLY_FULL_GROUP_BY_MODE to prevent mixture of aggregate + functions and non aggregated fields when GROUP BY list is absent. + Bits: + 0 - non aggregated fields are used in this select, + defined as NON_AGG_FIELD_USED. + 1 - aggregate functions are used in this select, + defined as SUM_FUNC_USED. + */ + uint8 full_group_by_flag; void init_query(); void init_select(); st_select_lex_unit* master_unit(); diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6392f7c4299..8c5d09f4e16 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -568,37 +568,13 @@ JOIN::prepare(Item ***rref_pointer_array, /* Check if there are references to un-aggregated columns when computing aggregate functions with implicit grouping (there is no GROUP BY). - TODO: Add check of calculation of GROUP functions and fields: - SELECT COUNT(*)+table.col1 from table1; */ - if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY) + if (thd->variables.sql_mode & MODE_ONLY_FULL_GROUP_BY && !group_list && + select_lex->full_group_by_flag == (NON_AGG_FIELD_USED | SUM_FUNC_USED)) { - if (!group_list) - { - uint flag=0; - List_iterator_fast it(fields_list); - Item *item; - while ((item= it++)) - { - if (item->with_sum_func) - flag|=1; - else if (!(flag & 2) && !item->const_during_execution()) - flag|=2; - } - if (having) - { - if (having->with_sum_func) - flag |= 1; - else if (!having->const_during_execution()) - flag |= 2; - } - if (flag == 3) - { - my_message(ER_MIX_OF_GROUP_FUNC_AND_FIELDS, - ER(ER_MIX_OF_GROUP_FUNC_AND_FIELDS), MYF(0)); - DBUG_RETURN(-1); - } - } + my_message(ER_MIX_OF_GROUP_FUNC_AND_FIELDS, + ER(ER_MIX_OF_GROUP_FUNC_AND_FIELDS), MYF(0)); + DBUG_RETURN(-1); } { /* Caclulate the number of groups */ From b008ac3aac519fa2341d2a7a2c834218a0cf0777 Mon Sep 17 00:00:00 2001 From: "mattiasj@witty." <> Date: Fri, 28 Mar 2008 14:27:22 +0100 Subject: [PATCH 121/139] Bug#21413 - Engine table handler used by multiple threads in REPLACE DELAYED post push patch, removing the optimization for copying delayed_insert variables. --- sql/sql_insert.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index 2e371971838..54f2d5695d4 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -941,11 +941,10 @@ static TABLE *delayed_get_table(THD *thd,TABLE_LIST *table_list) my_error(ER_OUT_OF_RESOURCES,MYF(0)); goto err1; } - /* We only need the db and table name to open tables with open_ltable() */ + tmp->table_list= *table_list; // Needed to open table + /* Replace volatile strings with local copies */ tmp->table_list.db= tmp->thd.db; - tmp->table_list.db_length= table_list->db_length; tmp->table_list.alias= tmp->table_list.real_name=tmp->thd.query; - tmp->table_list.real_name_length= table_list->real_name_length; tmp->lock(); pthread_mutex_lock(&tmp->mutex); if ((error=pthread_create(&tmp->thd.real_id,&connection_attrib, From 2880d2081ec3e887e7583cddf112705ed4f3719d Mon Sep 17 00:00:00 2001 From: "anozdrin/alik@quad.opbmk" <> Date: Fri, 28 Mar 2008 18:59:13 +0300 Subject: [PATCH 122/139] Fix for Bug#35469: server crash with LOAD DATA INFILE to a VIEW. The problem was that LOAD DATA code (sql_load.cc) didn't take into account that there may be items, representing references to other columns. This is a usual case in views. The crash happened because Item_direct_view_ref was casted to Item_user_var_as_out_param, which is not a base class. The fix is to 1) Handle references properly; 2) Ensure that an item is treated as a user variable only when it is a user variable indeed; 3) Report an error if LOAD DATA is used to load data into non-updatable column. --- mysql-test/r/loaddata.result | 76 ++++++++++++++++++++++++++++ mysql-test/std_data/bug35649.data | 3 ++ mysql-test/t/loaddata.test | 82 +++++++++++++++++++++++++++++++ sql/share/errmsg.txt | 4 ++ sql/sql_load.cc | 56 +++++++++++++++------ 5 files changed, 207 insertions(+), 14 deletions(-) create mode 100644 mysql-test/std_data/bug35649.data diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result index 7fff2700779..156a78eb627 100644 --- a/mysql-test/r/loaddata.result +++ b/mysql-test/r/loaddata.result @@ -252,3 +252,79 @@ SELECT * FROM t1; c1 c2 c3 c4 10 1970-02-01 01:02:03 1.1e-100 1.1e+100 DROP TABLE t1; + +# -- +# -- Bug#35469: server crash with LOAD DATA INFILE to a VIEW. +# -- + +DROP TABLE IF EXISTS t1; +DROP VIEW IF EXISTS v1; +DROP VIEW IF EXISTS v2; +DROP VIEW IF EXISTS v3; + +CREATE TABLE t1(c1 INT, c2 VARCHAR(255)); + +CREATE VIEW v1 AS SELECT * FROM t1; +CREATE VIEW v2 AS SELECT 1 + 2 AS c0, c1, c2 FROM t1; +CREATE VIEW v3 AS SELECT 1 AS d1, 2 AS d2; + +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v1 +FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (c1, c2); + +SELECT * FROM t1; +c1 c2 +1 "string1" +2 "string2" +3 "string3" + +SELECT * FROM v1; +c1 c2 +1 "string1" +2 "string2" +3 "string3" + +DELETE FROM t1; + +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 +FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (c1, c2); + +SELECT * FROM t1; +c1 c2 +1 "string1" +2 "string2" +3 "string3" + +SELECT * FROM v2; +c0 c1 c2 +3 1 "string1" +3 2 "string2" +3 3 "string3" + +DELETE FROM t1; + +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 +FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (c0, c2); +ERROR HY000: Invalid column reference (v2.c0) in LOAD DATA + +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v3 +FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (d1, d2); +ERROR HY000: The target table v3 of the LOAD is not updatable + +DROP TABLE t1; +DROP VIEW v1; +DROP VIEW v2; +DROP VIEW v3; + +# -- End of Bug#35469. diff --git a/mysql-test/std_data/bug35649.data b/mysql-test/std_data/bug35649.data new file mode 100644 index 00000000000..afcd9e9cc95 --- /dev/null +++ b/mysql-test/std_data/bug35649.data @@ -0,0 +1,3 @@ +"1", "string1" +"2", "string2" +"3", "string3" diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test index 9eb92015399..68cf84b7fac 100644 --- a/mysql-test/t/loaddata.test +++ b/mysql-test/t/loaddata.test @@ -236,4 +236,86 @@ SELECT * FROM t1; remove_file $MYSQLTEST_VARDIR/tmp/t1; DROP TABLE t1; +########################################################################### + +--echo +--echo # -- +--echo # -- Bug#35469: server crash with LOAD DATA INFILE to a VIEW. +--echo # -- + +--echo +--disable_warnings +DROP TABLE IF EXISTS t1; +DROP VIEW IF EXISTS v1; +DROP VIEW IF EXISTS v2; +DROP VIEW IF EXISTS v3; +--enable_warnings + +--echo +CREATE TABLE t1(c1 INT, c2 VARCHAR(255)); + +--echo +CREATE VIEW v1 AS SELECT * FROM t1; +CREATE VIEW v2 AS SELECT 1 + 2 AS c0, c1, c2 FROM t1; +CREATE VIEW v3 AS SELECT 1 AS d1, 2 AS d2; + +--echo +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v1 + FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (c1, c2); + +--echo +SELECT * FROM t1; + +--echo +SELECT * FROM v1; + +--echo +DELETE FROM t1; + +--echo +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 + FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (c1, c2); + +--echo +SELECT * FROM t1; + +--echo +SELECT * FROM v2; + +--echo +DELETE FROM t1; + +--echo +--error ER_LOAD_DATA_INVALID_COLUMN +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 + FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (c0, c2); + +--echo +--error ER_NON_UPDATABLE_TABLE +LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v3 + FIELDS ESCAPED BY '\\' + TERMINATED BY ',' + ENCLOSED BY '"' + LINES TERMINATED BY '\n' (d1, d2); + +--echo +DROP TABLE t1; +DROP VIEW v1; +DROP VIEW v2; +DROP VIEW v3; + +--echo +--echo # -- End of Bug#35469. + +########################################################################### + # End of 5.0 tests diff --git a/sql/share/errmsg.txt b/sql/share/errmsg.txt index 9e6cf462113..a3514776d6e 100644 --- a/sql/share/errmsg.txt +++ b/sql/share/errmsg.txt @@ -5641,3 +5641,7 @@ ER_NAME_BECOMES_EMPTY eng "Name '%-.64s' has become ''" ER_AMBIGUOUS_FIELD_TERM eng "First character of the FIELDS TERMINATED string is ambiguous; please use non-optional and non-empty FIELDS ENCLOSED BY" + +ER_LOAD_DATA_INVALID_COLUMN + eng "Invalid column reference (%-.64s) in LOAD DATA" + diff --git a/sql/sql_load.cc b/sql/sql_load.cc index 4da3c19bb3c..e9fd04dff15 100644 --- a/sql/sql_load.cc +++ b/sql/sql_load.cc @@ -233,9 +233,11 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, while ((item= it++)) { - if (item->type() == Item::FIELD_ITEM) + Item *real_item= item->real_item(); + + if (real_item->type() == Item::FIELD_ITEM) { - Field *field= ((Item_field*)item)->field; + Field *field= ((Item_field*)real_item)->field; if (field->flags & BLOB_FLAG) { use_blobs= 1; @@ -244,7 +246,7 @@ int mysql_load(THD *thd,sql_exchange *ex,TABLE_LIST *table_list, else tot_length+= field->field_length; } - else + else if (item->type() == Item::STRING_ITEM) use_vars= 1; } if (use_blobs && !ex->line_term->length() && !field_term->length()) @@ -705,6 +707,7 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list, { uint length; byte *pos; + Item *real_item; if (read_info.read_field()) break; @@ -716,14 +719,17 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list, pos=read_info.row_start; length=(uint) (read_info.row_end-pos); + real_item= item->real_item(); + if (!read_info.enclosed && (enclosed_length && length == 4 && !memcmp(pos, STRING_WITH_LEN("NULL"))) || (length == 1 && read_info.found_null)) { - if (item->type() == Item::FIELD_ITEM) + + if (real_item->type() == Item::FIELD_ITEM) { - Field *field= ((Item_field *)item)->field; + Field *field= ((Item_field *)real_item)->field; if (field->reset()) { my_error(ER_WARN_NULL_TO_NOTNULL, MYF(0), field->field_name, @@ -740,25 +746,39 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list, ER_WARN_NULL_TO_NOTNULL, 1); } } - else + else if (item->type() == Item::STRING_ITEM) + { ((Item_user_var_as_out_param *)item)->set_null_value( read_info.read_charset); + } + else + { + my_error(ER_LOAD_DATA_INVALID_COLUMN, MYF(0), item->full_name()); + DBUG_RETURN(1); + } + continue; } - if (item->type() == Item::FIELD_ITEM) + if (real_item->type() == Item::FIELD_ITEM) { - - Field *field= ((Item_field *)item)->field; + Field *field= ((Item_field *)real_item)->field; field->set_notnull(); read_info.row_end[0]=0; // Safe to change end marker if (field == table->next_number_field) table->auto_increment_field_not_null= TRUE; field->store((char*) pos, length, read_info.read_charset); } - else + else if (item->type() == Item::STRING_ITEM) + { ((Item_user_var_as_out_param *)item)->set_value((char*) pos, length, - read_info.read_charset); + read_info.read_charset); + } + else + { + my_error(ER_LOAD_DATA_INVALID_COLUMN, MYF(0), item->full_name()); + DBUG_RETURN(1); + } } if (read_info.error) break; @@ -774,9 +794,10 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list, break; for (; item ; item= it++) { - if (item->type() == Item::FIELD_ITEM) + Item *real_item= item->real_item(); + if (real_item->type() == Item::FIELD_ITEM) { - Field *field= ((Item_field *)item)->field; + Field *field= ((Item_field *)real_item)->field; if (field->reset()) { my_error(ER_WARN_NULL_TO_NOTNULL, MYF(0),field->field_name, @@ -796,9 +817,16 @@ read_sep_field(THD *thd, COPY_INFO &info, TABLE_LIST *table_list, ER_WARN_TOO_FEW_RECORDS, ER(ER_WARN_TOO_FEW_RECORDS), thd->row_count); } - else + else if (item->type() == Item::STRING_ITEM) + { ((Item_user_var_as_out_param *)item)->set_null_value( read_info.read_charset); + } + else + { + my_error(ER_LOAD_DATA_INVALID_COLUMN, MYF(0), item->full_name()); + DBUG_RETURN(1); + } } } From 79e434bc67abc695cd5c3a711a7f1732f91da155 Mon Sep 17 00:00:00 2001 From: "iggy@amd64.(none)" <> Date: Fri, 28 Mar 2008 14:02:27 -0400 Subject: [PATCH 123/139] Bug#26243 mysql command line crash after control-c - Backported the 5.1 DBUG to 5.0. - Avoid memory cleanup race on Windows client for CTRL-C --- client/mysql.cc | 24 +- dbug/dbug.c | 2851 ++++++++++++++++++++----------------- dbug/factorial.c | 14 +- dbug/user.r | 297 ++-- include/my_dbug.h | 100 +- libmysql/libmysql.c | 4 - myisam/mi_open.c | 2 +- sql/ha_federated.cc | 2 +- sql/ha_innodb.cc | 2 +- sql/ha_myisammrg.cc | 2 +- sql/item_cmpfunc.cc | 2 +- sql/mysqld.cc | 13 +- sql/net_serv.cc | 4 +- sql/opt_range.cc | 6 +- sql/set_var.cc | 2 +- sql/slave.cc | 2 +- sql/sql_cache.cc | 6 +- sql/sql_select.cc | 2 +- tests/mysql_client_test.c | 1 - 19 files changed, 1823 insertions(+), 1513 deletions(-) diff --git a/client/mysql.cc b/client/mysql.cc index 483b1829ec0..a4706a1c580 100644 --- a/client/mysql.cc +++ b/client/mysql.cc @@ -1216,21 +1216,35 @@ sig_handler mysql_sigint(int sig) char kill_buffer[40]; MYSQL *kill_mysql= NULL; - signal(SIGINT, mysql_sigint); - /* terminate if no query being executed, or we already tried interrupting */ if (!executing_query || interrupted_query++) - mysql_end(sig); + goto err; kill_mysql= mysql_init(kill_mysql); if (!mysql_real_connect(kill_mysql,current_host, current_user, opt_password, "", opt_mysql_port, opt_mysql_unix_port,0)) - mysql_end(sig); + goto err; /* kill_buffer is always big enough because max length of %lu is 15 */ sprintf(kill_buffer, "KILL /*!50000 QUERY */ %lu", mysql_thread_id(&mysql)); mysql_real_query(kill_mysql, kill_buffer, strlen(kill_buffer)); mysql_close(kill_mysql); tee_fprintf(stdout, "Query aborted by Ctrl+C\n"); + + return; + +err: +#ifdef _WIN32 + /* + When SIGINT is raised on Windows, the OS creates a new thread to handle the + interrupt. Once that thread completes, the main thread continues running + only to find that it's resources have already been free'd when the sigint + handler called mysql_end(). + */ + mysql_thread_end(); + return; +#else + mysql_end(sig); +#endif } sig_handler mysql_end(int sig) @@ -1271,7 +1285,7 @@ sig_handler mysql_end(int sig) my_free(current_prompt,MYF(MY_ALLOW_ZERO_PTR)); mysql_server_end(); free_defaults(defaults_argv); - my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : 0); + my_end(info_flag ? MY_CHECK_ERROR | MY_GIVE_INFO : MY_CHECK_ERROR); exit(status.exit_status); } diff --git a/dbug/dbug.c b/dbug/dbug.c index c991daf3617..09515dc329c 100644 --- a/dbug/dbug.c +++ b/dbug/dbug.c @@ -1,74 +1,77 @@ /****************************************************************************** - * * - * N O T I C E * - * * - * Copyright Abandoned, 1987, Fred Fish * - * * - * * - * This previously copyrighted work has been placed into the public * - * domain by the author and may be freely used for any purpose, * - * private or commercial. * - * * - * Because of the number of inquiries I was receiving about the use * - * of this product in commercially developed works I have decided to * - * simply make it public domain to further its unrestricted use. I * - * specifically would be most happy to see this material become a * - * part of the standard Unix distributions by AT&T and the Berkeley * - * Computer Science Research Group, and a standard part of the GNU * - * system from the Free Software Foundation. * - * * - * I would appreciate it, as a courtesy, if this notice is left in * - * all copies and derivative works. Thank you. * - * * - * The author makes no warranty of any kind with respect to this * + * * + * N O T I C E * + * * + * Copyright Abandoned, 1987, Fred Fish * + * * + * * + * This previously copyrighted work has been placed into the public * + * domain by the author and may be freely used for any purpose, * + * private or commercial. * + * * + * Because of the number of inquiries I was receiving about the use * + * of this product in commercially developed works I have decided to * + * simply make it public domain to further its unrestricted use. I * + * specifically would be most happy to see this material become a * + * part of the standard Unix distributions by AT&T and the Berkeley * + * Computer Science Research Group, and a standard part of the GNU * + * system from the Free Software Foundation. * + * * + * I would appreciate it, as a courtesy, if this notice is left in * + * all copies and derivative works. Thank you. * + * * + * The author makes no warranty of any kind with respect to this * * product and explicitly disclaims any implied warranties of mer- * - * chantability or fitness for any particular purpose. * - * * + * chantability or fitness for any particular purpose. * + * * ****************************************************************************** */ - /* * FILE * - * dbug.c runtime support routines for dbug package + * dbug.c runtime support routines for dbug package * * SCCS * - * @(#)dbug.c 1.25 7/25/89 + * @(#)dbug.c 1.25 7/25/89 * * DESCRIPTION * - * These are the runtime support routines for the dbug package. - * The dbug package has two main components; the user include - * file containing various macro definitions, and the runtime - * support routines which are called from the macro expansions. + * These are the runtime support routines for the dbug package. + * The dbug package has two main components; the user include + * file containing various macro definitions, and the runtime + * support routines which are called from the macro expansions. * - * Externally visible functions in the runtime support module - * use the naming convention pattern "_db_xx...xx_", thus - * they are unlikely to collide with user defined function names. + * Externally visible functions in the runtime support module + * use the naming convention pattern "_db_xx...xx_", thus + * they are unlikely to collide with user defined function names. * * AUTHOR(S) * - * Fred Fish (base code) - * Enhanced Software Technologies, Tempe, AZ - * asuvax!mcdphx!estinc!fnf + * Fred Fish (base code) + * Enhanced Software Technologies, Tempe, AZ + * asuvax!mcdphx!estinc!fnf * - * Binayak Banerjee (profiling enhancements) - * seismo!bpa!sjuvax!bbanerje + * Binayak Banerjee (profiling enhancements) + * seismo!bpa!sjuvax!bbanerje * - * Michael Widenius: - * DBUG_DUMP - To dump a block of memory. + * Michael Widenius: + * DBUG_DUMP - To dump a block of memory. * PUSH_FLAG "O" - To be used insted of "o" if we * want flushing after each write - * PUSH_FLAG "A" - as 'O', but we will append to the out file instead - * of creating a new one. - * Check of malloc on entry/exit (option "S") + * PUSH_FLAG "A" - as 'O', but we will append to the out file instead + * of creating a new one. + * Check of malloc on entry/exit (option "S") + * + * DBUG_EXECUTE_IF + * incremental mode (-#+t:-d,info ...) + * DBUG_SET, _db_explain_ + * thread-local settings + * */ -#ifdef DBUG_OFF -#undef DBUG_OFF -#endif + #include #include #include @@ -76,51 +79,44 @@ #include #endif -#ifdef _DBUG_CONDITION_ -#define _DBUG_START_CONDITION_ "d:t" -#else -#define _DBUG_START_CONDITION_ "" -#endif + +#ifndef DBUG_OFF + /* - * Manifest constants that should not require any changes. + * Manifest constants which may be "tuned" if desired. */ -#define EOS '\000' /* End Of String marker */ +#define PRINTBUF 1024 /* Print buffer size */ +#define INDENT 2 /* Indentation per trace level */ +#define MAXDEPTH 200 /* Maximum trace depth default */ /* - * Manifest constants which may be "tuned" if desired. + * The following flags are used to determine which + * capabilities the user has enabled with the settings + * push macro. */ -#define PRINTBUF 1024 /* Print buffer size */ -#define INDENT 2 /* Indentation per trace level */ -#define MAXDEPTH 200 /* Maximum trace depth default */ +#define TRACE_ON 000001 /* Trace enabled */ +#define DEBUG_ON 000002 /* Debug enabled */ +#define FILE_ON 000004 /* File name print enabled */ +#define LINE_ON 000010 /* Line number print enabled */ +#define DEPTH_ON 000020 /* Function nest level print enabled */ +#define PROCESS_ON 000040 /* Process name print enabled */ +#define NUMBER_ON 000100 /* Number each line of output */ +#define PROFILE_ON 000200 /* Print out profiling code */ +#define PID_ON 000400 /* Identify each line with process id */ +#define TIMESTAMP_ON 001000 /* timestamp every line of output */ +#define SANITY_CHECK_ON 002000 /* Check safemalloc on DBUG_ENTER */ +#define FLUSH_ON_WRITE 004000 /* Flush on every write */ +#define OPEN_APPEND 010000 /* Open for append */ + +#define TRACING (cs->stack->flags & TRACE_ON) +#define DEBUGGING (cs->stack->flags & DEBUG_ON) +#define PROFILING (cs->stack->flags & PROFILE_ON) /* - * The following flags are used to determine which - * capabilities the user has enabled with the state - * push macro. - */ - -#define TRACE_ON 000001 /* Trace enabled */ -#define DEBUG_ON 000002 /* Debug enabled */ -#define FILE_ON 000004 /* File name print enabled */ -#define LINE_ON 000010 /* Line number print enabled */ -#define DEPTH_ON 000020 /* Function nest level print enabled */ -#define PROCESS_ON 000040 /* Process name print enabled */ -#define NUMBER_ON 000100 /* Number each line of output */ -#define PROFILE_ON 000200 /* Print out profiling code */ -#define PID_ON 000400 /* Identify each line with process id */ -#define SANITY_CHECK_ON 001000 /* Check safemalloc on DBUG_ENTER */ -#define FLUSH_ON_WRITE 002000 /* Flush on every write */ - -#define TRACING (stack -> flags & TRACE_ON) -#define DEBUGGING (stack -> flags & DEBUG_ON) -#define PROFILING (stack -> flags & PROFILE_ON) -#define STREQ(a,b) (strcmp(a,b) == 0) - -/* - * Typedefs to make things more obvious. + * Typedefs to make things more obvious. */ #ifndef __WIN__ @@ -130,13 +126,13 @@ typedef int BOOLEAN; #endif /* - * Make it easy to change storage classes if necessary. + * Make it easy to change storage classes if necessary. */ -#define IMPORT extern /* Names defined externally */ -#define EXPORT /* Allocated here, available globally */ -#define AUTO auto /* Names to be allocated on stack */ -#define REGISTER register /* Names to be placed in registers */ +#define IMPORT extern /* Names defined externally */ +#define EXPORT /* Allocated here, available globally */ +#define AUTO auto /* Names to be allocated on stack */ +#define REGISTER register /* Names to be placed in registers */ /* * The default file for profiling. Could also add another flag @@ -151,153 +147,150 @@ typedef int BOOLEAN; * */ -#define PROF_FILE "dbugmon.out" -#define PROF_EFMT "E\t%ld\t%s\n" -#define PROF_SFMT "S\t%lx\t%lx\t%s\n" -#define PROF_XFMT "X\t%ld\t%s\n" +#define PROF_FILE "dbugmon.out" +#define PROF_EFMT "E\t%ld\t%s\n" +#define PROF_SFMT "S\t%lx\t%lx\t%s\n" +#define PROF_XFMT "X\t%ld\t%s\n" -#ifdef M_I386 /* predefined by xenix 386 compiler */ +#ifdef M_I386 /* predefined by xenix 386 compiler */ #define AUTOS_REVERSE 1 #endif /* - * Variables which are available externally but should only - * be accessed via the macro package facilities. - */ - -EXPORT FILE *_db_fp_ = (FILE *) 0; /* Output stream, default stderr */ -EXPORT char *_db_process_ = (char*) "dbug"; /* Pointer to process name; argv[0] */ -EXPORT FILE *_db_pfp_ = (FILE *)0; /* Profile stream, 'dbugmon.out' */ -EXPORT BOOLEAN _db_on_ = FALSE; /* TRUE if debugging currently on */ -EXPORT BOOLEAN _db_pon_ = FALSE; /* TRUE if profile currently on */ -EXPORT BOOLEAN _no_db_ = FALSE; /* TRUE if no debugging at all */ - -/* - * Externally supplied functions. + * Externally supplied functions. */ #ifndef HAVE_PERROR -static void perror (); /* Fake system/library error print routine */ +static void perror(); /* Fake system/library error print routine */ #endif -IMPORT int _sanity(const char *file,uint line); +IMPORT int _sanity(const char *file,uint line); /* safemalloc sanity checker */ /* - * The user may specify a list of functions to trace or - * debug. These lists are kept in a linear linked list, - * a very simple implementation. + * The user may specify a list of functions to trace or + * debug. These lists are kept in a linear linked list, + * a very simple implementation. */ struct link { - char *str; /* Pointer to link's contents */ struct link *next_link; /* Pointer to the next link */ + char str[1]; /* Pointer to link's contents */ }; /* - * Debugging states can be pushed or popped off of a - * stack which is implemented as a linked list. Note - * that the head of the list is the current state and the - * stack is pushed by adding a new state to the head of the - * list or popped by removing the first link. - */ - -struct state { - int flags; /* Current state flags */ - int maxdepth; /* Current maximum trace depth */ - uint delay; /* Delay after each output line */ - int sub_level; /* Sub this from code_state->level */ - FILE *out_file; /* Current output stream */ - FILE *prof_file; /* Current profiling stream */ - char name[FN_REFLEN]; /* Name of output file */ - struct link *functions; /* List of functions */ - struct link *p_functions; /* List of profiled functions */ - struct link *keywords; /* List of debug keywords */ - struct link *processes; /* List of process names */ - struct state *next_state; /* Next state in the list */ -}; - - -/* - * Local variables not seen by user. - */ - - -static my_bool init_done = FALSE; /* Set to TRUE when initialization done */ -static struct state *stack=0; - -typedef struct st_code_state { - const char *func; /* Name of current user function */ - const char *file; /* Name of current user file */ - char **framep; /* Pointer to current frame */ - const char *jmpfunc; /* Remember current function for setjmp */ - const char *jmpfile; /* Remember current file for setjmp */ - int lineno; /* Current debugger output line number */ - int level; /* Current function nesting level */ - int disable_output; /* Set to it if output is disabled */ - int jmplevel; /* Remember nesting level at setjmp () */ - -/* - * The following variables are used to hold the state information - * between the call to _db_pargs_() and _db_doprnt_(), during - * expansion of the DBUG_PRINT macro. This is the only macro - * that currently uses these variables. + * Debugging settings can be pushed or popped off of a + * stack which is implemented as a linked list. Note + * that the head of the list is the current settings and the + * stack is pushed by adding a new settings to the head of the + * list or popped by removing the first link. * - * These variables are currently used only by _db_pargs_() and - * _db_doprnt_(). + * Note: if out_file is NULL, the other fields are not initialized at all! */ - uint u_line; /* User source code line number */ - int locked; /* If locked with _db_lock_file */ - const char *u_keyword; /* Keyword for current macro */ +struct settings { + int flags; /* Current settings flags */ + int maxdepth; /* Current maximum trace depth */ + uint delay; /* Delay after each output line */ + int sub_level; /* Sub this from code_state->level */ + FILE *out_file; /* Current output stream */ + FILE *prof_file; /* Current profiling stream */ + char name[FN_REFLEN]; /* Name of output file */ + struct link *functions; /* List of functions */ + struct link *p_functions; /* List of profiled functions */ + struct link *keywords; /* List of debug keywords */ + struct link *processes; /* List of process names */ + struct settings *next; /* Next settings in the list */ +}; + +#define is_shared(S, V) ((S)->next && (S)->next->V == (S)->V) + +/* + * Local variables not seen by user. + */ + + +static BOOLEAN init_done= FALSE; /* Set to TRUE when initialization done */ +static struct settings init_settings; +static const char *db_process= 0;/* Pointer to process name; argv[0] */ + +typedef struct _db_code_state_ { + const char *process; /* Pointer to process name; usually argv[0] */ + const char *func; /* Name of current user function */ + const char *file; /* Name of current user file */ + char **framep; /* Pointer to current frame */ + struct settings *stack; /* debugging settings */ + const char *jmpfunc; /* Remember current function for setjmp */ + const char *jmpfile; /* Remember current file for setjmp */ + int lineno; /* Current debugger output line number */ + int level; /* Current function nesting level */ + int jmplevel; /* Remember nesting level at setjmp() */ + +/* + * The following variables are used to hold the state information + * between the call to _db_pargs_() and _db_doprnt_(), during + * expansion of the DBUG_PRINT macro. This is the only macro + * that currently uses these variables. + * + * These variables are currently used only by _db_pargs_() and + * _db_doprnt_(). + */ + + uint u_line; /* User source code line number */ + int locked; /* If locked with _db_lock_file_ */ + const char *u_keyword; /* Keyword for current macro */ } CODE_STATE; - /* Parse a debug command string */ -static struct link *ListParse(char *ctlp); - /* Make a fresh copy of a string */ -static char *StrDup(const char *str); - /* Open debug output stream */ -static void DBUGOpenFile(const char *name, int append); -#ifndef THREAD - /* Open profile output stream */ -static FILE *OpenProfile(const char *name); - /* Profile if asked for it */ -static BOOLEAN DoProfile(void); -#endif - /* Return current user time (ms) */ -#ifndef THREAD -static unsigned long Clock (void); -#endif - /* Close debug output stream */ -static void CloseFile(FILE *fp); - /* Push current debug state */ -static void PushState(void); - /* Free memory associated with debug state. */ -static void FreeState (struct state *state); - /* Test for tracing enabled */ -static BOOLEAN DoTrace(CODE_STATE *state); - /* Test to see if file is writable */ -#if !(!defined(HAVE_ACCESS) || defined(MSDOS)) -static BOOLEAN Writable(char *pathname); - /* Change file owner and group */ -static void ChangeOwner(char *pathname); - /* Allocate memory for runtime support */ -#endif -static char *DbugMalloc(size_t size); - /* Remove leading pathname components */ -static char *BaseName(const char *pathname); -static void DoPrefix(uint line); +/* + The test below is so we could call functions with DBUG_ENTER before + my_thread_init(). +*/ +#define get_code_state_or_return if (!cs && !((cs=code_state()))) return + + /* Handling lists */ +static struct link *ListAdd(struct link *, const char *, const char *); +static struct link *ListDel(struct link *, const char *, const char *); +static struct link *ListCopy(struct link *); static void FreeList(struct link *linkp); -static void Indent(int indent); + + /* OpenClose debug output stream */ +static void DBUGOpenFile(CODE_STATE *,const char *, const char *, int); +static void DBUGCloseFile(CODE_STATE *cs, FILE *fp); + /* Push current debug settings */ +static void PushState(CODE_STATE *cs); + /* Free memory associated with debug state. */ +static void FreeState (CODE_STATE *cs, struct settings *state, int free_state); + /* Test for tracing enabled */ +static BOOLEAN DoTrace(CODE_STATE *cs); + + /* Test to see if file is writable */ +#if !(!defined(HAVE_ACCESS) || defined(MSDOS)) +static BOOLEAN Writable(const char *pathname); + /* Change file owner and group */ +static void ChangeOwner(CODE_STATE *cs, char *pathname); + /* Allocate memory for runtime support */ +#endif + +static void DoPrefix(CODE_STATE *cs, uint line); + +static char *DbugMalloc(size_t size); +static const char *BaseName(const char *pathname); +static void Indent(CODE_STATE *cs, int indent); static BOOLEAN InList(struct link *linkp,const char *cp); static void dbug_flush(CODE_STATE *); static void DbugExit(const char *why); -static int DelayArg(int value); - /* Supplied in Sys V runtime environ */ - /* Break string into tokens */ -static char *static_strtok(char *s1,pchar chr); +static const char *DbugStrTok(const char *s); + +#ifndef THREAD + /* Open profile output stream */ +static FILE *OpenProfile(CODE_STATE *cs, const char *name); + /* Profile if asked for it */ +static BOOLEAN DoProfile(CODE_STATE *); + /* Return current user time (ms) */ +static unsigned long Clock(void); +#endif /* - * Miscellaneous printf format strings. + * Miscellaneous printf format strings. */ #define ERR_MISSING_RETURN "%s: missing DBUG_RETURN or DBUG_VOID_RETURN macro in function \"%s\"\n" @@ -307,31 +300,19 @@ static char *static_strtok(char *s1,pchar chr); #define ERR_CHOWN "%s: can't change owner/group of \"%s\": " /* - * Macros and defines for testing file accessibility under UNIX and MSDOS. + * Macros and defines for testing file accessibility under UNIX and MSDOS. */ #undef EXISTS #if !defined(HAVE_ACCESS) || defined(MSDOS) -#define EXISTS(pathname) (FALSE) /* Assume no existance */ +#define EXISTS(pathname) (FALSE) /* Assume no existance */ #define Writable(name) (TRUE) #else -#define EXISTS(pathname) (access (pathname, F_OK) == 0) -#define WRITABLE(pathname) (access (pathname, W_OK) == 0) +#define EXISTS(pathname) (access(pathname, F_OK) == 0) +#define WRITABLE(pathname) (access(pathname, W_OK) == 0) #endif #ifndef MSDOS -#define ChangeOwner(name) -#endif - -/* - * Translate some calls among different systems. - */ - -#if defined(unix) || defined(xenix) || defined(VMS) || defined(__NetBSD__) -# define Delay(A) sleep((uint) A) -#elif defined(AMIGA) -IMPORT int Delay (); /* Pause for given number of ticks */ -#else -static int Delay(int ticks); +#define ChangeOwner(cs,name) #endif @@ -343,578 +324,843 @@ static int Delay(int ticks); #include pthread_mutex_t THR_LOCK_dbug; -static void init_dbug_state(void) -{ - pthread_mutex_init(&THR_LOCK_dbug,MY_MUTEX_INIT_FAST); -} - static CODE_STATE *code_state(void) { - CODE_STATE *state=0; - struct st_my_thread_var *tmp=my_thread_var; - if (tmp) + CODE_STATE *cs=0; + struct st_my_thread_var *tmp; + + if (!init_done) { - if (!(state=(CODE_STATE *) tmp->dbug)) + pthread_mutex_init(&THR_LOCK_dbug,MY_MUTEX_INIT_FAST); + bzero(&init_settings, sizeof(init_settings)); + init_settings.out_file=stderr; + init_settings.flags=OPEN_APPEND; + init_done=TRUE; + } + + if ((tmp=my_thread_var)) + { + if (!(cs=(CODE_STATE *) tmp->dbug)) { - state=(CODE_STATE*) DbugMalloc(sizeof(*state)); - bzero((char*) state,sizeof(*state)); - state->func="?func"; - state->file="?file"; - tmp->dbug=(gptr) state; + cs=(CODE_STATE*) DbugMalloc(sizeof(*cs)); + bzero((uchar*) cs,sizeof(*cs)); + cs->process= db_process ? db_process : "dbug"; + cs->func="?func"; + cs->file="?file"; + cs->stack=&init_settings; + tmp->dbug= (void*) cs; } } - return state; + return cs; } #else /* !THREAD */ -#define init_dbug_state() -#define code_state() (&static_code_state) -#define pthread_mutex_lock(A) {} -#define pthread_mutex_unlock(A) {} static CODE_STATE static_code_state= { - "?func", "?file", NULL, NullS, NullS, 0,0,0,0,0,0, NullS + "dbug", "?func", "?file", NULL, &init_settings, + NullS, NullS, 0,0,0,0,0,NullS }; + +static CODE_STATE *code_state(void) +{ + if (!init_done) + { + bzero(&init_settings, sizeof(init_settings)); + init_settings.out_file=stderr; + init_settings.flags=OPEN_APPEND; + init_done=TRUE; + } + return &static_code_state; +} + +#define pthread_mutex_lock(A) {} +#define pthread_mutex_unlock(A) {} #endif +/* + * Translate some calls among different systems. + */ + +#ifdef HAVE_SLEEP +/* sleep() wants seconds */ +#define Delay(A) sleep(((uint) A)/10) +#else +#define Delay(A) (0) +#endif + +/* + * FUNCTION + * + * _db_process_ give the name to the current process/thread + * + * SYNOPSIS + * + * VOID _process_(name) + * char *name; + * + */ + +void _db_process_(const char *name) +{ + CODE_STATE *cs=0; + + if (!db_process) + db_process= name; + + get_code_state_or_return; + cs->process= name; +} + /* * FUNCTION * - * _db_push_ push current debugger state and set up new one - * - * SYNOPSIS - * - * VOID _db_push_ (control) - * char *control; + * DbugParse parse control string and set current debugger setting * * DESCRIPTION * - * Given pointer to a debug control string in "control", pushes - * the current debug state, parses the control string, and sets - * up a new debug state. + * Given pointer to a debug control string in "control", + * parses the control string, and sets + * up a current debug settings. * - * The only attribute of the new state inherited from the previous - * state is the current function nesting level. This can be - * overridden by using the "r" flag in the control string. + * The debug control string is a sequence of colon separated fields + * as follows: * - * The debug control string is a sequence of colon separated fields - * as follows: + * [+]::...: * - * ::...: + * Each field consists of a mandatory flag character followed by + * an optional "," and comma separated list of modifiers: * - * Each field consists of a mandatory flag character followed by - * an optional "," and comma separated list of modifiers: + * [sign]flag[,modifier,modifier,...,modifier] * - * flag[,modifier,modifier,...,modifier] + * See the manual for the list of supported signs, flags, and modifiers * - * The currently recognized flag characters are: - * - * d Enable output from DBUG_ macros for - * for the current state. May be followed - * by a list of keywords which selects output - * only for the DBUG macros with that keyword. - * A null list of keywords implies output for - * all macros. - * - * D Delay after each debugger output line. - * The argument is the number of tenths of seconds - * to delay, subject to machine capabilities. - * I.E. -#D,20 is delay two seconds. - * - * f Limit debugging and/or tracing, and profiling to the - * list of named functions. Note that a null list will - * disable all functions. The appropriate "d" or "t" - * flags must still be given, this flag only limits their - * actions if they are enabled. - * - * F Identify the source file name for each - * line of debug or trace output. - * - * i Identify the process with the pid for each line of - * debug or trace output. - * - * g Enable profiling. Create a file called 'dbugmon.out' - * containing information that can be used to profile - * the program. May be followed by a list of keywords - * that select profiling only for the functions in that - * list. A null list implies that all functions are - * considered. - * - * L Identify the source file line number for - * each line of debug or trace output. - * - * n Print the current function nesting depth for - * each line of debug or trace output. - * - * N Number each line of dbug output. - * - * o Redirect the debugger output stream to the - * specified file. The default output is stderr. - * - * O As O but the file is really flushed between each - * write. When neaded the file is closed and reopened - * between each write. - * - * p Limit debugger actions to specified processes. - * A process must be identified with the - * DBUG_PROCESS macro and match one in the list - * for debugger actions to occur. - * - * P Print the current process name for each - * line of debug or trace output. - * - * r When pushing a new state, do not inherit - * the previous state's function nesting level. - * Useful when the output is to start at the - * left margin. - * - * S Do function _sanity(_file_,_line_) at each - * debugged function until _sanity() returns - * something that differs from 0. - * (Moustly used with safemalloc) - * - * t Enable function call/exit trace lines. - * May be followed by a list (containing only - * one modifier) giving a numeric maximum - * trace level, beyond which no output will - * occur for either debugging or tracing - * macros. The default is a compile time - * option. - * - * Some examples of debug control strings which might appear - * on a shell command line (the "-#" is typically used to - * introduce a control string to an application program) are: - * - * -#d:t - * -#d:f,main,subr1:F:L:t,20 - * -#d,input,output,files:n - * - * For convenience, any leading "-#" is stripped off. + * For convenience, any leading "-#" is stripped off. * */ -void _db_push_ (const char *control) +static void DbugParse(CODE_STATE *cs, const char *control) { - reg1 char *scan; - reg2 struct link *temp; - CODE_STATE *state; - char *new_str; + const char *end; + int rel=0; + struct settings *stack; - if (! _db_fp_) - _db_fp_= stderr; /* Output stream, default stderr */ + get_code_state_or_return; + stack= cs->stack; - if (*control == '-') + if (control[0] == '-' && control[1] == '#') + control+=2; + + rel= control[0] == '+' || control[0] == '-'; + if ((!rel || (!stack->out_file && !stack->next))) { - if (*++control == '#') - control++; + stack->flags= 0; + stack->delay= 0; + stack->maxdepth= 0; + stack->sub_level= 0; + stack->out_file= stderr; + stack->prof_file= NULL; + stack->functions= NULL; + stack->p_functions= NULL; + stack->keywords= NULL; + stack->processes= NULL; + } + else if (!stack->out_file) + { + stack->flags= stack->next->flags; + stack->delay= stack->next->delay; + stack->maxdepth= stack->next->maxdepth; + stack->sub_level= stack->next->sub_level; + strcpy(stack->name, stack->next->name); + stack->out_file= stack->next->out_file; + stack->prof_file= stack->next->prof_file; + if (stack->next == &init_settings) + { + /* never share with the global parent - it can change under your feet */ + stack->functions= ListCopy(init_settings.functions); + stack->p_functions= ListCopy(init_settings.p_functions); + stack->keywords= ListCopy(init_settings.keywords); + stack->processes= ListCopy(init_settings.processes); + } + else + { + stack->functions= stack->next->functions; + stack->p_functions= stack->next->p_functions; + stack->keywords= stack->next->keywords; + stack->processes= stack->next->processes; + } } - if (*control) - _no_db_=0; /* We are using dbug after all */ - new_str = StrDup (control); - PushState (); - state=code_state(); - - scan = static_strtok (new_str, ':'); - for (; scan != NULL; scan = static_strtok ((char *)NULL, ':')) { - switch (*scan++) { + end= DbugStrTok(control); + while (1) + { + int c, sign= (*control == '+') ? 1 : (*control == '-') ? -1 : 0; + if (sign) control++; + if (!rel) sign=0; + c= *control++; + if (*control == ',') control++; + /* XXX when adding new cases here, don't forget _db_explain_ ! */ + switch (c) { case 'd': - _db_on_ = TRUE; - stack -> flags |= DEBUG_ON; - if (*scan++ == ',') { - stack -> keywords = ListParse (scan); + if (sign < 0 && control == end) + { + if (!is_shared(stack, keywords)) + FreeList(stack->keywords); + stack->keywords=NULL; + stack->flags &= ~DEBUG_ON; + break; } + if (rel && is_shared(stack, keywords)) + stack->keywords= ListCopy(stack->keywords); + if (sign < 0) + { + if (DEBUGGING) + stack->keywords= ListDel(stack->keywords, control, end); + break; + } + stack->keywords= ListAdd(stack->keywords, control, end); + stack->flags |= DEBUG_ON; break; case 'D': - stack -> delay = 0; - if (*scan++ == ',') { - temp = ListParse (scan); - stack -> delay = DelayArg (atoi (temp -> str)); - FreeList (temp); - } + stack->delay= atoi(control); break; case 'f': - if (*scan++ == ',') { - stack -> functions = ListParse (scan); + if (sign < 0 && control == end) + { + if (!is_shared(stack,functions)) + FreeList(stack->functions); + stack->functions=NULL; + break; } + if (rel && is_shared(stack,functions)) + stack->functions= ListCopy(stack->functions); + if (sign < 0) + stack->functions= ListDel(stack->functions, control, end); + else + stack->functions= ListAdd(stack->functions, control, end); break; case 'F': - stack -> flags |= FILE_ON; + if (sign < 0) + stack->flags &= ~FILE_ON; + else + stack->flags |= FILE_ON; break; case 'i': - stack -> flags |= PID_ON; + if (sign < 0) + stack->flags &= ~PID_ON; + else + stack->flags |= PID_ON; break; #ifndef THREAD case 'g': - _db_pon_ = TRUE; - if (OpenProfile(PROF_FILE)) + if (OpenProfile(cs, PROF_FILE)) { - stack -> flags |= PROFILE_ON; - if (*scan++ == ',') - stack -> p_functions = ListParse (scan); + stack->flags |= PROFILE_ON; + stack->p_functions= ListAdd(stack->p_functions, control, end); } break; #endif case 'L': - stack -> flags |= LINE_ON; + if (sign < 0) + stack->flags &= ~LINE_ON; + else + stack->flags |= LINE_ON; break; case 'n': - stack -> flags |= DEPTH_ON; + if (sign < 0) + stack->flags &= ~DEPTH_ON; + else + stack->flags |= DEPTH_ON; break; case 'N': - stack -> flags |= NUMBER_ON; + if (sign < 0) + stack->flags &= ~NUMBER_ON; + else + stack->flags |= NUMBER_ON; break; case 'A': case 'O': - stack -> flags |= FLUSH_ON_WRITE; + stack->flags |= FLUSH_ON_WRITE; + /* fall through */ case 'a': case 'o': - if (*scan++ == ',') { - temp = ListParse (scan); - DBUGOpenFile(temp -> str, (int) (scan[-2] == 'A' || scan[-2] == 'a')); - FreeList (temp); - } else { - DBUGOpenFile ("-",0); + if (sign < 0) + { + if (!is_shared(stack, out_file)) + DBUGCloseFile(cs, stack->out_file); + stack->flags &= ~FLUSH_ON_WRITE; + stack->out_file= stderr; + break; } + if (c == 'a' || c == 'A') + stack->flags |= OPEN_APPEND; + else + stack->flags &= ~OPEN_APPEND; + if (control != end) + DBUGOpenFile(cs, control, end, stack->flags & OPEN_APPEND); + else + DBUGOpenFile(cs, "-",0,0); break; case 'p': - if (*scan++ == ',') { - stack -> processes = ListParse (scan); + if (sign < 0 && control == end) + { + if (!is_shared(stack,processes)) + FreeList(stack->processes); + stack->processes=NULL; + break; } + if (rel && is_shared(stack, processes)) + stack->processes= ListCopy(stack->processes); + if (sign < 0) + stack->processes= ListDel(stack->processes, control, end); + else + stack->processes= ListAdd(stack->processes, control, end); break; case 'P': - stack -> flags |= PROCESS_ON; + if (sign < 0) + stack->flags &= ~PROCESS_ON; + else + stack->flags |= PROCESS_ON; break; case 'r': - stack->sub_level= state->level; + stack->sub_level= cs->level; break; case 't': - stack -> flags |= TRACE_ON; - if (*scan++ == ',') { - temp = ListParse (scan); - stack -> maxdepth = atoi (temp -> str); - FreeList (temp); + if (sign < 0) + { + if (control != end) + stack->maxdepth-= atoi(control); + else + stack->maxdepth= 0; } + else + { + if (control != end) + stack->maxdepth+= atoi(control); + else + stack->maxdepth= MAXDEPTH; + } + if (stack->maxdepth > 0) + stack->flags |= TRACE_ON; + else + stack->flags &= ~TRACE_ON; + break; + case 'T': + if (sign < 0) + stack->flags &= ~TIMESTAMP_ON; + else + stack->flags |= TIMESTAMP_ON; break; case 'S': - stack -> flags |= SANITY_CHECK_ON; + if (sign < 0) + stack->flags &= ~SANITY_CHECK_ON; + else + stack->flags |= SANITY_CHECK_ON; break; } + if (!*end) + break; + control=end+1; + end= DbugStrTok(control); } - free (new_str); } /* * FUNCTION * - * _db_pop_ pop the debug stack + * _db_set_ set current debugger settings + * + * SYNOPSIS + * + * VOID _db_set_(control) + * char *control; * * DESCRIPTION * - * Pops the debug stack, returning the debug state to its - * condition prior to the most recent _db_push_ invocation. - * Note that the pop will fail if it would remove the last - * valid state from the stack. This prevents user errors - * in the push/pop sequence from screwing up the debugger. - * Maybe there should be some kind of warning printed if the - * user tries to pop too many states. + * Given pointer to a debug control string in "control", + * parses the control string, and sets up a current debug + * settings. Pushes a new debug settings if the current is + * set to the initial debugger settings. + */ + +void _db_set_(CODE_STATE *cs, const char *control) +{ + get_code_state_or_return; + + if (cs->stack == &init_settings) + PushState(cs); + + DbugParse(cs, control); +} + + +/* + * FUNCTION + * + * _db_push_ push current debugger settings and set up new one + * + * SYNOPSIS + * + * VOID _db_push_(control) + * char *control; + * + * DESCRIPTION + * + * Given pointer to a debug control string in "control", pushes + * the current debug settings, parses the control string, and sets + * up a new debug settings with DbugParse() * */ -void _db_pop_ () +void _db_push_(const char *control) { - reg1 struct state *discard; - discard = stack; - if (discard != NULL && discard -> next_state != NULL) { - stack = discard -> next_state; - _db_fp_ = stack -> out_file; - _db_pfp_ = stack -> prof_file; - FreeState(discard); - if (!(stack->flags & DEBUG_ON)) - _db_on_=0; + CODE_STATE *cs=0; + get_code_state_or_return; + PushState(cs); + DbugParse(cs, control); +} + +/* + * FUNCTION + * + * _db_set_init_ set initial debugger settings + * + * SYNOPSIS + * + * VOID _db_set_init_(control) + * char *control; + * + * DESCRIPTION + * see _db_set_ + * + */ + +void _db_set_init_(const char *control) +{ + CODE_STATE tmp_cs; + bzero((uchar*) &tmp_cs, sizeof(tmp_cs)); + tmp_cs.stack= &init_settings; + DbugParse(&tmp_cs, control); +} + +/* + * FUNCTION + * + * _db_pop_ pop the debug stack + * + * DESCRIPTION + * + * Pops the debug stack, returning the debug settings to its + * condition prior to the most recent _db_push_ invocation. + * Note that the pop will fail if it would remove the last + * valid settings from the stack. This prevents user errors + * in the push/pop sequence from screwing up the debugger. + * Maybe there should be some kind of warning printed if the + * user tries to pop too many states. + * + */ + +void _db_pop_() +{ + struct settings *discard; + CODE_STATE *cs=0; + + get_code_state_or_return; + + discard= cs->stack; + if (discard->next != NULL) + { + cs->stack= discard->next; + FreeState(cs, discard, 1); + } +} + +/* + * FUNCTION + * + * _db_explain_ generates 'control' string for the current settings + * + * RETURN + * 0 - ok + * 1 - buffer too short, output truncated + * + */ + +/* helper macros */ +#define char_to_buf(C) do { \ + *buf++=(C); \ + if (buf >= end) goto overflow; \ + } while (0) +#define str_to_buf(S) do { \ + char_to_buf(','); \ + buf=strnmov(buf, (S), len+1); \ + if (buf >= end) goto overflow; \ + } while (0) +#define list_to_buf(l) do { \ + struct link *listp=(l); \ + while (listp) \ + { \ + str_to_buf(listp->str); \ + listp=listp->next_link; \ + } \ + } while (0) +#define int_to_buf(i) do { \ + char b[50]; \ + int10_to_str((i), b, 10); \ + str_to_buf(b); \ + } while (0) +#define colon_to_buf do { \ + if (buf != start) char_to_buf(':'); \ + } while(0) +#define op_int_to_buf(C, val, def) do { \ + if ((val) != (def)) \ + { \ + colon_to_buf; \ + char_to_buf((C)); \ + int_to_buf(val); \ + } \ + } while (0) +#define op_intf_to_buf(C, val, def, cond) do { \ + if ((cond)) \ + { \ + colon_to_buf; \ + char_to_buf((C)); \ + if ((val) != (def)) int_to_buf(val); \ + } \ + } while (0) +#define op_str_to_buf(C, val, cond) do { \ + if ((cond)) \ + { \ + char *s=(val); \ + colon_to_buf; \ + char_to_buf((C)); \ + if (*s) str_to_buf(s); \ + } \ + } while (0) +#define op_list_to_buf(C, val, cond) do { \ + if ((cond)) \ + { \ + colon_to_buf; \ + char_to_buf((C)); \ + list_to_buf(val); \ + } \ + } while (0) +#define op_bool_to_buf(C, cond) do { \ + if ((cond)) \ + { \ + colon_to_buf; \ + char_to_buf((C)); \ + } \ + } while (0) + +int _db_explain_ (CODE_STATE *cs, char *buf, size_t len) +{ + char *start=buf, *end=buf+len-4; + + get_code_state_or_return *buf=0; + + op_list_to_buf('d', cs->stack->keywords, DEBUGGING); + op_int_to_buf ('D', cs->stack->delay, 0); + op_list_to_buf('f', cs->stack->functions, cs->stack->functions); + op_bool_to_buf('F', cs->stack->flags & FILE_ON); + op_bool_to_buf('i', cs->stack->flags & PID_ON); + op_list_to_buf('g', cs->stack->p_functions, PROFILING); + op_bool_to_buf('L', cs->stack->flags & LINE_ON); + op_bool_to_buf('n', cs->stack->flags & DEPTH_ON); + op_bool_to_buf('N', cs->stack->flags & NUMBER_ON); + op_str_to_buf( + ((cs->stack->flags & FLUSH_ON_WRITE ? 0 : 32) | + (cs->stack->flags & OPEN_APPEND ? 'A' : 'O')), + cs->stack->name, cs->stack->out_file != stderr); + op_list_to_buf('p', cs->stack->processes, cs->stack->processes); + op_bool_to_buf('P', cs->stack->flags & PROCESS_ON); + op_bool_to_buf('r', cs->stack->sub_level != 0); + op_intf_to_buf('t', cs->stack->maxdepth, MAXDEPTH, TRACING); + op_bool_to_buf('T', cs->stack->flags & TIMESTAMP_ON); + op_bool_to_buf('S', cs->stack->flags & SANITY_CHECK_ON); + + *buf= '\0'; + return 0; + +overflow: + *end++= '.'; + *end++= '.'; + *end++= '.'; + *end= '\0'; + return 1; +} + +#undef char_to_buf +#undef str_to_buf +#undef list_to_buf +#undef int_to_buf +#undef colon_to_buf +#undef op_int_to_buf +#undef op_intf_to_buf +#undef op_str_to_buf +#undef op_list_to_buf +#undef op_bool_to_buf + +/* + * FUNCTION + * + * _db_explain_init_ explain initial debugger settings + * + * DESCRIPTION + * see _db_explain_ + */ + +int _db_explain_init_(char *buf, size_t len) +{ + CODE_STATE cs; + bzero((uchar*) &cs,sizeof(cs)); + cs.stack=&init_settings; + return _db_explain_(&cs, buf, len); +} + +/* + * FUNCTION + * + * _db_enter_ process entry point to user function + * + * SYNOPSIS + * + * VOID _db_enter_(_func_, _file_, _line_, + * _sfunc_, _sfile_, _slevel_, _sframep_) + * char *_func_; points to current function name + * char *_file_; points to current file name + * int _line_; called from source line number + * char **_sfunc_; save previous _func_ + * char **_sfile_; save previous _file_ + * int *_slevel_; save previous nesting level + * char ***_sframep_; save previous frame pointer + * + * DESCRIPTION + * + * Called at the beginning of each user function to tell + * the debugger that a new function has been entered. + * Note that the pointers to the previous user function + * name and previous user file name are stored on the + * caller's stack (this is why the ENTER macro must be + * the first "executable" code in a function, since it + * allocates these storage locations). The previous nesting + * level is also stored on the callers stack for internal + * self consistency checks. + * + * Also prints a trace line if tracing is enabled and + * increments the current function nesting depth. + * + * Note that this mechanism allows the debugger to know + * what the current user function is at all times, without + * maintaining an internal stack for the function names. + * + */ + +void _db_enter_(const char *_func_, const char *_file_, + uint _line_, const char **_sfunc_, const char **_sfile_, + uint *_slevel_, char ***_sframep_ __attribute__((unused))) +{ + int save_errno=errno; + CODE_STATE *cs=0; + get_code_state_or_return; + + *_sfunc_= cs->func; + *_sfile_= cs->file; + cs->func= _func_; + cs->file= _file_; + *_slevel_= ++cs->level; +#ifndef THREAD + *_sframep_= cs->framep; + cs->framep= (char **) _sframep_; + if (DoProfile(cs)) + { + long stackused; + if (*cs->framep == NULL) + stackused= 0; + else + { + stackused= ((long)(*cs->framep)) - ((long)(cs->framep)); + stackused= stackused > 0 ? stackused : -stackused; + } + (void) fprintf(cs->stack->prof_file, PROF_EFMT , Clock(), cs->func); +#ifdef AUTOS_REVERSE + (void) fprintf(cs->stack->prof_file, PROF_SFMT, cs->framep, stackused, *_sfunc_); +#else + (void) fprintf(cs->stack->prof_file, PROF_SFMT, (ulong) cs->framep, stackused, + cs->func); +#endif + (void) fflush(cs->stack->prof_file); + } +#endif + if (DoTrace(cs)) + { + if (!cs->locked) + pthread_mutex_lock(&THR_LOCK_dbug); + DoPrefix(cs, _line_); + Indent(cs, cs->level); + (void) fprintf(cs->stack->out_file, ">%s\n", cs->func); + dbug_flush(cs); /* This does a unlock */ + } +#ifdef SAFEMALLOC + if (cs->stack->flags & SANITY_CHECK_ON) + if (_sanity(_file_,_line_)) /* Check of safemalloc */ + cs->stack->flags &= ~SANITY_CHECK_ON; +#endif + errno=save_errno; +} + +/* + * FUNCTION + * + * _db_return_ process exit from user function + * + * SYNOPSIS + * + * VOID _db_return_(_line_, _sfunc_, _sfile_, _slevel_) + * int _line_; current source line number + * char **_sfunc_; where previous _func_ is to be retrieved + * char **_sfile_; where previous _file_ is to be retrieved + * int *_slevel_; where previous level was stashed + * + * DESCRIPTION + * + * Called just before user function executes an explicit or implicit + * return. Prints a trace line if trace is enabled, decrements + * the current nesting level, and restores the current function and + * file names from the defunct function's stack. + * + */ + +/* helper macro */ +void _db_return_(uint _line_, const char **_sfunc_, + const char **_sfile_, uint *_slevel_) +{ + int save_errno=errno; + CODE_STATE *cs=0; + get_code_state_or_return; + + if (cs->level != (int) *_slevel_) + { + if (!cs->locked) + pthread_mutex_lock(&THR_LOCK_dbug); + (void) fprintf(cs->stack->out_file, ERR_MISSING_RETURN, cs->process, + cs->func); + dbug_flush(cs); } else { - _db_on_=0; - } -} - - -/* - * FUNCTION - * - * _db_enter_ process entry point to user function - * - * SYNOPSIS - * - * VOID _db_enter_ (_func_, _file_, _line_, - * _sfunc_, _sfile_, _slevel_, _sframep_) - * char *_func_; points to current function name - * char *_file_; points to current file name - * int _line_; called from source line number - * char **_sfunc_; save previous _func_ - * char **_sfile_; save previous _file_ - * int *_slevel_; save previous nesting level - * char ***_sframep_; save previous frame pointer - * - * DESCRIPTION - * - * Called at the beginning of each user function to tell - * the debugger that a new function has been entered. - * Note that the pointers to the previous user function - * name and previous user file name are stored on the - * caller's stack (this is why the ENTER macro must be - * the first "executable" code in a function, since it - * allocates these storage locations). The previous nesting - * level is also stored on the callers stack for internal - * self consistency checks. - * - * Also prints a trace line if tracing is enabled and - * increments the current function nesting depth. - * - * Note that this mechanism allows the debugger to know - * what the current user function is at all times, without - * maintaining an internal stack for the function names. - * - */ - -void _db_enter_ ( -const char *_func_, -const char *_file_, -uint _line_, -const char **_sfunc_, -const char **_sfile_, -uint *_slevel_, -char ***_sframep_ __attribute__((unused))) -{ - reg1 CODE_STATE *state; - - if (!_no_db_) - { - int save_errno=errno; - /* - Sasha: the test below is so we could call functions with DBUG_ENTER - before my_thread_init(). I needed this because I suspected corruption - of a block allocated by my_thread_init() itself, so I wanted to use - my_malloc()/my_free() in my_thread_init()/my_thread_end() - */ - if (!(state=code_state())) - return; - if (!init_done) - _db_push_ (_DBUG_START_CONDITION_); - - *_sfunc_ = state->func; - *_sfile_ = state->file; - state->func =(char*) _func_; - state->file = (char*) _file_; /* BaseName takes time !! */ - *_slevel_ = ++state->level; -#ifndef THREAD - *_sframep_ = state->framep; - state->framep = (char **) _sframep_; - if (DoProfile ()) - { - long stackused; - if (*state->framep == NULL) - { - stackused = 0; - } - else - { - stackused = ((long)(*state->framep)) - ((long)(state->framep)); - stackused = stackused > 0 ? stackused : -stackused; - } - (void) fprintf (_db_pfp_, PROF_EFMT , Clock (), state->func); -#ifdef AUTOS_REVERSE - (void) fprintf (_db_pfp_, PROF_SFMT, state->framep, stackused, *_sfunc_); -#else - (void) fprintf (_db_pfp_, PROF_SFMT, (ulong) state->framep, stackused, - state->func); -#endif - (void) fflush (_db_pfp_); - } -#endif - if (DoTrace(state)) - { - if (!state->locked) - pthread_mutex_lock(&THR_LOCK_dbug); - DoPrefix (_line_); - Indent (state -> level); - (void) fprintf (_db_fp_, ">%s\n", state->func); - dbug_flush (state); /* This does a unlock */ - } #ifdef SAFEMALLOC - if (stack->flags & SANITY_CHECK_ON && !state->disable_output) - if (_sanity(_file_,_line_)) /* Check of safemalloc */ - stack -> flags &= ~SANITY_CHECK_ON; -#endif - errno=save_errno; - } -} - -/* - * FUNCTION - * - * _db_return_ process exit from user function - * - * SYNOPSIS - * - * VOID _db_return_ (_line_, _sfunc_, _sfile_, _slevel_) - * int _line_; current source line number - * char **_sfunc_; where previous _func_ is to be retrieved - * char **_sfile_; where previous _file_ is to be retrieved - * int *_slevel_; where previous level was stashed - * - * DESCRIPTION - * - * Called just before user function executes an explicit or implicit - * return. Prints a trace line if trace is enabled, decrements - * the current nesting level, and restores the current function and - * file names from the defunct function's stack. - * - */ - -void _db_return_ ( -uint _line_, -const char **_sfunc_, -const char **_sfile_, -uint *_slevel_) -{ - CODE_STATE *state; - - if (!_no_db_) - { - int save_errno=errno; - if (!(state=code_state())) - return; - if (!init_done) - _db_push_ (""); - if (stack->flags & (TRACE_ON | DEBUG_ON | PROFILE_ON)) + if (cs->stack->flags & SANITY_CHECK_ON) { - if (!state->locked) - pthread_mutex_lock(&THR_LOCK_dbug); - if (state->level != (int) *_slevel_) - (void) fprintf (_db_fp_, ERR_MISSING_RETURN, _db_process_, - state->func); - else - { -#ifdef SAFEMALLOC - if (stack->flags & SANITY_CHECK_ON && !state->disable_output) - { - if (_sanity(*_sfile_,_line_)) - stack->flags &= ~SANITY_CHECK_ON; - } -#endif -#ifndef THREAD - if (DoProfile ()) - (void) fprintf (_db_pfp_, PROF_XFMT, Clock(), state->func); -#endif - if (DoTrace (state)) - { - DoPrefix (_line_); - Indent (state->level); - (void) fprintf (_db_fp_, "<%s\n", state->func); - } - } - dbug_flush(state); + if (_sanity(*_sfile_,_line_)) + cs->stack->flags &= ~SANITY_CHECK_ON; } - state->level = *_slevel_-1; - state->func = *_sfunc_; - state->file = *_sfile_; -#ifndef THREAD - if (state->framep != NULL) - state->framep = (char **) *state->framep; #endif - errno=save_errno; +#ifndef THREAD + if (DoProfile(cs)) + (void) fprintf(cs->stack->prof_file, PROF_XFMT, Clock(), cs->func); +#endif + if (DoTrace(cs)) + { + if (!cs->locked) + pthread_mutex_lock(&THR_LOCK_dbug); + DoPrefix(cs, _line_); + Indent(cs, cs->level); + (void) fprintf(cs->stack->out_file, "<%s\n", cs->func); + dbug_flush(cs); + } } + cs->level= *_slevel_-1; + cs->func= *_sfunc_; + cs->file= *_sfile_; +#ifndef THREAD + if (cs->framep != NULL) + cs->framep= (char **) *cs->framep; +#endif + errno=save_errno; } /* * FUNCTION * - * _db_pargs_ log arguments for subsequent use by _db_doprnt_() + * _db_pargs_ log arguments for subsequent use by _db_doprnt_() * * SYNOPSIS * - * VOID _db_pargs_ (_line_, keyword) - * int _line_; - * char *keyword; + * VOID _db_pargs_(_line_, keyword) + * int _line_; + * char *keyword; * * DESCRIPTION * - * The new universal printing macro DBUG_PRINT, which replaces - * all forms of the DBUG_N macros, needs two calls to runtime - * support routines. The first, this function, remembers arguments - * that are used by the subsequent call to _db_doprnt_(). + * The new universal printing macro DBUG_PRINT, which replaces + * all forms of the DBUG_N macros, needs two calls to runtime + * support routines. The first, this function, remembers arguments + * that are used by the subsequent call to _db_doprnt_(). * */ -void _db_pargs_ ( -uint _line_, -const char *keyword) +void _db_pargs_(uint _line_, const char *keyword) { - CODE_STATE *state=code_state(); - /* Sasha: pre-my_thread_init() safety */ - if (!state) - return; - state->u_line = _line_; - state->u_keyword = (char*) keyword; + CODE_STATE *cs=0; + get_code_state_or_return; + cs->u_line= _line_; + cs->u_keyword= keyword; } /* * FUNCTION * - * _db_doprnt_ handle print of debug lines + * _db_doprnt_ handle print of debug lines * * SYNOPSIS * - * VOID _db_doprnt_ (format, va_alist) - * char *format; - * va_dcl; + * VOID _db_doprnt_(format, va_alist) + * char *format; + * va_dcl; * * DESCRIPTION * - * When invoked via one of the DBUG macros, tests the current keyword - * set by calling _db_pargs_() to see if that macro has been selected - * for processing via the debugger control string, and if so, handles - * printing of the arguments via the format string. The line number - * of the DBUG macro in the source is found in u_line. + * When invoked via one of the DBUG macros, tests the current keyword + * set by calling _db_pargs_() to see if that macro has been selected + * for processing via the debugger control string, and if so, handles + * printing of the arguments via the format string. The line number + * of the DBUG macro in the source is found in u_line. * - * Note that the format string SHOULD NOT include a terminating - * newline, this is supplied automatically. + * Note that the format string SHOULD NOT include a terminating + * newline, this is supplied automatically. * */ #include -void _db_doprnt_ (const char *format,...) +void _db_doprnt_(const char *format,...) { va_list args; - CODE_STATE *state; - /* Sasha: pre-my_thread_init() safety */ - if (!(state=code_state())) - return; + + CODE_STATE *cs=0; + get_code_state_or_return; va_start(args,format); - if (_db_keyword_ (state->u_keyword)) { + if (_db_keyword_(cs, cs->u_keyword)) + { int save_errno=errno; - if (!state->locked) + if (!cs->locked) pthread_mutex_lock(&THR_LOCK_dbug); - DoPrefix (state->u_line); - if (TRACING) { - Indent (state->level + 1); - } else { - (void) fprintf (_db_fp_, "%s: ", state->func); - } - (void) fprintf (_db_fp_, "%s: ", state->u_keyword); - (void) vfprintf (_db_fp_, format, args); - (void) fputc('\n',_db_fp_); - dbug_flush(state); + DoPrefix(cs, cs->u_line); + if (TRACING) + Indent(cs, cs->level + 1); + else + (void) fprintf(cs->stack->out_file, "%s: ", cs->func); + (void) fprintf(cs->stack->out_file, "%s: ", cs->u_keyword); + (void) vfprintf(cs->stack->out_file, format, args); + (void) fputc('\n',cs->stack->out_file); + dbug_flush(cs); errno=save_errno; } va_end(args); @@ -928,46 +1174,43 @@ void _db_doprnt_ (const char *format,...) * * SYNOPSIS * - * void _db_dump_ (_line_,keyword,memory,length) - * int _line_; current source line number - * char *keyword; - * char *memory; Memory to print - * int length; Bytes to print + * void _db_dump_(_line_,keyword,memory,length) + * int _line_; current source line number + * char *keyword; + * char *memory; Memory to print + * int length; Bytes to print * * DESCRIPTION * Dump N characters in a binary array. * Is used to examine corrputed memory or arrays. */ -void _db_dump_( -uint _line_, -const char *keyword, -const char *memory, -uint length) +void _db_dump_(uint _line_, const char *keyword, + const unsigned char *memory, size_t length) { int pos; char dbuff[90]; - CODE_STATE *state; - if (!(state=code_state())) - return; - if (_db_keyword_ ((char*) keyword)) + CODE_STATE *cs=0; + get_code_state_or_return; + + if (_db_keyword_(cs, keyword)) { - if (!state->locked) + if (!cs->locked) pthread_mutex_lock(&THR_LOCK_dbug); - DoPrefix (_line_); + DoPrefix(cs, _line_); if (TRACING) { - Indent (state->level + 1); - pos= min(max(state->level-stack->sub_level,0)*INDENT,80); + Indent(cs, cs->level + 1); + pos= min(max(cs->level-cs->stack->sub_level,0)*INDENT,80); } else { - fprintf(_db_fp_, "%s: ", state->func); + fprintf(cs->stack->out_file, "%s: ", cs->func); } - sprintf(dbuff,"%s: Memory: 0x%lx Bytes: (%d)\n", - keyword,(ulong) memory, length); - (void) fputs(dbuff,_db_fp_); + sprintf(dbuff,"%s: Memory: 0x%lx Bytes: (%ld)\n", + keyword, (ulong) memory, (long) length); + (void) fputs(dbuff,cs->stack->out_file); pos=0; while (length-- > 0) @@ -975,176 +1218,231 @@ uint length) uint tmp= *((unsigned char*) memory++); if ((pos+=3) >= 80) { - fputc('\n',_db_fp_); - pos=3; + fputc('\n',cs->stack->out_file); + pos=3; } - fputc(_dig_vec_upper[((tmp >> 4) & 15)], _db_fp_); - fputc(_dig_vec_upper[tmp & 15], _db_fp_); - fputc(' ',_db_fp_); + fputc(_dig_vec_upper[((tmp >> 4) & 15)], cs->stack->out_file); + fputc(_dig_vec_upper[tmp & 15], cs->stack->out_file); + fputc(' ',cs->stack->out_file); } - (void) fputc('\n',_db_fp_); - dbug_flush(state); + (void) fputc('\n',cs->stack->out_file); + dbug_flush(cs); } } -/* - Enable/Disable output for this thread - - SYNOPSIS - _db_output_() - flag 1 = enable output, 0 = disable_output - -*/ - -void _db_output_(uint flag) -{ - CODE_STATE *state; - if (!(state=code_state())) - return; - state->disable_output= !flag; -} - - /* * FUNCTION * - * ListParse parse list of modifiers in debug control string + * ListAdd add to the list modifiers from debug control string * * SYNOPSIS * - * static struct link *ListParse (ctlp) - * char *ctlp; + * static struct link *ListAdd(listp, ctlp, end) + * struct link *listp; + * char *ctlp; + * char *end; * * DESCRIPTION * - * Given pointer to a comma separated list of strings in "cltp", - * parses the list, building a list and returning a pointer to it. - * The original comma separated list is destroyed in the process of - * building the linked list, thus it had better be a duplicate - * if it is important. + * Given pointer to a comma separated list of strings in "cltp", + * parses the list, and adds it to listp, returning a pointer + * to the new list * - * Note that since each link is added at the head of the list, - * the final list will be in "reverse order", which is not - * significant for our usage here. + * Note that since each link is added at the head of the list, + * the final list will be in "reverse order", which is not + * significant for our usage here. * */ -static struct link *ListParse ( -char *ctlp) +static struct link *ListAdd(struct link *head, + const char *ctlp, const char *end) { - REGISTER char *start; - REGISTER struct link *new_malloc; - REGISTER struct link *head; + const char *start; + struct link *new_malloc; + int len; - head = NULL; - while (*ctlp != EOS) { - start = ctlp; - while (*ctlp != EOS && *ctlp != ',') { + while (ctlp < end) + { + start= ctlp; + while (ctlp < end && *ctlp != ',') ctlp++; - } - if (*ctlp == ',') { - *ctlp++ = EOS; - } - new_malloc = (struct link *) DbugMalloc (sizeof (struct link)); - new_malloc -> str = StrDup (start); - new_malloc -> next_link = head; - head = new_malloc; + len=ctlp-start; + new_malloc= (struct link *) DbugMalloc(sizeof(struct link)+len); + memcpy(new_malloc->str, start, len); + new_malloc->str[len]=0; + new_malloc->next_link= head; + head= new_malloc; + ctlp++; } - return (head); + return head; } /* * FUNCTION * - * InList test a given string for member of a given list + * ListDel remove from the list modifiers in debug control string * * SYNOPSIS * - * static BOOLEAN InList (linkp, cp) - * struct link *linkp; - * char *cp; + * static struct link *ListDel(listp, ctlp, end) + * struct link *listp; + * char *ctlp; + * char *end; * * DESCRIPTION * - * Tests the string pointed to by "cp" to determine if it is in - * the list pointed to by "linkp". Linkp points to the first - * link in the list. If linkp is NULL then the string is treated - * as if it is in the list (I.E all strings are in the null list). - * This may seem rather strange at first but leads to the desired - * operation if no list is given. The net effect is that all - * strings will be accepted when there is no list, and when there - * is a list, only those strings in the list will be accepted. + * Given pointer to a comma separated list of strings in "cltp", + * parses the list, and removes these strings from the listp, + * returning a pointer to the new list. * */ -static BOOLEAN InList ( -struct link *linkp, -const char *cp) +static struct link *ListDel(struct link *head, + const char *ctlp, const char *end) +{ + const char *start; + struct link **cur; + int len; + + while (ctlp < end) + { + start= ctlp; + while (ctlp < end && *ctlp != ',') + ctlp++; + len=ctlp-start; + cur=&head; + do + { + while (*cur && !strncmp((*cur)->str, start, len)) + { + struct link *delme=*cur; + *cur=(*cur)->next_link; + free((void*) delme); + } + } while (*cur && *(cur=&((*cur)->next_link))); + } + return head; +} + +/* + * FUNCTION + * + * ListCopy make a copy of the list + * + * SYNOPSIS + * + * static struct link *ListCopy(orig) + * struct link *orig; + * + * DESCRIPTION + * + * Given pointer to list, which contains a copy of every element from + * the original list. + * + * the orig pointer can be NULL + * + * Note that since each link is added at the head of the list, + * the final list will be in "reverse order", which is not + * significant for our usage here. + * + */ + +static struct link *ListCopy(struct link *orig) +{ + struct link *new_malloc; + struct link *head; + int len; + + head= NULL; + while (orig != NULL) + { + len= strlen(orig->str); + new_malloc= (struct link *) DbugMalloc(sizeof(struct link)+len); + memcpy(new_malloc->str, orig->str, len); + new_malloc->str[len]= 0; + new_malloc->next_link= head; + head= new_malloc; + orig= orig->next_link; + } + return head; +} + +/* + * FUNCTION + * + * InList test a given string for member of a given list + * + * SYNOPSIS + * + * static BOOLEAN InList(linkp, cp) + * struct link *linkp; + * char *cp; + * + * DESCRIPTION + * + * Tests the string pointed to by "cp" to determine if it is in + * the list pointed to by "linkp". Linkp points to the first + * link in the list. If linkp is NULL then the string is treated + * as if it is in the list (I.E all strings are in the null list). + * This may seem rather strange at first but leads to the desired + * operation if no list is given. The net effect is that all + * strings will be accepted when there is no list, and when there + * is a list, only those strings in the list will be accepted. + * + */ + +static BOOLEAN InList(struct link *linkp, const char *cp) { REGISTER struct link *scan; REGISTER BOOLEAN result; - if (linkp == NULL) { - result = TRUE; - } else { - result = FALSE; - for (scan = linkp; scan != NULL; scan = scan -> next_link) { - if (STREQ (scan -> str, cp)) { - result = TRUE; - break; + if (linkp == NULL) + result= TRUE; + else + { + result= FALSE; + for (scan= linkp; scan != NULL; scan= scan->next_link) + { + if (!strcmp(scan->str, cp)) + { + result= TRUE; + break; } } } - return (result); + return result; } /* * FUNCTION * - * PushState push current state onto stack and set up new one + * PushState push current settings onto stack and set up new one * * SYNOPSIS * - * static VOID PushState () + * static VOID PushState() * * DESCRIPTION * - * Pushes the current state on the state stack, and initializes - * a new state. The only parameter inherited from the previous - * state is the function nesting level. This action can be - * inhibited if desired, via the "r" flag. + * Pushes the current settings on the settings stack, and creates + * a new settings. The new settings is NOT initialized * - * The state stack is a linked list of states, with the new - * state added at the head. This allows the stack to grow - * to the limits of memory if necessary. + * The settings stack is a linked list of settings, with the new + * settings added at the head. This allows the stack to grow + * to the limits of memory if necessary. * */ -static void PushState () +static void PushState(CODE_STATE *cs) { - REGISTER struct state *new_malloc; + struct settings *new_malloc; - if (!init_done) - { - init_dbug_state(); - init_done=TRUE; - } - (void) code_state(); /* Alloc memory */ - new_malloc = (struct state *) DbugMalloc(sizeof (struct state)); - new_malloc -> flags = 0; - new_malloc -> delay = 0; - new_malloc -> maxdepth = MAXDEPTH; - new_malloc -> sub_level=0; - new_malloc -> out_file = stderr; - new_malloc -> prof_file = (FILE*) 0; - new_malloc -> functions = NULL; - new_malloc -> p_functions = NULL; - new_malloc -> keywords = NULL; - new_malloc -> processes = NULL; - new_malloc -> next_state = stack; - stack=new_malloc; + new_malloc= (struct settings *) DbugMalloc(sizeof(struct settings)); + new_malloc->next= cs->stack; + new_malloc->out_file= NULL; + cs->stack= new_malloc; } /* @@ -1156,32 +1454,31 @@ static void PushState () * * static void FreeState (state) * struct state *state; + * int free_state; * * DESCRIPTION * * Deallocates the memory allocated for various information in a - * state. + * state. If free_state is set, also free 'state' * */ -static void FreeState ( -struct state *state) +static void FreeState(CODE_STATE *cs, struct settings *state, int free_state) { - if (state -> keywords != NULL) { - FreeList (state -> keywords); - } - if (state -> functions != NULL) { - FreeList (state -> functions); - } - if (state -> processes != NULL) { - FreeList (state -> processes); - } - if (state -> p_functions != NULL) { - FreeList (state -> p_functions); - } - CloseFile (state -> out_file); - if (state -> prof_file) - CloseFile (state -> prof_file); - free ((char *) state); + if (!is_shared(state, keywords)) + FreeList(state->keywords); + if (!is_shared(state, functions)) + FreeList(state->functions); + if (!is_shared(state, processes)) + FreeList(state->processes); + if (!is_shared(state, p_functions)) + FreeList(state->p_functions); + if (!is_shared(state, out_file)) + DBUGCloseFile(cs, state->out_file); + (void) fflush(cs->stack->out_file); + if (state->prof_file) + DBUGCloseFile(cs, state->prof_file); + if (free_state) + free((void*) state); } @@ -1202,85 +1499,104 @@ struct state *state) * To be called at the very end of the program. * */ -void _db_end_ () +void _db_end_() { - reg1 struct state *discard; - while((discard= stack) != NULL) { - stack= discard -> next_state; - FreeState (discard); + struct settings *discard; + static struct settings tmp; + CODE_STATE *cs=0; + + get_code_state_or_return; + + while ((discard= cs->stack)) + { + if (discard == &init_settings) + break; + cs->stack= discard->next; + FreeState(cs, discard, 1); } - _db_on_=0; + tmp= init_settings; + + /* Use mutex lock to make it less likely anyone access out_file */ + pthread_mutex_lock(&THR_LOCK_dbug); + init_settings.flags= OPEN_APPEND; + init_settings.out_file= stderr; + init_settings.prof_file= stderr; + init_settings.maxdepth= 0; + init_settings.delay= 0; + init_settings.sub_level= 0; + init_settings.functions= 0; + init_settings.p_functions= 0; + init_settings.keywords= 0; + init_settings.processes= 0; + pthread_mutex_unlock(&THR_LOCK_dbug); + FreeState(cs, &tmp, 0); } /* * FUNCTION * - * DoTrace check to see if tracing is current enabled + * DoTrace check to see if tracing is current enabled * * SYNOPSIS * - * static BOOLEAN DoTrace (stack) + * static BOOLEAN DoTrace(stack) * * DESCRIPTION * - * Checks to see if tracing is enabled based on whether the - * user has specified tracing, the maximum trace depth has - * not yet been reached, the current function is selected, - * and the current process is selected. Returns TRUE if - * tracing is enabled, FALSE otherwise. + * Checks to see if tracing is enabled based on whether the + * user has specified tracing, the maximum trace depth has + * not yet been reached, the current function is selected, + * and the current process is selected. Returns TRUE if + * tracing is enabled, FALSE otherwise. * */ -static BOOLEAN DoTrace (CODE_STATE *state) +static BOOLEAN DoTrace(CODE_STATE *cs) { - reg2 BOOLEAN trace=FALSE; - - if (TRACING && !state->disable_output && - state->level <= stack -> maxdepth && - InList (stack -> functions, state->func) && - InList (stack -> processes, _db_process_)) - trace = TRUE; - return (trace); + return (TRACING && cs->level <= cs->stack->maxdepth && + InList(cs->stack->functions, cs->func) && + InList(cs->stack->processes, cs->process)); } /* * FUNCTION * - * DoProfile check to see if profiling is current enabled + * DoProfile check to see if profiling is current enabled * * SYNOPSIS * - * static BOOLEAN DoProfile () + * static BOOLEAN DoProfile() * * DESCRIPTION * - * Checks to see if profiling is enabled based on whether the - * user has specified profiling, the maximum trace depth has - * not yet been reached, the current function is selected, - * and the current process is selected. Returns TRUE if - * profiling is enabled, FALSE otherwise. + * Checks to see if profiling is enabled based on whether the + * user has specified profiling, the maximum trace depth has + * not yet been reached, the current function is selected, + * and the current process is selected. Returns TRUE if + * profiling is enabled, FALSE otherwise. * */ #ifndef THREAD -static BOOLEAN DoProfile () +static BOOLEAN DoProfile(CODE_STATE *cs) { - REGISTER BOOLEAN profile; - CODE_STATE *state; - state=code_state(); - - profile = FALSE; - if (PROFILING && !state->disable_output && - state->level <= stack -> maxdepth && - InList (stack -> p_functions, state->func) && - InList (stack -> processes, _db_process_)) - profile = TRUE; - return (profile); + return PROFILING && + cs->level <= cs->stack->maxdepth && + InList(cs->stack->p_functions, cs->func) && + InList(cs->stack->processes, cs->process); } #endif +FILE *_db_fp_(void) +{ + CODE_STATE *cs=0; + get_code_state_or_return NULL; + return cs->stack->out_file; +} + + /* * FUNCTION * @@ -1288,7 +1604,7 @@ static BOOLEAN DoProfile () * * SYNOPSIS * - * BOOLEAN _db_strict_keyword_ (keyword) + * BOOLEAN _db_strict_keyword_(keyword) * char *keyword; * * DESCRIPTION @@ -1301,93 +1617,83 @@ static BOOLEAN DoProfile () * */ -BOOLEAN _db_strict_keyword_ ( -const char *keyword) +BOOLEAN _db_strict_keyword_(const char *keyword) { - if (stack -> keywords == NULL) + CODE_STATE *cs=0; + get_code_state_or_return FALSE; + if (!DEBUGGING || cs->stack->keywords == NULL) return FALSE; - return _db_keyword_ (keyword); + return _db_keyword_(cs, keyword); } /* * FUNCTION * - * _db_keyword_ test keyword for member of keyword list + * _db_keyword_ test keyword for member of keyword list * * SYNOPSIS * - * BOOLEAN _db_keyword_ (keyword) - * char *keyword; + * BOOLEAN _db_keyword_(keyword) + * char *keyword; * * DESCRIPTION * - * Test a keyword to determine if it is in the currently active - * keyword list. As with the function list, a keyword is accepted - * if the list is null, otherwise it must match one of the list - * members. When debugging is not on, no keywords are accepted. - * After the maximum trace level is exceeded, no keywords are - * accepted (this behavior subject to change). Additionally, - * the current function and process must be accepted based on - * their respective lists. + * Test a keyword to determine if it is in the currently active + * keyword list. As with the function list, a keyword is accepted + * if the list is null, otherwise it must match one of the list + * members. When debugging is not on, no keywords are accepted. + * After the maximum trace level is exceeded, no keywords are + * accepted (this behavior subject to change). Additionally, + * the current function and process must be accepted based on + * their respective lists. * - * Returns TRUE if keyword accepted, FALSE otherwise. + * Returns TRUE if keyword accepted, FALSE otherwise. * */ -BOOLEAN _db_keyword_ ( -const char *keyword) +BOOLEAN _db_keyword_(CODE_STATE *cs, const char *keyword) { - REGISTER BOOLEAN result; - CODE_STATE *state; + get_code_state_or_return FALSE; - if (!init_done) - _db_push_ (""); - /* Sasha: pre-my_thread_init() safety */ - if (!(state=code_state())) - return FALSE; - result = FALSE; - if (DEBUGGING && !state->disable_output && - state->level <= stack -> maxdepth && - InList (stack -> functions, state->func) && - InList (stack -> keywords, keyword) && - InList (stack -> processes, _db_process_)) - result = TRUE; - return (result); + return (DEBUGGING && + (!TRACING || cs->level <= cs->stack->maxdepth) && + InList(cs->stack->functions, cs->func) && + InList(cs->stack->keywords, keyword) && + InList(cs->stack->processes, cs->process)); } /* * FUNCTION * - * Indent indent a line to the given indentation level + * Indent indent a line to the given indentation level * * SYNOPSIS * - * static VOID Indent (indent) - * int indent; + * static VOID Indent(indent) + * int indent; * * DESCRIPTION * - * Indent a line to the given level. Note that this is - * a simple minded but portable implementation. - * There are better ways. + * Indent a line to the given level. Note that this is + * a simple minded but portable implementation. + * There are better ways. * - * Also, the indent must be scaled by the compile time option - * of character positions per nesting level. + * Also, the indent must be scaled by the compile time option + * of character positions per nesting level. * */ -static void Indent ( -int indent) +static void Indent(CODE_STATE *cs, int indent) { REGISTER int count; - indent= max(indent-1-stack->sub_level,0)*INDENT; - for (count = 0; count < indent ; count++) + indent= max(indent-1-cs->stack->sub_level,0)*INDENT; + for (count= 0; count < indent ; count++) { if ((count % INDENT) == 0) - fputc('|',_db_fp_); + fputc('|',cs->stack->out_file); else - fputc(' ',_db_fp_); + fputc(' ',cs->stack->out_file); } } @@ -1395,32 +1701,29 @@ int indent) /* * FUNCTION * - * FreeList free all memory associated with a linked list + * FreeList free all memory associated with a linked list * * SYNOPSIS * - * static VOID FreeList (linkp) - * struct link *linkp; + * static VOID FreeList(linkp) + * struct link *linkp; * * DESCRIPTION * - * Given pointer to the head of a linked list, frees all - * memory held by the list and the members of the list. + * Given pointer to the head of a linked list, frees all + * memory held by the list and the members of the list. * */ -static void FreeList ( -struct link *linkp) +static void FreeList(struct link *linkp) { REGISTER struct link *old; - while (linkp != NULL) { - old = linkp; - linkp = linkp -> next_link; - if (old -> str != NULL) { - free (old -> str); - } - free ((char *) old); + while (linkp != NULL) + { + old= linkp; + linkp= linkp->next_link; + free((void*) old); } } @@ -1428,139 +1731,140 @@ struct link *linkp) /* * FUNCTION * - * StrDup make a duplicate of a string in new memory + * DoPrefix print debugger line prefix prior to indentation * * SYNOPSIS * - * static char *StrDup (my_string) - * char *string; + * static VOID DoPrefix(_line_) + * int _line_; * * DESCRIPTION * - * Given pointer to a string, allocates sufficient memory to make - * a duplicate copy, and copies the string to the newly allocated - * memory. Failure to allocated sufficient memory is immediately - * fatal. + * Print prefix common to all debugger output lines, prior to + * doing indentation if necessary. Print such information as + * current process name, current source file name and line number, + * and current function nesting depth. * */ - -static char *StrDup (const char *str) +static void DoPrefix(CODE_STATE *cs, uint _line_) { - reg1 char *new_malloc; - new_malloc = DbugMalloc((size_t) strlen (str) + 1); - (void) strcpy (new_malloc, str); - return (new_malloc); -} - - -/* - * FUNCTION - * - * DoPrefix print debugger line prefix prior to indentation - * - * SYNOPSIS - * - * static VOID DoPrefix (_line_) - * int _line_; - * - * DESCRIPTION - * - * Print prefix common to all debugger output lines, prior to - * doing indentation if necessary. Print such information as - * current process name, current source file name and line number, - * and current function nesting depth. - * - */ - -static void DoPrefix ( -uint _line_) -{ - CODE_STATE *state; - state=code_state(); - - state->lineno++; - if (stack -> flags & PID_ON) { + cs->lineno++; + if (cs->stack->flags & PID_ON) + { #ifdef THREAD - (void) fprintf (_db_fp_, "%-7s: ", my_thread_name()); + (void) fprintf(cs->stack->out_file, "%-7s: ", my_thread_name()); #else - (void) fprintf (_db_fp_, "%5d: ", (int) getpid ()); + (void) fprintf(cs->stack->out_file, "%5d: ", (int) getpid()); #endif } - if (stack -> flags & NUMBER_ON) { - (void) fprintf (_db_fp_, "%5d: ", state->lineno); - } - if (stack -> flags & PROCESS_ON) { - (void) fprintf (_db_fp_, "%s: ", _db_process_); - } - if (stack -> flags & FILE_ON) { - (void) fprintf (_db_fp_, "%14s: ", BaseName(state->file)); - } - if (stack -> flags & LINE_ON) { - (void) fprintf (_db_fp_, "%5d: ", _line_); - } - if (stack -> flags & DEPTH_ON) { - (void) fprintf (_db_fp_, "%4d: ", state->level); + if (cs->stack->flags & NUMBER_ON) + (void) fprintf(cs->stack->out_file, "%5d: ", cs->lineno); + if (cs->stack->flags & TIMESTAMP_ON) + { +#ifdef __WIN__ + /* FIXME This doesn't give microseconds as in Unix case, and the resolution is + in system ticks, 10 ms intervals. See my_getsystime.c for high res */ + SYSTEMTIME loc_t; + GetLocalTime(&loc_t); + (void) fprintf (cs->stack->out_file, + /* "%04d-%02d-%02d " */ + "%02d:%02d:%02d.%06d ", + /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/ + loc_t.wHour, loc_t.wMinute, loc_t.wSecond, loc_t.wMilliseconds); +#else + struct timeval tv; + struct tm *tm_p; + if (gettimeofday(&tv, NULL) != -1) + { + if ((tm_p= localtime((const time_t *)&tv.tv_sec))) + { + (void) fprintf (cs->stack->out_file, + /* "%04d-%02d-%02d " */ + "%02d:%02d:%02d.%06d ", + /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/ + tm_p->tm_hour, tm_p->tm_min, tm_p->tm_sec, + (int) (tv.tv_usec)); + } + } +#endif } + if (cs->stack->flags & PROCESS_ON) + (void) fprintf(cs->stack->out_file, "%s: ", cs->process); + if (cs->stack->flags & FILE_ON) + (void) fprintf(cs->stack->out_file, "%14s: ", BaseName(cs->file)); + if (cs->stack->flags & LINE_ON) + (void) fprintf(cs->stack->out_file, "%5d: ", _line_); + if (cs->stack->flags & DEPTH_ON) + (void) fprintf(cs->stack->out_file, "%4d: ", cs->level); } /* * FUNCTION * - * DBUGOpenFile open new output stream for debugger output + * DBUGOpenFile open new output stream for debugger output * * SYNOPSIS * - * static VOID DBUGOpenFile (name) - * char *name; + * static VOID DBUGOpenFile(name) + * char *name; * * DESCRIPTION * - * Given name of a new file (or "-" for stdout) opens the file - * and sets the output stream to the new file. + * Given name of a new file (or "-" for stdout) opens the file + * and sets the output stream to the new file. * */ -static void DBUGOpenFile (const char *name,int append) +static void DBUGOpenFile(CODE_STATE *cs, + const char *name,const char *end,int append) { REGISTER FILE *fp; REGISTER BOOLEAN newfile; if (name != NULL) { - strmov(stack->name,name); - if (strcmp (name, "-") == 0) + if (end) { - _db_fp_ = stdout; - stack -> out_file = _db_fp_; - stack -> flags |= FLUSH_ON_WRITE; + int len=end-name; + memcpy(cs->stack->name, name, len); + cs->stack->name[len]=0; + } + else + strmov(cs->stack->name,name); + name=cs->stack->name; + if (strcmp(name, "-") == 0) + { + cs->stack->out_file= stdout; + cs->stack->flags |= FLUSH_ON_WRITE; + cs->stack->name[0]=0; } else { - if (!Writable((char*)name)) + if (!Writable(name)) { - (void) fprintf (stderr, ERR_OPEN, _db_process_, name); - perror (""); - fflush(stderr); + (void) fprintf(stderr, ERR_OPEN, cs->process, name); + perror(""); + fflush(stderr); } else { - newfile= !EXISTS (name); - if (!(fp = fopen(name, append ? "a+" : "w"))) - { - (void) fprintf (stderr, ERR_OPEN, _db_process_, name); - perror (""); - fflush(stderr); - } - else - { - _db_fp_ = fp; - stack -> out_file = fp; - if (newfile) { - ChangeOwner (name); - } - } + newfile= !EXISTS(name); + if (!(fp= fopen(name, append ? "a+" : "w"))) + { + (void) fprintf(stderr, ERR_OPEN, cs->process, name); + perror(""); + fflush(stderr); + } + else + { + cs->stack->out_file= fp; + if (newfile) + { + ChangeOwner(cs, name); + } + } } } } @@ -1570,59 +1874,56 @@ static void DBUGOpenFile (const char *name,int append) /* * FUNCTION * - * OpenProfile open new output stream for profiler output + * OpenProfile open new output stream for profiler output * * SYNOPSIS * - * static FILE *OpenProfile (name) - * char *name; + * static FILE *OpenProfile(name) + * char *name; * * DESCRIPTION * - * Given name of a new file, opens the file - * and sets the profiler output stream to the new file. + * Given name of a new file, opens the file + * and sets the profiler output stream to the new file. * - * It is currently unclear whether the prefered behavior is - * to truncate any existing file, or simply append to it. - * The latter behavior would be desirable for collecting - * accumulated runtime history over a number of separate - * runs. It might take some changes to the analyzer program - * though, and the notes that Binayak sent with the profiling - * diffs indicated that append was the normal mode, but this - * does not appear to agree with the actual code. I haven't - * investigated at this time [fnf; 24-Jul-87]. + * It is currently unclear whether the prefered behavior is + * to truncate any existing file, or simply append to it. + * The latter behavior would be desirable for collecting + * accumulated runtime history over a number of separate + * runs. It might take some changes to the analyzer program + * though, and the notes that Binayak sent with the profiling + * diffs indicated that append was the normal mode, but this + * does not appear to agree with the actual code. I haven't + * investigated at this time [fnf; 24-Jul-87]. */ #ifndef THREAD -static FILE *OpenProfile (const char *name) +static FILE *OpenProfile(CODE_STATE *cs, const char *name) { REGISTER FILE *fp; REGISTER BOOLEAN newfile; fp=0; - if (!Writable (name)) + if (!Writable(name)) { - (void) fprintf (_db_fp_, ERR_OPEN, _db_process_, name); - perror (""); - dbug_flush(0); - (void) Delay (stack -> delay); + (void) fprintf(cs->stack->out_file, ERR_OPEN, cs->process, name); + perror(""); + (void) Delay(cs->stack->delay); } else { - newfile= !EXISTS (name); - if (!(fp = fopen (name, "w"))) + newfile= !EXISTS(name); + if (!(fp= fopen(name, "w"))) { - (void) fprintf (_db_fp_, ERR_OPEN, _db_process_, name); - perror (""); - dbug_flush(0); + (void) fprintf(cs->stack->out_file, ERR_OPEN, cs->process, name); + perror(""); } else { - _db_pfp_ = fp; - stack -> prof_file = fp; + cs->stack->prof_file= fp; if (newfile) { - ChangeOwner (name); + ChangeOwner(cs, name); } } } @@ -1633,30 +1934,28 @@ static FILE *OpenProfile (const char *name) /* * FUNCTION * - * CloseFile close the debug output stream + * DBUGCloseFile close the debug output stream * * SYNOPSIS * - * static VOID CloseFile (fp) - * FILE *fp; + * static VOID DBUGCloseFile(fp) + * FILE *fp; * * DESCRIPTION * - * Closes the debug output stream unless it is standard output - * or standard error. + * Closes the debug output stream unless it is standard output + * or standard error. * */ -static void CloseFile ( -FILE *fp) +static void DBUGCloseFile(CODE_STATE *cs, FILE *fp) { - if (fp != stderr && fp != stdout) { - if (fclose (fp) == EOF) { - pthread_mutex_lock(&THR_LOCK_dbug); - (void) fprintf (_db_fp_, ERR_CLOSE, _db_process_); - perror (""); - dbug_flush(0); - } + if (fp != stderr && fp != stdout && fclose(fp) == EOF) + { + pthread_mutex_lock(&THR_LOCK_dbug); + (void) fprintf(cs->stack->out_file, ERR_CLOSE, cs->process); + perror(""); + dbug_flush(cs); } } @@ -1664,176 +1963,154 @@ FILE *fp) /* * FUNCTION * - * DbugExit print error message and exit + * DbugExit print error message and exit * * SYNOPSIS * - * static VOID DbugExit (why) - * char *why; + * static VOID DbugExit(why) + * char *why; * * DESCRIPTION * - * Prints error message using current process name, the reason for - * aborting (typically out of memory), and exits with status 1. - * This should probably be changed to use a status code - * defined in the user's debugger include file. + * Prints error message using current process name, the reason for + * aborting (typically out of memory), and exits with status 1. + * This should probably be changed to use a status code + * defined in the user's debugger include file. * */ -static void DbugExit (const char *why) +static void DbugExit(const char *why) { - (void) fprintf (stderr, ERR_ABORT, _db_process_, why); - (void) fflush (stderr); - exit (1); + CODE_STATE *cs=code_state(); + (void) fprintf(stderr, ERR_ABORT, cs ? cs->process : "(null)", why); + (void) fflush(stderr); + exit(1); } /* * FUNCTION * - * DbugMalloc allocate memory for debugger runtime support + * DbugMalloc allocate memory for debugger runtime support * * SYNOPSIS * - * static long *DbugMalloc (size) - * int size; + * static long *DbugMalloc(size) + * int size; * * DESCRIPTION * - * Allocate more memory for debugger runtime support functions. - * Failure to to allocate the requested number of bytes is - * immediately fatal to the current process. This may be - * rather unfriendly behavior. It might be better to simply - * print a warning message, freeze the current debugger state, - * and continue execution. + * Allocate more memory for debugger runtime support functions. + * Failure to to allocate the requested number of bytes is + * immediately fatal to the current process. This may be + * rather unfriendly behavior. It might be better to simply + * print a warning message, freeze the current debugger cs, + * and continue execution. * */ -static char *DbugMalloc (size_t size) +static char *DbugMalloc(size_t size) { register char *new_malloc; - if (!(new_malloc = (char*) malloc((size_t) size))) - DbugExit ("out of memory"); - return (new_malloc); + if (!(new_malloc= (char*) malloc(size))) + DbugExit("out of memory"); + return new_malloc; } /* - * As strtok but two separators in a row are changed to one - * separator (to allow directory-paths in dos). + * strtok lookalike - splits on ':', magically handles ::, :\ and :/ */ -static char *static_strtok (char *s1, pchar separator) +static const char *DbugStrTok(const char *s) { - static char *end = NULL; - reg1 char *rtnval,*cpy; - - rtnval = NULL; - if (s1 != NULL) - end = s1; - if (end != NULL && *end != EOS) - { - rtnval=cpy=end; - do - { - if ((*cpy++ = *end++) == separator) - { - if (*end != separator) - { - cpy--; /* Point at separator */ - break; - } - end++; /* Two separators in a row, skip one */ - } - } while (*end != EOS); - *cpy=EOS; /* Replace last separator */ - } - return (rtnval); + while (s[0] && (s[0] != ':' || + (s[1] == '\\' || s[1] == '/' || (s[1] == ':' && s++)))) + s++; + return s; } /* * FUNCTION * - * BaseName strip leading pathname components from name + * BaseName strip leading pathname components from name * * SYNOPSIS * - * static char *BaseName (pathname) - * char *pathname; + * static char *BaseName(pathname) + * char *pathname; * * DESCRIPTION * - * Given pointer to a complete pathname, locates the base file - * name at the end of the pathname and returns a pointer to - * it. + * Given pointer to a complete pathname, locates the base file + * name at the end of the pathname and returns a pointer to + * it. * */ -static char *BaseName (const char *pathname) +static const char *BaseName(const char *pathname) { register const char *base; - base = strrchr (pathname, FN_LIBCHAR); + base= strrchr(pathname, FN_LIBCHAR); if (base++ == NullS) - base = pathname; - return ((char*) base); + base= pathname; + return base; } /* * FUNCTION * - * Writable test to see if a pathname is writable/creatable + * Writable test to see if a pathname is writable/creatable * * SYNOPSIS * - * static BOOLEAN Writable (pathname) - * char *pathname; + * static BOOLEAN Writable(pathname) + * char *pathname; * * DESCRIPTION * - * Because the debugger might be linked in with a program that - * runs with the set-uid-bit (suid) set, we have to be careful - * about opening a user named file for debug output. This consists - * of checking the file for write access with the real user id, - * or checking the directory where the file will be created. + * Because the debugger might be linked in with a program that + * runs with the set-uid-bit (suid) set, we have to be careful + * about opening a user named file for debug output. This consists + * of checking the file for write access with the real user id, + * or checking the directory where the file will be created. * - * Returns TRUE if the user would normally be allowed write or - * create access to the named file. Returns FALSE otherwise. + * Returns TRUE if the user would normally be allowed write or + * create access to the named file. Returns FALSE otherwise. * */ #ifndef Writable -static BOOLEAN Writable ( -char *pathname) +static BOOLEAN Writable(const char *pathname) { REGISTER BOOLEAN granted; REGISTER char *lastslash; - granted = FALSE; - if (EXISTS (pathname)) { - if (WRITABLE (pathname)) { - granted = TRUE; - } - } else { - lastslash = strrchr (pathname, '/'); - if (lastslash != NULL) { - *lastslash = EOS; - } else { - pathname = "."; - } - if (WRITABLE (pathname)) { - granted = TRUE; - } - if (lastslash != NULL) { - *lastslash = '/'; - } + granted= FALSE; + if (EXISTS(pathname)) + { + if (WRITABLE(pathname)) + granted= TRUE; } - return (granted); + else + { + lastslash= strrchr(pathname, '/'); + if (lastslash != NULL) + *lastslash= '\0'; + else + pathname= "."; + if (WRITABLE(pathname)) + granted= TRUE; + if (lastslash != NULL) + *lastslash= '/'; + } + return granted; } #endif @@ -1841,35 +2118,34 @@ char *pathname) /* * FUNCTION * - * ChangeOwner change owner to real user for suid programs + * ChangeOwner change owner to real user for suid programs * * SYNOPSIS * - * static VOID ChangeOwner (pathname) + * static VOID ChangeOwner(pathname) * * DESCRIPTION * - * For unix systems, change the owner of the newly created debug - * file to the real owner. This is strictly for the benefit of - * programs that are running with the set-user-id bit set. + * For unix systems, change the owner of the newly created debug + * file to the real owner. This is strictly for the benefit of + * programs that are running with the set-user-id bit set. * - * Note that at this point, the fact that pathname represents - * a newly created file has already been established. If the - * program that the debugger is linked to is not running with - * the suid bit set, then this operation is redundant (but - * harmless). + * Note that at this point, the fact that pathname represents + * a newly created file has already been established. If the + * program that the debugger is linked to is not running with + * the suid bit set, then this operation is redundant (but + * harmless). * */ #ifndef ChangeOwner -static void ChangeOwner ( -char *pathname) +static void ChangeOwner(CODE_STATE *cs, char *pathname) { - if (chown (pathname, getuid (), getgid ()) == -1) + if (chown(pathname, getuid(), getgid()) == -1) { - (void) fprintf (stderr, ERR_CHOWN, _db_process_, pathname); - perror (""); - (void) fflush (stderr); + (void) fprintf(stderr, ERR_CHOWN, cs->process, pathname); + perror(""); + (void) fflush(stderr); } } #endif @@ -1878,205 +2154,130 @@ char *pathname) /* * FUNCTION * - * _db_setjmp_ save debugger environment + * _db_setjmp_ save debugger environment * * SYNOPSIS * - * VOID _db_setjmp_ () + * VOID _db_setjmp_() * * DESCRIPTION * - * Invoked as part of the user's DBUG_SETJMP macro to save - * the debugger environment in parallel with saving the user's - * environment. + * Invoked as part of the user's DBUG_SETJMP macro to save + * the debugger environment in parallel with saving the user's + * environment. * */ #ifdef HAVE_LONGJMP -EXPORT void _db_setjmp_ () +EXPORT void _db_setjmp_() { - CODE_STATE *state; - state=code_state(); + CODE_STATE *cs=0; + get_code_state_or_return; - state->jmplevel = state->level; - state->jmpfunc = state->func; - state->jmpfile = state->file; + cs->jmplevel= cs->level; + cs->jmpfunc= cs->func; + cs->jmpfile= cs->file; } /* * FUNCTION * - * _db_longjmp_ restore previously saved debugger environment + * _db_longjmp_ restore previously saved debugger environment * * SYNOPSIS * - * VOID _db_longjmp_ () + * VOID _db_longjmp_() * * DESCRIPTION * - * Invoked as part of the user's DBUG_LONGJMP macro to restore - * the debugger environment in parallel with restoring the user's - * previously saved environment. + * Invoked as part of the user's DBUG_LONGJMP macro to restore + * the debugger environment in parallel with restoring the user's + * previously saved environment. * */ -EXPORT void _db_longjmp_ () +EXPORT void _db_longjmp_() { - CODE_STATE *state; - state=code_state(); + CODE_STATE *cs=0; + get_code_state_or_return; - state->level = state->jmplevel; - if (state->jmpfunc) { - state->func = state->jmpfunc; - } - if (state->jmpfile) { - state->file = state->jmpfile; - } + cs->level= cs->jmplevel; + if (cs->jmpfunc) + cs->func= cs->jmpfunc; + if (cs->jmpfile) + cs->file= cs->jmpfile; } #endif /* * FUNCTION * - * DelayArg convert D flag argument to appropriate value + * perror perror simulation for systems that don't have it * * SYNOPSIS * - * static int DelayArg (value) - * int value; + * static VOID perror(s) + * char *s; * * DESCRIPTION * - * Converts delay argument, given in tenths of a second, to the - * appropriate numerical argument used by the system to delay - * that that many tenths of a second. For example, on the - * amiga, there is a system call "Delay()" which takes an - * argument in ticks (50 per second). On unix, the sleep - * command takes seconds. Thus a value of "10", for one - * second of delay, gets converted to 50 on the amiga, and 1 - * on unix. Other systems will need to use a timing loop. + * Perror produces a message on the standard error stream which + * provides more information about the library or system error + * just encountered. The argument string s is printed, followed + * by a ':', a blank, and then a message and a newline. * - */ - -#ifdef AMIGA -#define HZ (50) /* Probably in some header somewhere */ -#endif - -static int DelayArg ( -int value) -{ - uint delayarg = 0; - -#if (unix || xenix) - delayarg = value / 10; /* Delay is in seconds for sleep () */ -#endif -#ifdef AMIGA - delayarg = (HZ * value) / 10; /* Delay in ticks for Delay () */ -#endif - return (delayarg); -} - - -/* - * A dummy delay stub for systems that do not support delays. - * With a little work, this can be turned into a timing loop. - */ - -#if ! defined(Delay) && ! defined(AMIGA) -static int Delay ( -int ticks) -{ - return ticks; -} -#endif - - -/* - * FUNCTION + * An undocumented feature of the unix perror is that if the string + * 's' is a null string (NOT a NULL pointer!), then the ':' and + * blank are not printed. * - * perror perror simulation for systems that don't have it - * - * SYNOPSIS - * - * static VOID perror (s) - * char *s; - * - * DESCRIPTION - * - * Perror produces a message on the standard error stream which - * provides more information about the library or system error - * just encountered. The argument string s is printed, followed - * by a ':', a blank, and then a message and a newline. - * - * An undocumented feature of the unix perror is that if the string - * 's' is a null string (NOT a NULL pointer!), then the ':' and - * blank are not printed. - * - * This version just complains about an "unknown system error". + * This version just complains about an "unknown system error". * */ #ifndef HAVE_PERROR -static void perror (s) +static void perror(s) char *s; { - if (s && *s != EOS) { - (void) fprintf (stderr, "%s: ", s); - } - (void) fprintf (stderr, "\n"); + if (s && *s != '\0') + (void) fprintf(stderr, "%s: ", s); + (void) fprintf(stderr, "\n"); } #endif /* HAVE_PERROR */ - /* flush dbug-stream, free mutex lock & wait delay */ - /* This is because some systems (MSDOS!!) dosn't flush fileheader */ - /* and dbug-file isn't readable after a system crash !! */ + /* flush dbug-stream, free mutex lock & wait delay */ + /* This is because some systems (MSDOS!!) dosn't flush fileheader */ + /* and dbug-file isn't readable after a system crash !! */ -static void dbug_flush(CODE_STATE *state) +static void dbug_flush(CODE_STATE *cs) { #ifndef THREAD - if (stack->flags & FLUSH_ON_WRITE) + if (cs->stack->flags & FLUSH_ON_WRITE) #endif { -#if defined(MSDOS) || defined(__WIN__) - if (_db_fp_ != stdout && _db_fp_ != stderr) - { - if (!(freopen(stack->name,"a",_db_fp_))) - { - (void) fprintf(stderr, ERR_OPEN, _db_process_, stack->name); - fflush(stderr); - _db_fp_ = stdout; - stack -> out_file = _db_fp_; - stack -> flags|=FLUSH_ON_WRITE; - } - } - else -#endif - { - (void) fflush (_db_fp_); - if (stack->delay) - (void) Delay (stack->delay); - } + (void) fflush(cs->stack->out_file); + if (cs->stack->delay) + (void) Delay(cs->stack->delay); } - if (!state || !state->locked) + if (!cs->locked) pthread_mutex_unlock(&THR_LOCK_dbug); } /* dbug_flush */ -void _db_lock_file() +void _db_lock_file_() { - CODE_STATE *state; - state=code_state(); + CODE_STATE *cs=0; + get_code_state_or_return; pthread_mutex_lock(&THR_LOCK_dbug); - state->locked=1; + cs->locked=1; } -void _db_unlock_file() +void _db_unlock_file_() { - CODE_STATE *state; - state=code_state(); - state->locked=0; + CODE_STATE *cs=0; + get_code_state_or_return; + cs->locked=0; pthread_mutex_unlock(&THR_LOCK_dbug); } @@ -2098,57 +2299,59 @@ void _db_unlock_file() * far. */ -static unsigned long Clock () +static unsigned long Clock() { struct rusage ru; - (void) getrusage (RUSAGE_SELF, &ru); - return ((ru.ru_utime.tv_sec * 1000) + (ru.ru_utime.tv_usec / 1000)); + (void) getrusage(RUSAGE_SELF, &ru); + return ru.ru_utime.tv_sec*1000 + ru.ru_utime.tv_usec/1000; } -#elif defined(MSDOS) || defined(__WIN__) || defined(OS2) +#elif defined(MSDOS) || defined(__WIN__) static ulong Clock() { return clock()*(1000/CLOCKS_PER_SEC); } -#elif defined (amiga) +#elif defined(amiga) -struct DateStamp { /* Yes, this is a hack, but doing it right */ - long ds_Days; /* is incredibly ugly without splitting this */ - long ds_Minute; /* off into a separate file */ - long ds_Tick; +struct DateStamp { /* Yes, this is a hack, but doing it right */ + long ds_Days; /* is incredibly ugly without splitting this */ + long ds_Minute; /* off into a separate file */ + long ds_Tick; }; -static int first_clock = TRUE; +static int first_clock= TRUE; static struct DateStamp begin; static struct DateStamp elapsed; -static unsigned long Clock () +static unsigned long Clock() { register struct DateStamp *now; - register unsigned long millisec = 0; - extern VOID *AllocMem (); + register unsigned long millisec= 0; + extern VOID *AllocMem(); - now = (struct DateStamp *) AllocMem ((long) sizeof (struct DateStamp), 0L); - if (now != NULL) { - if (first_clock == TRUE) { - first_clock = FALSE; - (void) DateStamp (now); - begin = *now; - } - (void) DateStamp (now); - millisec = 24 * 3600 * (1000 / HZ) * (now -> ds_Days - begin.ds_Days); - millisec += 60 * (1000 / HZ) * (now -> ds_Minute - begin.ds_Minute); - millisec += (1000 / HZ) * (now -> ds_Tick - begin.ds_Tick); - (void) FreeMem (now, (long) sizeof (struct DateStamp)); + now= (struct DateStamp *) AllocMem((long) sizeof(struct DateStamp), 0L); + if (now != NULL) + { + if (first_clock == TRUE) + { + first_clock= FALSE; + (void) DateStamp(now); + begin= *now; + } + (void) DateStamp(now); + millisec= 24 * 3600 * (1000 / HZ) * (now->ds_Days - begin.ds_Days); + millisec += 60 * (1000 / HZ) * (now->ds_Minute - begin.ds_Minute); + millisec += (1000 / HZ) * (now->ds_Tick - begin.ds_Tick); + (void) FreeMem(now, (long) sizeof(struct DateStamp)); } - return (millisec); + return millisec; } #else -static unsigned long Clock () +static unsigned long Clock() { - return (0); + return 0; } #endif /* RUSAGE */ #endif /* THREADS */ @@ -2156,11 +2359,11 @@ static unsigned long Clock () #ifdef NO_VARARGS /* - * Fake vfprintf for systems that don't support it. If this - * doesn't work, you are probably SOL... + * Fake vfprintf for systems that don't support it. If this + * doesn't work, you are probably SOL... */ -static int vfprintf (stream, format, ap) +static int vfprintf(stream, format, ap) FILE *stream; char *format; va_list ap; @@ -2168,18 +2371,34 @@ va_list ap; int rtnval; ARGS_DCL; - ARG0 = va_arg (ap, ARGS_TYPE); - ARG1 = va_arg (ap, ARGS_TYPE); - ARG2 = va_arg (ap, ARGS_TYPE); - ARG3 = va_arg (ap, ARGS_TYPE); - ARG4 = va_arg (ap, ARGS_TYPE); - ARG5 = va_arg (ap, ARGS_TYPE); - ARG6 = va_arg (ap, ARGS_TYPE); - ARG7 = va_arg (ap, ARGS_TYPE); - ARG8 = va_arg (ap, ARGS_TYPE); - ARG9 = va_arg (ap, ARGS_TYPE); - rtnval = fprintf (stream, format, ARGS_LIST); - return (rtnval); + ARG0= va_arg(ap, ARGS_TYPE); + ARG1= va_arg(ap, ARGS_TYPE); + ARG2= va_arg(ap, ARGS_TYPE); + ARG3= va_arg(ap, ARGS_TYPE); + ARG4= va_arg(ap, ARGS_TYPE); + ARG5= va_arg(ap, ARGS_TYPE); + ARG6= va_arg(ap, ARGS_TYPE); + ARG7= va_arg(ap, ARGS_TYPE); + ARG8= va_arg(ap, ARGS_TYPE); + ARG9= va_arg(ap, ARGS_TYPE); + rtnval= fprintf(stream, format, ARGS_LIST); + return rtnval; } -#endif /* NO_VARARGS */ +#endif /* NO_VARARGS */ + +#else + +/* + * Dummy function, workaround for MySQL bug#14420 related + * build failure on a platform where linking with an empty + * archive fails. + * + * This block can be removed as soon as a fix for bug#14420 + * is implemented. + */ +int i_am_a_dummy_function() { + return 0; +} + +#endif diff --git a/dbug/factorial.c b/dbug/factorial.c index 56197aef29e..7b190ea8d8e 100644 --- a/dbug/factorial.c +++ b/dbug/factorial.c @@ -1,6 +1,13 @@ #ifdef DBUG_OFF /* We are testing dbug */ -#undef DBUG_OFF -#endif + +int factorial(register int value) { + if(value > 1) { + value *= factorial(value-1); + } + return value; +} + +#else #include @@ -15,3 +22,6 @@ register int value) DBUG_PRINT ("result", ("result is %d", value)); DBUG_RETURN (value); } + +#endif + diff --git a/dbug/user.r b/dbug/user.r index 198f88cf272..19de840d0ad 100644 --- a/dbug/user.r +++ b/dbug/user.r @@ -672,52 +672,26 @@ from the standard include directory. .SP 2 .BL 20 .LI DBUG_ENTER\ -Used to tell the runtime support module the name of the function -being entered. -The argument must be of type "pointer to character". -The -DBUG_ENTER -macro must precede all executable lines in the -function just entered, and must come after all local declarations. -Each -DBUG_ENTER -macro must have a matching -DBUG_RETURN -or -DBUG_VOID_RETURN -macro -at the function exit points. -DBUG_ENTER -macros used without a matching -DBUG_RETURN -or -DBUG_VOID_RETURN -macro -will cause warning messages from the +Used to tell the runtime support module the name of the function being +entered. The argument must be of type "pointer to character". The +DBUG_ENTER macro must precede all executable lines in the function +just entered, and must come after all local declarations. Each +DBUG_ENTER macro must have a matching DBUG_RETURN or DBUG_VOID_RETURN +macro at the function exit points. DBUG_ENTER macros used without a +matching DBUG_RETURN or DBUG_VOID_RETURN macro will cause warning +messages from the .I dbug package runtime support module. .SP 1 EX:\ \fCDBUG_ENTER\ ("main");\fR .SP 1 .LI DBUG_RETURN\ -Used at each exit point of a function containing a -DBUG_ENTER -macro -at the entry point. -The argument is the value to return. -Functions which return no value (void) should use the -DBUG_VOID_RETURN -macro. -It -is an error to have a -DBUG_RETURN -or -DBUG_VOID_RETURN -macro in a function -which has no matching -DBUG_ENTER -macro, and the compiler will complain -if the macros are actually used (expanded). +Used at each exit point of a function containing a DBUG_ENTER macro at +the entry point. The argument is the value to return. Functions +which return no value (void) should use the DBUG_VOID_RETURN macro. +It is an error to have a DBUG_RETURN or DBUG_VOID_RETURN macro in a +function which has no matching DBUG_ENTER macro, and the compiler will +complain if the macros are actually used (expanded). .SP 1 EX:\ \fCDBUG_RETURN\ (value);\fR .br @@ -727,24 +701,20 @@ EX:\ \fCDBUG_VOID_RETURN;\fR Used to name the current process being executed. A typical argument for this macro is "argv[0]", though it will be perfectly happy with any other string. +Im multi-threaded environment threads may have different names. .SP 1 EX:\ \fCDBUG_PROCESS\ (argv[0]);\fR .SP 1 .LI DBUG_PUSH\ Sets a new debugger state by pushing the current .B dbug -state onto an -internal stack and setting up the new state using the debug control -string passed as the macro argument. -The most common usage is to set the state specified by a debug -control string retrieved from the argument list. -Note that the leading "-#" in a debug control string specified -as a command line argument must -.B not -be passed as part of the macro argument. -The proper usage is to pass a pointer to the first character -.B after -the "-#" string. +state onto an internal stack and setting up the new state using the +debug control string passed as the macro argument. The most common +usage is to set the state specified by a debug control string +retrieved from the argument list. If the control string is +.I incremental, +the new state is a copy of the old state, modified by the control +string. .SP 1 EX:\ \fCDBUG_PUSH\ (\&(argv[i][2]));\fR .br @@ -755,32 +725,38 @@ EX:\ \fCDBUG_PUSH\ ("");\fR .LI DBUG_POP\ Restores the previous debugger state by popping the state stack. Attempting to pop more states than pushed will be ignored and no -warning will be given. -The -DBUG_POP -macro has no arguments. +warning will be given. The DBUG_POP macro has no arguments. .SP 1 EX:\ \fCDBUG_POP\ ();\fR .SP 1 +.LI DBUG_SET\ +Modifies the current debugger state on top of the stack or pushes +a new state if the current is set to the initial settings, using +the debug control string passed as the macro argument. Unless +.I incremental +control string is used (see below), it's equivalent to a combination of +DBUG_POP and DBUG_PUSH. +.SP 1 +EX:\ \fCDBUG_SET\ ("d:t");\fR +.br +EX:\ \fCDBUG_SET\ ("+d,info");\fR +.br +EX:\ \fCDBUG_SET\ ("+t:-d");\fR +.SP 1 .LI DBUG_FILE\ -The -DBUG_FILE -macro is used to do explicit I/O on the debug output -stream. -It is used in the same manner as the symbols "stdout" and "stderr" -in the standard I/O package. +The DBUG_FILE macro is used to do explicit I/O on the debug output +stream. It is used in the same manner as the symbols "stdout" and +"stderr" in the standard I/O package. .SP 1 EX:\ \fCfprintf\ (DBUG_FILE,\ "Doing\ my\ own\ I/O!\\n");\fR .SP 1 .LI DBUG_EXECUTE\ -The DBUG_EXECUTE macro is used to execute any arbitrary C code. -The first argument is the debug keyword, used to trigger execution -of the code specified as the second argument. -This macro must be used cautiously because, like the -DBUG_PRINT -macro, -it is automatically selected by default whenever the 'd' flag has -no argument list (i.e., a "-#d:t" control string). +The DBUG_EXECUTE macro is used to execute any arbitrary C code. The +first argument is the debug keyword, used to trigger execution of the +code specified as the second argument. This macro must be used +cautiously because, like the DBUG_PRINT macro, it is automatically +selected by default whenever the 'd' flag has no argument list (i.e., +a "-#d:t" control string). .SP 1 EX:\ \fCDBUG_EXECUTE\ ("status",\ print_status\ ());\fR .SP 1 @@ -794,17 +770,40 @@ artificial delay checking for race conditions. .SP 1 EX:\ \fCDBUG_EXECUTE_IF\ ("crashme",\ abort\ ());\fR .SP 1 -.LI DBUG_N\ -These macros, where N is in the range 2-5, are currently obsolete -and will be removed in a future release. -Use the new DBUG_PRINT macro. +.LI DBUG_EVALUATE\ +The DBUG_EVALUATE macro is similar to DBUG_EXECUTE, but it can be used in +the expression context. The first argument is the debug keyword that is used to +choose whether the second (keyword is enabled) or the third (keyword is not +enabled) argument is evaluated. When +.B dbug +is compiled off, the third argument is evaluated. +.SP 1 +EX:\fC +.br + printf("Info-debug is %s", +.br + DBUG_EVALUATE\ ("info", "ON", "OFF"));\fR +.SP 1 +.LI DBUG_EVALUATE_IF\ +Works like DBUG_EVALUATE macro, but the second argument is +.B not +evaluated, if the keyword is not explicitly listed in +the 'd' flag. Like DBUG_EXECUTE_IF this could be used to conditionally execute +"dangerous" actions. +.SP 1 +EX:\fC +.br + if (prepare_transaction () || +.br + DBUG_EVALUATE ("crashme", (abort (), 0), 0) || +.br + commit_transaction () )\fR +.SP 1 .LI DBUG_PRINT\ -Used to do printing via the "fprintf" library function on the -current debug stream, -DBUG_FILE. -The first argument is a debug keyword, the second is a format string -and the corresponding argument list. -Note that the format string and argument list are all one macro argument +Used to do printing via the "fprintf" library function on the current +debug stream, DBUG_FILE. The first argument is a debug keyword, the +second is a format string and the corresponding argument list. Note +that the format string and argument list are all one macro argument and .B must be enclosed in parentheses. @@ -816,10 +815,10 @@ EX:\ \fCDBUG_PRINT\ ("type",\ ("type\ is\ %x", type));\fR EX:\ \fCDBUG_PRINT\ ("stp",\ ("%x\ ->\ %s", stp, stp\ ->\ name));\fR .SP 1 .LI DBUG_DUMP\ -Used to dump a memory block in hex via the "fprintf" library function on the -current debug stream, DBUG_FILE. -The first argument is a debug keyword, the second is a pointer to -a memory to dump, the third is a number of bytes to dump. +Used to dump a memory block in hex via the "fprintf" library function +on the current debug stream, DBUG_FILE. The first argument is a debug +keyword, the second is a pointer to a memory to dump, the third is a +number of bytes to dump. .SP 1 EX: \fCDBUG_DBUG\ ("net",\ packet,\ len);\fR .SP 1 @@ -875,13 +874,28 @@ library. So there will be no need to disable asserts separately with NDEBUG. .SP 1 EX:\ \fCDBUG_ASSERT(\ a\ >\ 0\ );\fR .SP 1 -.LI DBUG_OUTPUT\ -In multi-threaded environment disables (or enables) any -.I dbug -output from the current thread. +.LI DBUG_EXPLAIN\ +Generates control string corresponding to the current debug state. +The macro takes two arguments - a buffer to store the result string +into and its length. The macro (which could be used as a function) +returns 1 if the control string didn't fit into the buffer and was +truncated and 0 otherwise. .SP 1 -EX:\ \fCDBUG_OUTPUT(\ 0\ );\fR +EX:\fC +.br + char buf[256]; +.br + DBUG_EXPLAIN( buf, sizeof(buf) );\fR .SP 1 +.LI DBUG_SET_INITIAL\ +.LI DBUG_EXPLAIN_INITIAL\ +.br +These two macros are identical to DBUG_SET and DBUG_EXPLAIN, but they +operate on the debug state that any new thread starts from. +Modifying +.I initial +value does not affect threads that are already running. Obviously, +these macros are only useful in the multi-threaded environment. .LE .SK @@ -893,42 +907,51 @@ DEBUG CONTROL STRING The debug control string is used to set the state of the debugger via the .B DBUG_PUSH -macro. -This section summarizes the currently available debugger options -and the flag characters which enable or disable them. -Argument lists enclosed in '[' and ']' are optional. +or +.B DBUG_SET +macros. Control string consists of colon separate flags. Colons +that are part of ':\\', ':/', or '::' are not considered flag +separators. A flag may take an argument or a list of arguments. +If a control string starts from a '+' sign it works +.I incrementally, +that is, it can modify existing state without overriding it. In such a +string every flag may be preceded by a '+' or '-' to enable or disable +a corresponding option in the debugger state. This section summarizes +the currently available debugger options and the flag characters which +enable or disable them. Argument lists enclosed in '[' and ']' are +optional. .SP 2 .BL 22 .LI a[,file] -Redirect the debugger output stream and append it to the specified file. -The default output stream is stderr. -A null argument list causes output to be redirected to stdout. -Double the colon, if you want it in the path +Redirect the debugger output stream and append it to the specified +file. The default output stream is stderr. A null argument list +causes output to be redirected to stdout. .SP 1 -EX: \fCa,C::\\tmp\\log\fR +EX: \fCa,C:\\tmp\\log\fR .LI A[,file] Like 'a[,file]' but ensure that data are written after each write (this typically implies flush or close/reopen). It helps to get -a complete log file in case of crashes. This mode is implied in +a complete log file in case of crashes. This mode is implicit in multi-threaded environment. .LI d[,keywords] Enable output from macros with specified keywords. -A null list of keywords implies that all keywords are selected. +An empty list of keywords implies that all keywords are selected. .LI D[,time] Delay for specified time after each output line, to let output drain. Time is given in tenths of a second (value of 10 is one second). Default is zero. .LI f[,functions] Limit debugger actions to the specified list of functions. -A null list of functions implies that all functions are selected. +An empty list of functions implies that all functions are selected. .LI F Mark each debugger output line with the name of the source file containing the macro causing the output. .LI i -Mark each debugger output line with the PID of the current process. +Mark each debugger output line with the PID (or thread ID) of the +current process. .LI g,[functions] Enable profiling for the specified list of functions. -By default profiling is enabled for all functions. +An empty list of functions enables profiling for all functions. See .B PROFILING\ WITH\ DBUG below. @@ -946,20 +969,18 @@ Like 'a[,file]' but overwrite old file, do not append. .LI O[,file] Like 'A[,file]' but overwrite old file, do not append. .LI p[,processes] -Limit debugger actions to the specified processes. -A null list implies all processes. -This is useful for processes which run child processes. -Note that each debugger output line can be marked with the name of -the current process via the 'P' flag. -The process name must match the argument passed to the +Limit debugger actions to the specified processes. An empty list +implies all processes. This is useful for processes which run child +processes. Note that each debugger output line can be marked with the +name of the current process via the 'P' flag. The process name must +match the argument passed to the .B DBUG_PROCESS macro. .LI P Mark each debugger output line with the name of the current process. Most useful when used with a process which runs child processes that -are also being debugged. -Note that the parent process must arrange for the debugger control -string to be passed to the child processes. +are also being debugged. Note that the parent process must arrange +for the debugger control string to be passed to the child processes. .LI r Used in conjunction with the .B DBUG_PUSH @@ -981,7 +1002,59 @@ and Enable function control flow tracing. The maximum nesting depth is specified by N, and defaults to 200. +.LI T +Mark each debugger output line with the current timestamp. +The value is printed with microsecond resolution, as returned by +.I gettimeofday() +system call. The actual resolution is OS- and hardware-dependent. .LE + +.SK +.B +MULTI-THREADED DEBUGGING +.R + +.P +When +.I dbug +is used in a multi-threaded environment there are few differences from a single-threaded +case to keep in mind. This section tries to summarize them. +.SP 2 +.BL 5 +.LI +Every thread has its own stack of debugger states. +.B DBUG_PUSH +and +.B DBUG_POP +affect only the thread that executed them. +.LI +At the bottom of the stack for all threads there is the common +.I initial +state. Changes to this state (for example, with +.B DBUG_SET_INITIAL +macro) affect all new threads and all running threads that didn't +.B DBUG_PUSH +yet. +.LI +Every thread can have its own name, that can be set with +.B DBUG_PROCESS +macro. Thus, "-#p,name1,name2" can be used to limit the output to specific threads. +.LI +When printing directly to +.B DBUG_FILE +it may be necessary to prevent other threads from writing something between two parts +of logically indivisible output. It is done with +.B DBUG_LOCK_FILE +and +.B DBUG_UNLOCK_FILE +macors. See the appropriate section for examples. +.LI +"-#o,file" and "-#O,file" are treated as "-#a,file" and "-#A,file" respectively. That is +all writes to a file are always followed by a flush. +.LI +"-#i" prints not a PID but a thread id in the form of "T@nnn" +.LE + .SK .B PROFILING WITH DBUG diff --git a/include/my_dbug.h b/include/my_dbug.h index 31fd507ec73..514cd17099b 100644 --- a/include/my_dbug.h +++ b/include/my_dbug.h @@ -20,15 +20,18 @@ extern "C" { #endif #if !defined(DBUG_OFF) && !defined(_lint) -extern int _db_on_,_no_db_; -extern FILE *_db_fp_; -extern char *_db_process_; -extern int _db_keyword_(const char *keyword); +struct _db_code_state_; +extern int _db_keyword_(struct _db_code_state_ *cs, const char *keyword); extern int _db_strict_keyword_(const char *keyword); +extern int _db_explain_(struct _db_code_state_ *cs, char *buf, size_t len); +extern int _db_explain_init_(char *buf, size_t len); extern void _db_setjmp_(void); extern void _db_longjmp_(void); +extern void _db_process_(const char *name); extern void _db_push_(const char *control); extern void _db_pop_(void); +extern void _db_set_(struct _db_code_state_ *cs, const char *control); +extern void _db_set_init_(const char *control); extern void _db_enter_(const char *_func_,const char *_file_,uint _line_, const char **_sfunc_,const char **_sfile_, uint *_slevel_, char ***); @@ -37,68 +40,73 @@ extern void _db_return_(uint _line_,const char **_sfunc_,const char **_sfile_, extern void _db_pargs_(uint _line_,const char *keyword); extern void _db_doprnt_ _VARARGS((const char *format,...)) ATTRIBUTE_FORMAT(printf, 1, 2); -extern void _db_dump_(uint _line_,const char *keyword,const char *memory, - uint length); -extern void _db_output_(uint flag); +extern void _db_dump_(uint _line_,const char *keyword, + const unsigned char *memory, size_t length); extern void _db_end_(void); -extern void _db_lock_file(void); -extern void _db_unlock_file(void); +extern void _db_lock_file_(void); +extern void _db_unlock_file_(void); +extern FILE *_db_fp_(void); #define DBUG_ENTER(a) const char *_db_func_, *_db_file_; uint _db_level_; \ char **_db_framep_; \ _db_enter_ (a,__FILE__,__LINE__,&_db_func_,&_db_file_,&_db_level_, \ &_db_framep_) #define DBUG_LEAVE \ - (_db_return_ (__LINE__, &_db_func_, &_db_file_, &_db_level_)) -#define DBUG_RETURN(a1) {DBUG_LEAVE; return(a1);} -#define DBUG_VOID_RETURN {DBUG_LEAVE; return;} + _db_return_ (__LINE__, &_db_func_, &_db_file_, &_db_level_) +#define DBUG_RETURN(a1) do {DBUG_LEAVE; return(a1);} while(0) +#define DBUG_VOID_RETURN do {DBUG_LEAVE; return;} while(0) #define DBUG_EXECUTE(keyword,a1) \ - {if (_db_on_) {if (_db_keyword_ (keyword)) { a1 }}} + do {if (_db_keyword_(0, (keyword))) { a1 }} while(0) +#define DBUG_EXECUTE_IF(keyword,a1) \ + do {if (_db_strict_keyword_ (keyword)) { a1 } } while(0) +#define DBUG_EVALUATE(keyword,a1,a2) \ + (_db_keyword_(0,(keyword)) ? (a1) : (a2)) +#define DBUG_EVALUATE_IF(keyword,a1,a2) \ + (_db_strict_keyword_((keyword)) ? (a1) : (a2)) #define DBUG_PRINT(keyword,arglist) \ - {if (_db_on_) {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;}} + do {_db_pargs_(__LINE__,keyword); _db_doprnt_ arglist;} while(0) #define DBUG_PUSH(a1) _db_push_ (a1) #define DBUG_POP() _db_pop_ () -#define DBUG_PROCESS(a1) (_db_process_ = a1) -#define DBUG_FILE (_db_fp_) +#define DBUG_SET(a1) _db_set_ (0, (a1)) +#define DBUG_SET_INITIAL(a1) _db_set_init_ (a1) +#define DBUG_PROCESS(a1) _db_process_(a1) +#define DBUG_FILE _db_fp_() #define DBUG_SETJMP(a1) (_db_setjmp_ (), setjmp (a1)) #define DBUG_LONGJMP(a1,a2) (_db_longjmp_ (), longjmp (a1, a2)) -#define DBUG_DUMP(keyword,a1,a2)\ - {if (_db_on_) {_db_dump_(__LINE__,keyword,a1,a2);}} -#define DBUG_IN_USE (_db_fp_ && _db_fp_ != stderr) -#define DEBUGGER_OFF _no_db_=1;_db_on_=0; -#define DEBUGGER_ON _no_db_=0 +#define DBUG_DUMP(keyword,a1,a2) _db_dump_(__LINE__,keyword,a1,a2) #define DBUG_END() _db_end_ () -#define DBUG_LOCK_FILE { _db_lock_file(); } -#define DBUG_UNLOCK_FILE { _db_unlock_file(); } -#define DBUG_OUTPUT(A) { _db_output_(A); } +#define DBUG_LOCK_FILE _db_lock_file_() +#define DBUG_UNLOCK_FILE _db_unlock_file_() #define DBUG_ASSERT(A) assert(A) -#define DBUG_EXECUTE_IF(keyword,a1) \ - {if (_db_on_) {if (_db_strict_keyword_ (keyword)) { a1 }}} +#define DBUG_EXPLAIN(buf,len) _db_explain_(0, (buf),(len)) +#define DBUG_EXPLAIN_INITIAL(buf,len) _db_explain_init_((buf),(len)) #define IF_DBUG(A) A #else /* No debugger */ #define DBUG_ENTER(a1) -#define DBUG_RETURN(a1) return(a1) -#define DBUG_VOID_RETURN return -#define DBUG_EXECUTE(keyword,a1) {} -#define DBUG_EXECUTE_IF(keyword,a1) {} -#define DBUG_PRINT(keyword,arglist) {} -#define DBUG_PUSH(a1) {} -#define DBUG_POP() {} -#define DBUG_PROCESS(a1) {} -#define DBUG_FILE (stderr) -#define DBUG_SETJMP setjmp -#define DBUG_LONGJMP longjmp -#define DBUG_DUMP(keyword,a1,a2) {} -#define DBUG_IN_USE 0 -#define DEBUGGER_OFF -#define DEBUGGER_ON -#define DBUG_END() -#define DBUG_LOCK_FILE -#define DBUG_UNLOCK_FILE -#define DBUG_OUTPUT(A) -#define DBUG_ASSERT(A) {} #define DBUG_LEAVE +#define DBUG_RETURN(a1) do { return(a1); } while(0) +#define DBUG_VOID_RETURN do { return; } while(0) +#define DBUG_EXECUTE(keyword,a1) do { } while(0) +#define DBUG_EXECUTE_IF(keyword,a1) do { } while(0) +#define DBUG_EVALUATE(keyword,a1,a2) (a2) +#define DBUG_EVALUATE_IF(keyword,a1,a2) (a2) +#define DBUG_PRINT(keyword,arglist) do { } while(0) +#define DBUG_PUSH(a1) +#define DBUG_SET(a1) +#define DBUG_SET_INITIAL(a1) +#define DBUG_POP() +#define DBUG_PROCESS(a1) +#define DBUG_SETJMP(a1) setjmp(a1) +#define DBUG_LONGJMP(a1) longjmp(a1) +#define DBUG_DUMP(keyword,a1,a2) +#define DBUG_END() +#define DBUG_ASSERT(A) +#define DBUG_LOCK_FILE +#define DBUG_FILE (stderr) +#define DBUG_UNLOCK_FILE +#define DBUG_EXPLAIN(buf,len) +#define DBUG_EXPLAIN_INITIAL(buf,len) #define IF_DBUG(A) #endif #ifdef __cplusplus diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index 0320126a522..affb5462eff 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -298,16 +298,12 @@ mysql_debug(const char *debug __attribute__((unused))) { #ifndef DBUG_OFF char *env; - if (_db_on_) - return; /* Already using debugging */ if (debug) { - DEBUGGER_ON; DBUG_PUSH(debug); } else if ((env = getenv("MYSQL_DEBUG"))) { - DEBUGGER_ON; DBUG_PUSH(env); #if !defined(_WINVER) && !defined(WINVER) puts("\n-------------------------------------------------------"); diff --git a/myisam/mi_open.c b/myisam/mi_open.c index ec169ac8785..172f282e049 100644 --- a/myisam/mi_open.c +++ b/myisam/mi_open.c @@ -196,7 +196,7 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) if (len != MI_BASE_INFO_SIZE) { DBUG_PRINT("warning",("saved_base_info_length: %d base_info_length: %d", - len,MI_BASE_INFO_SIZE)) + len,MI_BASE_INFO_SIZE)); } disk_pos= (char*) my_n_base_info_read((uchar*) disk_cache + base_pos, &share->base); diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index ac1e0962ffb..35648ea19c7 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -1088,7 +1088,7 @@ bool ha_federated::create_where_from_key(String *to, uint store_length= key_part->store_length; uint part_length= min(store_length, length); needs_quotes= 1; - DBUG_DUMP("key, start of loop", (char *) ptr, length); + DBUG_DUMP("key, start of loop", ptr, length); if (key_part->null_bit) { diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index 2d2007c8fdd..a2de8ea1d0b 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -4250,7 +4250,7 @@ ha_innobase::rnd_pos( int error; uint keynr = active_index; DBUG_ENTER("rnd_pos"); - DBUG_DUMP("key", (char*) pos, ref_length); + DBUG_DUMP("key", pos, ref_length); statistic_increment(current_thd->status_var.ha_read_rnd_count, &LOCK_status); diff --git a/sql/ha_myisammrg.cc b/sql/ha_myisammrg.cc index 78492d2843d..02d0eaf2af3 100644 --- a/sql/ha_myisammrg.cc +++ b/sql/ha_myisammrg.cc @@ -126,7 +126,7 @@ int ha_myisammrg::open(const char *name, int mode, uint test_if_locked) DBUG_PRINT("info", ("ha_myisammrg::open exit %d", my_errno)); return (my_errno ? my_errno : -1); } - DBUG_PRINT("info", ("ha_myisammrg::open myrg_extrafunc...")) + DBUG_PRINT("info", ("ha_myisammrg::open myrg_extrafunc...")); myrg_extrafunc(file, query_cache_invalidate_by_MyISAM_filename_ref); if (!(test_if_locked == HA_OPEN_WAIT_IF_LOCKED || test_if_locked == HA_OPEN_ABORT_IF_LOCKED)) diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc index 17345e76bba..16f3e51d615 100644 --- a/sql/item_cmpfunc.cc +++ b/sql/item_cmpfunc.cc @@ -4130,7 +4130,7 @@ longlong Item_is_not_null_test::val_int() } if (args[0]->is_null()) { - DBUG_PRINT("info", ("null")) + DBUG_PRINT("info", ("null")); owner->was_null|= 1; DBUG_RETURN(0); } diff --git a/sql/mysqld.cc b/sql/mysqld.cc index b8df51e9e58..b8f675ff696 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -1071,12 +1071,9 @@ pthread_handler_t kill_server_thread(void *arg __attribute__((unused))) extern "C" sig_handler print_signal_warning(int sig) { - if (!DBUG_IN_USE) - { - if (global_system_variables.log_warnings) - sql_print_warning("Got signal %d from thread %ld", - sig, my_thread_id()); - } + if (global_system_variables.log_warnings) + sql_print_warning("Got signal %d from thread %ld", + sig, my_thread_id()); #ifdef DONT_REMEMBER_SIGNAL my_sigset(sig,print_signal_warning); /* int. thread system calls */ #endif @@ -1718,7 +1715,7 @@ void end_thread(THD *thd, bool put_in_cache) ! abort_loop && !kill_cached_threads) { /* Don't kill the thread, just put it in cache for reuse */ - DBUG_PRINT("info", ("Adding thread to cache")) + DBUG_PRINT("info", ("Adding thread to cache")); cached_thread_count++; while (!abort_loop && ! wake_thread && ! kill_cached_threads) (void) pthread_cond_wait(&COND_thread_cache, &LOCK_thread_count); @@ -3623,8 +3620,6 @@ int main(int argc, char **argv) MY_INIT(argv[0]); // init my_sys library & pthreads /* ^^^ Nothing should be before this line! */ - DEBUGGER_OFF; - /* Set signal used to kill MySQL */ #if defined(SIGUSR2) thr_kill_signal= thd_lib_detected == THD_LIB_LT ? SIGINT : SIGUSR2; diff --git a/sql/net_serv.cc b/sql/net_serv.cc index 017a2eb9ecd..a40764577fd 100644 --- a/sql/net_serv.cc +++ b/sql/net_serv.cc @@ -394,7 +394,7 @@ my_net_write(NET *net,const char *packet,ulong len) if (net_write_buff(net,(char*) buff,NET_HEADER_SIZE)) return 1; #ifndef DEBUG_DATA_PACKETS - DBUG_DUMP("packet_header",(char*) buff,NET_HEADER_SIZE); + DBUG_DUMP("packet_header", buff, NET_HEADER_SIZE); #endif return test(net_write_buff(net,packet,len)); } @@ -892,7 +892,7 @@ my_real_read(NET *net, ulong *complen) if (i == 0) { /* First parts is packet length */ ulong helping; - DBUG_DUMP("packet_header",(char*) net->buff+net->where_b, + DBUG_DUMP("packet_header", net->buff+net->where_b, NET_HEADER_SIZE); if (net->buff[net->where_b + 3] != (uchar) net->pkt_nr) { diff --git a/sql/opt_range.cc b/sql/opt_range.cc index c3eddbd0abf..17a4701b515 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -9570,8 +9570,6 @@ static void print_sel_tree(PARAM *param, SEL_TREE *tree, key_map *tree_map, int idx; char buff[1024]; DBUG_ENTER("print_sel_tree"); - if (! _db_on_) - DBUG_VOID_RETURN; String tmp(buff,sizeof(buff),&my_charset_bin); tmp.length(0); @@ -9601,8 +9599,6 @@ static void print_ror_scans_arr(TABLE *table, const char *msg, struct st_ror_scan_info **end) { DBUG_ENTER("print_ror_scans"); - if (! _db_on_) - DBUG_VOID_RETURN; char buff[1024]; String tmp(buff,sizeof(buff),&my_charset_bin); @@ -9665,7 +9661,7 @@ static void print_quick(QUICK_SELECT_I *quick, const key_map *needed_reg) { char buf[MAX_KEY/8+1]; DBUG_ENTER("print_quick"); - if (! _db_on_ || !quick) + if (!quick) DBUG_VOID_RETURN; DBUG_LOCK_FILE; diff --git a/sql/set_var.cc b/sql/set_var.cc index a99b063a97e..84766e511ca 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -1990,7 +1990,7 @@ void sys_var_thd_date_time_format::update2(THD *thd, enum_var_type type, { DATE_TIME_FORMAT *old; DBUG_ENTER("sys_var_date_time_format::update2"); - DBUG_DUMP("positions",(char*) new_value->positions, + DBUG_DUMP("positions", new_value->positions, sizeof(new_value->positions)); if (type == OPT_GLOBAL) diff --git a/sql/slave.cc b/sql/slave.cc index 8a3620080f2..2cd4b00cca9 100644 --- a/sql/slave.cc +++ b/sql/slave.cc @@ -3339,7 +3339,7 @@ static int exec_relay_log_event(THD* thd, RELAY_LOG_INFO* rli) } DBUG_PRINT("info", ("thd->options: %s", - (thd->options & OPTION_BEGIN) ? "OPTION_BEGIN" : "")) + (thd->options & OPTION_BEGIN) ? "OPTION_BEGIN" : "")); /* Protect against common user error of setting the counter to 1 diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index 8c868971911..f8906a17c12 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -315,13 +315,13 @@ TODO list: #define MUTEX_UNLOCK(M) {DBUG_PRINT("lock", ("mutex unlock 0x%lx",\ (ulong)(M))); pthread_mutex_unlock(M);} #define RW_WLOCK(M) {DBUG_PRINT("lock", ("rwlock wlock 0x%lx",(ulong)(M))); \ - if (!rw_wrlock(M)) DBUG_PRINT("lock", ("rwlock wlock ok")) \ + if (!rw_wrlock(M)) DBUG_PRINT("lock", ("rwlock wlock ok")); \ else DBUG_PRINT("lock", ("rwlock wlock FAILED %d", errno)); } #define RW_RLOCK(M) {DBUG_PRINT("lock", ("rwlock rlock 0x%lx", (ulong)(M))); \ - if (!rw_rdlock(M)) DBUG_PRINT("lock", ("rwlock rlock ok")) \ + if (!rw_rdlock(M)) DBUG_PRINT("lock", ("rwlock rlock ok")); \ else DBUG_PRINT("lock", ("rwlock wlock FAILED %d", errno)); } #define RW_UNLOCK(M) {DBUG_PRINT("lock", ("rwlock unlock 0x%lx",(ulong)(M))); \ - if (!rw_unlock(M)) DBUG_PRINT("lock", ("rwlock unlock ok")) \ + if (!rw_unlock(M)) DBUG_PRINT("lock", ("rwlock unlock ok")); \ else DBUG_PRINT("lock", ("rwlock unlock FAILED %d", errno)); } #define STRUCT_LOCK(M) {DBUG_PRINT("lock", ("%d struct lock...",__LINE__)); \ pthread_mutex_lock(M);DBUG_PRINT("lock", ("struct lock OK"));} diff --git a/sql/sql_select.cc b/sql/sql_select.cc index 6392f7c4299..ef3abb06b1e 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -14470,7 +14470,7 @@ change_to_use_tmp_fields(THD *thd, Item **ref_pointer_array, ifield->db_name= iref->db_name; } #ifndef DBUG_OFF - if (_db_on_ && !item_field->name) + if (!item_field->name) { char buff[256]; String str(buff,sizeof(buff),&my_charset_bin); diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index dbe22f2a9e4..ee5c01a8272 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -16673,7 +16673,6 @@ int main(int argc, char **argv) { struct my_tests_st *fptr; - DEBUGGER_OFF; MY_INIT(argv[0]); load_defaults("my", client_test_load_default_groups, &argc, &argv); From 814e2613b0a41ae3c7d858d44ee714906bb78d2f Mon Sep 17 00:00:00 2001 From: "anozdrin/alik@quad.opbmk" <> Date: Fri, 28 Mar 2008 23:39:47 +0300 Subject: [PATCH 124/139] Fix tree: 1. Use 'dat' extension, because it is handled in Makefile.am; 2. Fix typo: the bug id is 35469, not 35649. --- mysql-test/r/loaddata.result | 8 ++++---- mysql-test/std_data/{bug35649.data => bug35469.dat} | 0 mysql-test/t/loaddata.test | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) rename mysql-test/std_data/{bug35649.data => bug35469.dat} (100%) diff --git a/mysql-test/r/loaddata.result b/mysql-test/r/loaddata.result index 156a78eb627..18b0d84a296 100644 --- a/mysql-test/r/loaddata.result +++ b/mysql-test/r/loaddata.result @@ -268,7 +268,7 @@ CREATE VIEW v1 AS SELECT * FROM t1; CREATE VIEW v2 AS SELECT 1 + 2 AS c0, c1, c2 FROM t1; CREATE VIEW v3 AS SELECT 1 AS d1, 2 AS d2; -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v1 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v1 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' @@ -288,7 +288,7 @@ c1 c2 DELETE FROM t1; -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v2 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' @@ -308,14 +308,14 @@ c0 c1 c2 DELETE FROM t1; -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v2 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' (c0, c2); ERROR HY000: Invalid column reference (v2.c0) in LOAD DATA -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v3 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v3 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' diff --git a/mysql-test/std_data/bug35649.data b/mysql-test/std_data/bug35469.dat similarity index 100% rename from mysql-test/std_data/bug35649.data rename to mysql-test/std_data/bug35469.dat diff --git a/mysql-test/t/loaddata.test b/mysql-test/t/loaddata.test index 68cf84b7fac..e9da2bbadc5 100644 --- a/mysql-test/t/loaddata.test +++ b/mysql-test/t/loaddata.test @@ -260,7 +260,7 @@ CREATE VIEW v2 AS SELECT 1 + 2 AS c0, c1, c2 FROM t1; CREATE VIEW v3 AS SELECT 1 AS d1, 2 AS d2; --echo -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v1 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v1 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' @@ -276,7 +276,7 @@ SELECT * FROM v1; DELETE FROM t1; --echo -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v2 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' @@ -293,7 +293,7 @@ DELETE FROM t1; --echo --error ER_LOAD_DATA_INVALID_COLUMN -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v2 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' @@ -301,7 +301,7 @@ LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v2 --echo --error ER_NON_UPDATABLE_TABLE -LOAD DATA INFILE '../std_data_ln/bug35649.data' INTO TABLE v3 +LOAD DATA INFILE '../std_data_ln/bug35469.dat' INTO TABLE v3 FIELDS ESCAPED BY '\\' TERMINATED BY ',' ENCLOSED BY '"' From 7cb4b7c19dab2d1dd56992af45dc9842c98a225f Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@macbook.gmz" <> Date: Sat, 29 Mar 2008 09:52:16 +0200 Subject: [PATCH 125/139] fixed warnings and compile errors from the fix for bug 26243 --- configure.in | 3 +++ heap/hp_test2.c | 2 -- libmysql/libmysql.c | 2 +- myisam/mi_check.c | 20 ++++++++-------- myisam/mi_delete.c | 22 ++++++++--------- myisam/mi_dynrec.c | 6 ++--- myisam/mi_key.c | 2 +- myisam/mi_open.c | 2 +- myisam/mi_packrec.c | 2 +- myisam/mi_page.c | 4 ++-- myisam/mi_search.c | 8 +++---- myisam/mi_statrec.c | 4 ++-- myisam/mi_test1.c | 1 - myisam/mi_test2.c | 6 ++--- myisam/mi_test3.c | 2 -- myisam/mi_write.c | 8 +++---- myisammrg/myrg_rkey.c | 2 +- ndb/src/ndbapi/DictCache.cpp | 2 +- ndb/src/ndbapi/NdbBlob.cpp | 8 ++++--- ndb/src/ndbapi/NdbOperationDefine.cpp | 2 +- ndb/src/ndbapi/NdbOperationInt.cpp | 2 +- ndb/src/ndbapi/NdbOperationSearch.cpp | 2 +- sql-common/client.c | 2 +- sql/ha_federated.cc | 2 +- sql/ha_innodb.cc | 2 +- sql/ha_ndbcluster.cc | 34 +++++++++++++-------------- sql/ha_ndbcluster_cond.cc | 2 +- 27 files changed, 75 insertions(+), 79 deletions(-) diff --git a/configure.in b/configure.in index fdec3bb3a6c..9c35dbcc7c7 100644 --- a/configure.in +++ b/configure.in @@ -1763,15 +1763,18 @@ AC_ARG_WITH(debug, if test "$with_debug" = "yes" then # Medium debug. + AC_DEFINE([DBUG_ON], [1], [Use libdbug]) CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC -DDBUG_ON -DSAFE_MUTEX $CFLAGS" CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX -DDBUG_ON -DSAFE_MUTEX $CXXFLAGS" elif test "$with_debug" = "full" then # Full debug. Very slow in some cases + AC_DEFINE([DBUG_ON], [1], [Use libdbug]) CFLAGS="$DEBUG_CFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC $CFLAGS" CXXFLAGS="$DEBUG_CXXFLAGS -DDBUG_ON -DSAFE_MUTEX -DSAFEMALLOC $CXXFLAGS" else # Optimized version. No debug + AC_DEFINE([DBUG_OFF], [1], [Don't use libdbug]) CFLAGS="$OPTIMIZE_CFLAGS -DDBUG_OFF $CFLAGS" CXXFLAGS="$OPTIMIZE_CXXFLAGS -DDBUG_OFF $CXXFLAGS" fi diff --git a/heap/hp_test2.c b/heap/hp_test2.c index 7b756ae10a4..73cad6c2043 100644 --- a/heap/hp_test2.c +++ b/heap/hp_test2.c @@ -617,7 +617,6 @@ err: static int get_options(int argc,char *argv[]) { char *pos,*progname; - DEBUGGER_OFF; progname= argv[0]; @@ -646,7 +645,6 @@ static int get_options(int argc,char *argv[]) printf("Usage: %s [-?ABIKLsWv] [-m#] [-t#]\n",progname); exit(0); case '#': - DEBUGGER_ON; DBUG_PUSH (++pos); break; } diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index bcbaf9f1822..dd66a325169 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -2444,7 +2444,7 @@ static my_bool execute(MYSQL_STMT *stmt, char *packet, ulong length) my_bool res; DBUG_ENTER("execute"); - DBUG_DUMP("packet", packet, length); + DBUG_DUMP("packet", (uchar*)packet, length); mysql->last_used_con= mysql; int4store(buff, stmt->stmt_id); /* Send stmt id to server */ diff --git a/myisam/mi_check.c b/myisam/mi_check.c index 4407a787950..7ed4f3a9f03 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -741,7 +741,7 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo, char llbuff[22]; uint diff_pos[2]; DBUG_ENTER("chk_index"); - DBUG_DUMP("buff",(byte*) buff,mi_getint(buff)); + DBUG_DUMP("buff",(uchar*) buff,mi_getint(buff)); /* TODO: implement appropriate check for RTree keys */ if (keyinfo->flag & HA_SPATIAL) @@ -799,9 +799,9 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo, (flag=ha_key_cmp(keyinfo->seg,info->lastkey,key,key_length, comp_flag, diff_pos)) >=0) { - DBUG_DUMP("old",(byte*) info->lastkey, info->lastkey_length); - DBUG_DUMP("new",(byte*) key, key_length); - DBUG_DUMP("new_in_page",(char*) old_keypos,(uint) (keypos-old_keypos)); + DBUG_DUMP("old",(uchar*) info->lastkey, info->lastkey_length); + DBUG_DUMP("new",(uchar*) key, key_length); + DBUG_DUMP("new_in_page",(uchar*) old_keypos,(uint) (keypos-old_keypos)); if (comp_flag & SEARCH_FIND && flag == 0) mi_check_print_error(param,"Found duplicated key at page %s",llstr(page,llbuff)); @@ -870,8 +870,8 @@ static int chk_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo, DBUG_PRINT("test",("page: %s record: %s filelength: %s", llstr(page,llbuff),llstr(record,llbuff2), llstr(info->state->data_file_length,llbuff3))); - DBUG_DUMP("key",(byte*) key,key_length); - DBUG_DUMP("new_in_page",(char*) old_keypos,(uint) (keypos-old_keypos)); + DBUG_DUMP("key",(uchar*) key,key_length); + DBUG_DUMP("new_in_page",(uchar*) old_keypos,(uint) (keypos-old_keypos)); goto err; } param->record_checksum+=(ha_checksum) record; @@ -1631,7 +1631,7 @@ int mi_repair(MI_CHECK *param, register MI_INFO *info, { if (my_errno != HA_ERR_FOUND_DUPP_KEY) goto err; - DBUG_DUMP("record",(byte*) sort_param.record,share->base.pack_reclength); + DBUG_DUMP("record",(uchar*) sort_param.record,share->base.pack_reclength); mi_check_print_info(param,"Duplicate key %2d for record at %10s against new record at %10s", info->errkey+1, llstr(sort_param.start_recpos,llbuff), @@ -2062,7 +2062,7 @@ static int sort_one_index(MI_CHECK *param, MI_INFO *info, MI_KEYDEF *keyinfo, ("From page: %ld, keyoffset: %lu used_length: %d", (ulong) pagepos, (ulong) (keypos - buff), (int) used_length)); - DBUG_DUMP("buff",(byte*) buff,used_length); + DBUG_DUMP("buff",(uchar*) buff,used_length); goto err; } } @@ -4024,7 +4024,7 @@ static int sort_insert_key(MI_SORT_PARAM *sort_param, else if (my_pwrite(info->s->kfile,(byte*) anc_buff, (uint) keyinfo->block_length,filepos, param->myf_rw)) DBUG_RETURN(1); - DBUG_DUMP("buff",(byte*) anc_buff,mi_getint(anc_buff)); + DBUG_DUMP("buff",(uchar*) anc_buff,mi_getint(anc_buff)); /* Write separator-key to block in next level */ if (sort_insert_key(sort_param,key_block+1,key_block->lastkey,filepos)) @@ -4129,7 +4129,7 @@ int flush_pending_blocks(MI_SORT_PARAM *sort_param) else if (my_pwrite(info->s->kfile,(byte*) key_block->buff, (uint) keyinfo->block_length,filepos, myf_rw)) DBUG_RETURN(1); - DBUG_DUMP("buff",(byte*) key_block->buff,length); + DBUG_DUMP("buff",(uchar*) key_block->buff,length); nod_flag=1; } info->s->state.key_root[sort_param->key]=filepos; /* Last is root for tree */ diff --git a/myisam/mi_delete.c b/myisam/mi_delete.c index 409930ff7fb..ca8a537b322 100644 --- a/myisam/mi_delete.c +++ b/myisam/mi_delete.c @@ -223,7 +223,7 @@ static int d_search(register MI_INFO *info, register MI_KEYDEF *keyinfo, my_off_t leaf_page,next_block; uchar lastkey[MI_MAX_KEY_BUFF]; DBUG_ENTER("d_search"); - DBUG_DUMP("page",(byte*) anc_buff,mi_getint(anc_buff)); + DBUG_DUMP("page",(uchar*) anc_buff,mi_getint(anc_buff)); search_key_length= (comp_flag & SEARCH_FIND) ? key_length : USE_WHOLE_KEY; flag=(*keyinfo->bin_search)(info,keyinfo,anc_buff,key, search_key_length, @@ -381,7 +381,7 @@ static int d_search(register MI_INFO *info, register MI_KEYDEF *keyinfo, ret_value|=_mi_write_keypage(info,keyinfo,page,DFLT_INIT_HITS,anc_buff); else { - DBUG_DUMP("page",(byte*) anc_buff,mi_getint(anc_buff)); + DBUG_DUMP("page",(uchar*) anc_buff,mi_getint(anc_buff)); } my_afree((byte*) leaf_buff); DBUG_PRINT("exit",("Return: %d",ret_value)); @@ -411,7 +411,7 @@ static int del(register MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *key, DBUG_ENTER("del"); DBUG_PRINT("enter",("leaf_page: %ld keypos: 0x%lx", (long) leaf_page, (ulong) keypos)); - DBUG_DUMP("leaf_buff",(byte*) leaf_buff,mi_getint(leaf_buff)); + DBUG_DUMP("leaf_buff",(uchar*) leaf_buff,mi_getint(leaf_buff)); endpos=leaf_buff+mi_getint(leaf_buff); if (!(key_start=_mi_get_last_key(info,keyinfo,leaf_buff,keybuff,endpos, @@ -428,7 +428,7 @@ static int del(register MI_INFO *info, register MI_KEYDEF *keyinfo, uchar *key, ret_value= -1; else { - DBUG_DUMP("next_page",(byte*) next_buff,mi_getint(next_buff)); + DBUG_DUMP("next_page",(uchar*) next_buff,mi_getint(next_buff)); if ((ret_value=del(info,keyinfo,key,anc_buff,next_page,next_buff, keypos,next_block,ret_key)) >0) { @@ -517,8 +517,8 @@ static int underflow(register MI_INFO *info, register MI_KEYDEF *keyinfo, DBUG_ENTER("underflow"); DBUG_PRINT("enter",("leaf_page: %ld keypos: 0x%lx",(long) leaf_page, (ulong) keypos)); - DBUG_DUMP("anc_buff",(byte*) anc_buff,mi_getint(anc_buff)); - DBUG_DUMP("leaf_buff",(byte*) leaf_buff,mi_getint(leaf_buff)); + DBUG_DUMP("anc_buff",(uchar*) anc_buff,mi_getint(anc_buff)); + DBUG_DUMP("leaf_buff",(uchar*) leaf_buff,mi_getint(leaf_buff)); buff=info->buff; info->buff_used=1; @@ -554,7 +554,7 @@ static int underflow(register MI_INFO *info, register MI_KEYDEF *keyinfo, if (!_mi_fetch_keypage(info,keyinfo,next_page,DFLT_INIT_HITS,buff,0)) goto err; buff_length=mi_getint(buff); - DBUG_DUMP("next",(byte*) buff,buff_length); + DBUG_DUMP("next",(uchar*) buff,buff_length); /* find keys to make a big key-page */ bmove((byte*) next_keypos-key_reflength,(byte*) buff+2, @@ -659,7 +659,7 @@ static int underflow(register MI_INFO *info, register MI_KEYDEF *keyinfo, goto err; buff_length=mi_getint(buff); endpos=buff+buff_length; - DBUG_DUMP("prev",(byte*) buff,buff_length); + DBUG_DUMP("prev",(uchar*) buff,buff_length); /* find keys to make a big key-page */ bmove((byte*) next_keypos - key_reflength,(byte*) leaf_buff+2, @@ -715,8 +715,8 @@ static int underflow(register MI_INFO *info, register MI_KEYDEF *keyinfo, goto err; _mi_kpointer(info,leaf_key+key_length,leaf_page); /* Save key in anc_buff */ - DBUG_DUMP("anc_buff",(byte*) anc_buff,anc_length); - DBUG_DUMP("key_to_anc",(byte*) leaf_key,key_length); + DBUG_DUMP("anc_buff",(uchar*) anc_buff,anc_length); + DBUG_DUMP("key_to_anc",(uchar*) leaf_key,key_length); temp_pos=anc_buff+anc_length; t_length=(*keyinfo->pack_key)(keyinfo,key_reflength, @@ -737,7 +737,7 @@ static int underflow(register MI_INFO *info, register MI_KEYDEF *keyinfo, bmove((byte*) leaf_buff+2,(byte*) half_pos-nod_flag,(size_t) nod_flag); if (!(length=(*keyinfo->get_key)(keyinfo,nod_flag,&half_pos,leaf_key))) goto err; - DBUG_DUMP("key_to_leaf",(byte*) leaf_key,length); + DBUG_DUMP("key_to_leaf",(uchar*) leaf_key,length); t_length=(*keyinfo->pack_key)(keyinfo,nod_flag, (uchar*) 0, (uchar*) 0, (uchar*) 0, leaf_key, &s_temp); length=(uint) ((buff+buff_length)-half_pos); diff --git a/myisam/mi_dynrec.c b/myisam/mi_dynrec.c index 67d40ec50bf..3542a82be59 100644 --- a/myisam/mi_dynrec.c +++ b/myisam/mi_dynrec.c @@ -509,7 +509,7 @@ int _mi_write_part_record(MI_INFO *info, } length= *reclength+head_length; /* Write only what is needed */ } - DBUG_DUMP("header",(byte*) temp,head_length); + DBUG_DUMP("header",(uchar*) temp,head_length); /* Make a long block for one write */ record_end= *record+length-head_length; @@ -1137,7 +1137,7 @@ err: my_errno= HA_ERR_WRONG_IN_RECORD; DBUG_PRINT("error",("to_end: 0x%lx -> 0x%lx from_end: 0x%lx -> 0x%lx", (long) to, (long) to_end, (long) from, (long) from_end)); - DBUG_DUMP("from",(byte*) info->rec_buff,info->s->base.min_pack_length); + DBUG_DUMP("from",(uchar*) info->rec_buff,info->s->base.min_pack_length); DBUG_RETURN(MY_FILE_ERROR); } /* _mi_rec_unpack */ @@ -1698,7 +1698,7 @@ uint _mi_get_block_info(MI_BLOCK_INFO *info, File file, my_off_t filepos) sizeof(info->header)) goto err; } - DBUG_DUMP("header",(byte*) header,MI_BLOCK_INFO_HEADER_LENGTH); + DBUG_DUMP("header",(uchar*) header,MI_BLOCK_INFO_HEADER_LENGTH); if (info->second_read) { if (info->header[0] <= 6 || info->header[0] == 13) diff --git a/myisam/mi_key.c b/myisam/mi_key.c index 377972b5a5f..90bd6f5a717 100644 --- a/myisam/mi_key.c +++ b/myisam/mi_key.c @@ -189,7 +189,7 @@ uint _mi_make_key(register MI_INFO *info, uint keynr, uchar *key, } _mi_dpointer(info,key,filepos); DBUG_PRINT("exit",("keynr: %d",keynr)); - DBUG_DUMP("key",(byte*) start,(uint) (key-start)+keyseg->length); + DBUG_DUMP("key",(uchar*) start,(uint) (key-start)+keyseg->length); DBUG_EXECUTE("key", _mi_print_key(DBUG_FILE,info->s->keyinfo[keynr].seg,start, (uint) (key-start));); diff --git a/myisam/mi_open.c b/myisam/mi_open.c index c014b45cec5..6865708a941 100644 --- a/myisam/mi_open.c +++ b/myisam/mi_open.c @@ -130,7 +130,7 @@ MI_INFO *mi_open(const char *name, int mode, uint open_flags) (byte*) myisam_file_magic, 4)) { DBUG_PRINT("error",("Wrong header in %s",name_buff)); - DBUG_DUMP("error_dump",(char*) share->state.header.file_version, + DBUG_DUMP("error_dump",(uchar*) share->state.header.file_version, head_length); my_errno=HA_ERR_NOT_A_TABLE; goto err; diff --git a/myisam/mi_packrec.c b/myisam/mi_packrec.c index 81fc4d046e7..63d624a1445 100644 --- a/myisam/mi_packrec.c +++ b/myisam/mi_packrec.c @@ -1368,7 +1368,7 @@ uint _mi_pack_get_block_info(MI_INFO *myisam, MI_BIT_BUFF *bit_buff, VOID(my_seek(file,filepos,MY_SEEK_SET,MYF(0))); if (my_read(file,(char*) header,ref_length,MYF(MY_NABP))) return BLOCK_FATAL_ERROR; - DBUG_DUMP("header",(byte*) header,ref_length); + DBUG_DUMP("header",(uchar*) header,ref_length); } head_length= read_pack_length((uint) myisam->s->pack.version, header, &info->rec_len); diff --git a/myisam/mi_page.c b/myisam/mi_page.c index eb26cf52ed2..27cddaefb1e 100644 --- a/myisam/mi_page.c +++ b/myisam/mi_page.c @@ -49,7 +49,7 @@ uchar *_mi_fetch_keypage(register MI_INFO *info, MI_KEYDEF *keyinfo, { DBUG_PRINT("error",("page %lu had wrong page length: %u", (ulong) page, page_size)); - DBUG_DUMP("page", (char*) tmp, keyinfo->block_length); + DBUG_DUMP("page", (uchar*) tmp, keyinfo->block_length); info->last_keypage = HA_OFFSET_ERROR; mi_print_error(info->s, HA_ERR_CRASHED); my_errno = HA_ERR_CRASHED; @@ -80,7 +80,7 @@ int _mi_write_keypage(register MI_INFO *info, register MI_KEYDEF *keyinfo, DBUG_RETURN((-1)); } DBUG_PRINT("page",("write page at: %lu",(long) page)); - DBUG_DUMP("buff",(byte*) buff,mi_getint(buff)); + DBUG_DUMP("buff",(uchar*) buff,mi_getint(buff)); #endif if ((length=keyinfo->block_length) > IO_SIZE*2 && diff --git a/myisam/mi_search.c b/myisam/mi_search.c index 7016a3a6876..530be5e042f 100644 --- a/myisam/mi_search.c +++ b/myisam/mi_search.c @@ -78,7 +78,7 @@ int _mi_search(register MI_INFO *info, register MI_KEYDEF *keyinfo, if (!(buff=_mi_fetch_keypage(info,keyinfo,pos,DFLT_INIT_HITS,info->buff, test(!(nextflag & SEARCH_SAVE_BUFF))))) goto err; - DBUG_DUMP("page",(byte*) buff,mi_getint(buff)); + DBUG_DUMP("page",(uchar*) buff,mi_getint(buff)); flag=(*keyinfo->bin_search)(info,keyinfo,buff,key,key_len,nextflag, &keypos,lastkey, &last_key); @@ -814,7 +814,7 @@ uint _mi_get_pack_key(register MI_KEYDEF *keyinfo, uint nod_flag, DBUG_PRINT("error", ("Found too long null packed key: %u of %u at %lx", length, keyseg->length, (long) *page_pos)); - DBUG_DUMP("key",(char*) *page_pos,16); + DBUG_DUMP("key",(uchar*) *page_pos,16); mi_print_error(keyinfo->share, HA_ERR_CRASHED); my_errno=HA_ERR_CRASHED; return 0; @@ -871,7 +871,7 @@ uint _mi_get_pack_key(register MI_KEYDEF *keyinfo, uint nod_flag, { DBUG_PRINT("error",("Found too long packed key: %u of %u at %lx", length, keyseg->length, (long) *page_pos)); - DBUG_DUMP("key",(char*) *page_pos,16); + DBUG_DUMP("key",(uchar*) *page_pos,16); mi_print_error(keyinfo->share, HA_ERR_CRASHED); my_errno=HA_ERR_CRASHED; return 0; /* Error */ @@ -942,7 +942,7 @@ uint _mi_get_binary_pack_key(register MI_KEYDEF *keyinfo, uint nod_flag, { DBUG_PRINT("error",("Found too long binary packed key: %u of %u at %lx", length, keyinfo->maxlength, (long) *page_pos)); - DBUG_DUMP("key",(char*) *page_pos,16); + DBUG_DUMP("key",(uchar*) *page_pos,16); mi_print_error(keyinfo->share, HA_ERR_CRASHED); my_errno=HA_ERR_CRASHED; DBUG_RETURN(0); /* Wrong key */ diff --git a/myisam/mi_statrec.c b/myisam/mi_statrec.c index f88e5b02bcf..70a09895a3f 100644 --- a/myisam/mi_statrec.c +++ b/myisam/mi_statrec.c @@ -137,8 +137,8 @@ int _mi_cmp_static_record(register MI_INFO *info, register const byte *old) if (memcmp((byte*) info->rec_buff, (byte*) old, (uint) info->s->base.reclength)) { - DBUG_DUMP("read",old,info->s->base.reclength); - DBUG_DUMP("disk",info->rec_buff,info->s->base.reclength); + DBUG_DUMP("read",(uchar *)old,info->s->base.reclength); + DBUG_DUMP("disk",(uchar *)info->rec_buff,info->s->base.reclength); my_errno=HA_ERR_RECORD_CHANGED; /* Record have changed */ DBUG_RETURN(1); } diff --git a/myisam/mi_test1.c b/myisam/mi_test1.c index 3540ac0f580..380f9f412b7 100644 --- a/myisam/mi_test1.c +++ b/myisam/mi_test1.c @@ -647,7 +647,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), printf("test1 Ver 1.2 \n"); exit(0); case '#': - DEBUGGER_ON; DBUG_PUSH (argument); break; case '?': diff --git a/myisam/mi_test2.c b/myisam/mi_test2.c index 5aa9250cf18..3c88ffce2db 100644 --- a/myisam/mi_test2.c +++ b/myisam/mi_test2.c @@ -449,8 +449,8 @@ int main(int argc, char *argv[]) bcmp(read_record2,read_record3,reclength)) { printf("Can't find last record\n"); - DBUG_DUMP("record2",(byte*) read_record2,reclength); - DBUG_DUMP("record3",(byte*) read_record3,reclength); + DBUG_DUMP("record2",(uchar*) read_record2,reclength); + DBUG_DUMP("record3",(uchar*) read_record3,reclength); goto end; } ant=1; @@ -863,7 +863,6 @@ err: static void get_options(int argc, char **argv) { char *pos,*progname; - DEBUGGER_OFF; progname= argv[0]; @@ -976,7 +975,6 @@ static void get_options(int argc, char **argv) progname); exit(0); case '#': - DEBUGGER_ON; DBUG_PUSH (++pos); break; default: diff --git a/myisam/mi_test3.c b/myisam/mi_test3.c index dd798f1a161..cc86f21a28e 100644 --- a/myisam/mi_test3.c +++ b/myisam/mi_test3.c @@ -119,7 +119,6 @@ int main(int argc,char **argv) static void get_options(int argc, char **argv) { char *pos,*progname; - DEBUGGER_OFF; progname= argv[0]; @@ -149,7 +148,6 @@ static void get_options(int argc, char **argv) printf("Usage: %s [-?lKA] [-f#] [-t#]\n",progname); exit(0); case '#': - DEBUGGER_ON; DBUG_PUSH (++pos); break; default: diff --git a/myisam/mi_write.c b/myisam/mi_write.c index 967fbdc2330..4f11fc78ccf 100644 --- a/myisam/mi_write.c +++ b/myisam/mi_write.c @@ -476,7 +476,7 @@ int _mi_insert(register MI_INFO *info, register MI_KEYDEF *keyinfo, if (key_pos != anc_buff+2+nod_flag && (keyinfo->flag & (HA_BINARY_PACK_KEY | HA_PACK_KEY))) { - DBUG_DUMP("prev_key",(byte*) key_buff,_mi_keylength(keyinfo,key_buff)); + DBUG_DUMP("prev_key",(uchar*) key_buff,_mi_keylength(keyinfo,key_buff)); } if (keyinfo->flag & HA_PACK_KEY) { @@ -583,7 +583,7 @@ int _mi_split_page(register MI_INFO *info, register MI_KEYDEF *keyinfo, MI_KEY_PARAM s_temp; DBUG_ENTER("mi_split_page"); LINT_INIT(after_key); - DBUG_DUMP("buff",(byte*) buff,mi_getint(buff)); + DBUG_DUMP("buff",(uchar*) buff,mi_getint(buff)); if (info->s->keyinfo+info->lastinx == keyinfo) info->page_changed=1; /* Info->buff is used */ @@ -630,7 +630,7 @@ int _mi_split_page(register MI_INFO *info, register MI_KEYDEF *keyinfo, if (_mi_write_keypage(info,keyinfo,new_pos,DFLT_INIT_HITS,info->buff)) DBUG_RETURN(-1); - DBUG_DUMP("key",(byte*) key,_mi_keylength(keyinfo,key)); + DBUG_DUMP("key",(uchar*) key,_mi_keylength(keyinfo,key)); DBUG_RETURN(2); /* Middle key up */ } /* _mi_split_page */ @@ -784,7 +784,7 @@ static int _mi_balance_page(register MI_INFO *info, MI_KEYDEF *keyinfo, if (!_mi_fetch_keypage(info,keyinfo,next_page,DFLT_INIT_HITS,info->buff,0)) goto err; - DBUG_DUMP("next",(byte*) info->buff,mi_getint(info->buff)); + DBUG_DUMP("next",(uchar*) info->buff,mi_getint(info->buff)); /* Test if there is room to share keys */ diff --git a/myisammrg/myrg_rkey.c b/myisammrg/myrg_rkey.c index 0f9e9a9b822..627839331c6 100644 --- a/myisammrg/myrg_rkey.c +++ b/myisammrg/myrg_rkey.c @@ -92,6 +92,6 @@ int myrg_rkey(MYRG_INFO *info,byte *buf,int inx, const byte *key, mi->once_flags|= RRND_PRESERVE_LASTINX; DBUG_PRINT("info", ("using table no: %d", (int) (info->current_table - info->open_tables + 1))); - DBUG_DUMP("result key", (byte*) mi->lastkey, mi->lastkey_length); + DBUG_DUMP("result key", (uchar*) mi->lastkey, mi->lastkey_length); DBUG_RETURN(_myrg_mi_read_record(mi,buf)); } diff --git a/ndb/src/ndbapi/DictCache.cpp b/ndb/src/ndbapi/DictCache.cpp index 9234b6b5219..7a528c9e74a 100644 --- a/ndb/src/ndbapi/DictCache.cpp +++ b/ndb/src/ndbapi/DictCache.cpp @@ -294,7 +294,7 @@ GlobalDictCache::drop(NdbTableImpl * tab) ver.m_refCount--; ver.m_status = DROPPED; if(ver.m_refCount == 0){ - DBUG_PRINT("info", ("refCount is zero, deleting m_impl")) + DBUG_PRINT("info", ("refCount is zero, deleting m_impl")); delete ver.m_impl; vers->erase(i); } diff --git a/ndb/src/ndbapi/NdbBlob.cpp b/ndb/src/ndbapi/NdbBlob.cpp index 611d0396f96..8a854bf9a42 100644 --- a/ndb/src/ndbapi/NdbBlob.cpp +++ b/ndb/src/ndbapi/NdbBlob.cpp @@ -338,7 +338,7 @@ int NdbBlob::setTableKeyValue(NdbOperation* anOp) { DBUG_ENTER("NdbBlob::setTableKeyValue"); - DBUG_DUMP("info", theKeyBuf.data, 4 * theTable->m_keyLenInWords); + DBUG_DUMP("info", (uchar*)theKeyBuf.data, 4 * theTable->m_keyLenInWords); const Uint32* data = (const Uint32*)theKeyBuf.data; const unsigned columns = theTable->m_columns.size(); unsigned pos = 0; @@ -362,7 +362,8 @@ int NdbBlob::setAccessKeyValue(NdbOperation* anOp) { DBUG_ENTER("NdbBlob::setAccessKeyValue"); - DBUG_DUMP("info", theAccessKeyBuf.data, 4 * theAccessTable->m_keyLenInWords); + DBUG_DUMP("info", (uchar*)theAccessKeyBuf.data, + 4 * theAccessTable->m_keyLenInWords); const Uint32* data = (const Uint32*)theAccessKeyBuf.data; const unsigned columns = theAccessTable->m_columns.size(); unsigned pos = 0; @@ -387,7 +388,8 @@ NdbBlob::setPartKeyValue(NdbOperation* anOp, Uint32 part) { DBUG_ENTER("NdbBlob::setPartKeyValue"); DBUG_PRINT("info", ("dist=%u part=%u key=", getDistKey(part), part)); - DBUG_DUMP("info", theKeyBuf.data, 4 * theTable->m_keyLenInWords); + DBUG_DUMP("info", (uchar *)theKeyBuf.data, + 4 * theTable->m_keyLenInWords); // TODO use attr ids after compatibility with 4.1.7 not needed if (anOp->equal("PK", theKeyBuf.data) == -1 || anOp->equal("DIST", getDistKey(part)) == -1 || diff --git a/ndb/src/ndbapi/NdbOperationDefine.cpp b/ndb/src/ndbapi/NdbOperationDefine.cpp index cd357bb44c1..5db0d9f098e 100644 --- a/ndb/src/ndbapi/NdbOperationDefine.cpp +++ b/ndb/src/ndbapi/NdbOperationDefine.cpp @@ -440,7 +440,7 @@ NdbOperation::setValue( const NdbColumnImpl* tAttrInfo, theOperationType, (long) aValuePassed, len)); if (aValuePassed != NULL) - DBUG_DUMP("value", (char*)aValuePassed, len); + DBUG_DUMP("value", (uchar*)aValuePassed, len); int tReturnCode; Uint32 tAttrId; diff --git a/ndb/src/ndbapi/NdbOperationInt.cpp b/ndb/src/ndbapi/NdbOperationInt.cpp index 24e77363fb5..624b15b46f3 100644 --- a/ndb/src/ndbapi/NdbOperationInt.cpp +++ b/ndb/src/ndbapi/NdbOperationInt.cpp @@ -1017,7 +1017,7 @@ NdbOperation::branch_col(Uint32 type, DBUG_PRINT("enter", ("type: %u col:%u val: 0x%lx len: %u label: %u", type, ColId, (long) val, len, Label)); if (val != NULL) - DBUG_DUMP("value", (char*)val, len); + DBUG_DUMP("value", (uchar*)val, len); if (initial_interpreterCheck() == -1) DBUG_RETURN(-1); diff --git a/ndb/src/ndbapi/NdbOperationSearch.cpp b/ndb/src/ndbapi/NdbOperationSearch.cpp index 7f8659916dc..4bdbf135396 100644 --- a/ndb/src/ndbapi/NdbOperationSearch.cpp +++ b/ndb/src/ndbapi/NdbOperationSearch.cpp @@ -62,7 +62,7 @@ NdbOperation::equal_impl(const NdbColumnImpl* tAttrInfo, theOperationType, (long) aValuePassed, aVariableKeyLen)); if (aValuePassed != NULL) - DBUG_DUMP("value", (char*)aValuePassed, aVariableKeyLen); + DBUG_DUMP("value", (uchar*)aValuePassed, aVariableKeyLen); register Uint32 tAttrId; diff --git a/sql-common/client.c b/sql-common/client.c index 88774ce61e1..519deac2bc5 100644 --- a/sql-common/client.c +++ b/sql-common/client.c @@ -2113,7 +2113,7 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,const char *host, const char *user, /* Check if version of protocol matches current one */ mysql->protocol_version= net->read_pos[0]; - DBUG_DUMP("packet",(char*) net->read_pos,10); + DBUG_DUMP("packet",(uchar*) net->read_pos,10); DBUG_PRINT("info",("mysql protocol version %d, server=%d", PROTOCOL_VERSION, mysql->protocol_version)); if (mysql->protocol_version != PROTOCOL_VERSION) diff --git a/sql/ha_federated.cc b/sql/ha_federated.cc index 7a7d65a3d34..2ccfeba74cb 100644 --- a/sql/ha_federated.cc +++ b/sql/ha_federated.cc @@ -1095,7 +1095,7 @@ bool ha_federated::create_where_from_key(String *to, uint store_length= key_part->store_length; uint part_length= min(store_length, length); needs_quotes= 1; - DBUG_DUMP("key, start of loop", ptr, length); + DBUG_DUMP("key, start of loop", (uchar *)ptr, length); if (key_part->null_bit) { diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc index a2de8ea1d0b..1be6137460b 100644 --- a/sql/ha_innodb.cc +++ b/sql/ha_innodb.cc @@ -4250,7 +4250,7 @@ ha_innobase::rnd_pos( int error; uint keynr = active_index; DBUG_ENTER("rnd_pos"); - DBUG_DUMP("key", pos, ref_length); + DBUG_DUMP("key", (uchar *)pos, ref_length); statistic_increment(current_thd->status_var.ha_read_rnd_count, &LOCK_status); diff --git a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc index e3ab2b67e26..0a75b328ca0 100644 --- a/sql/ha_ndbcluster.cc +++ b/sql/ha_ndbcluster.cc @@ -677,7 +677,7 @@ int ha_ndbcluster::set_ndb_key(NdbOperation *ndb_op, Field *field, DBUG_PRINT("enter", ("%d: %s, ndb_type: %u, len=%d", fieldnr, field->field_name, field->type(), pack_len)); - DBUG_DUMP("key", (char*)field_ptr, pack_len); + DBUG_DUMP("key", (uchar*)field_ptr, pack_len); DBUG_ASSERT(ndb_supported_type(field->type())); DBUG_ASSERT(! (field->flags & BLOB_FLAG)); @@ -699,7 +699,7 @@ int ha_ndbcluster::set_ndb_value(NdbOperation *ndb_op, Field *field, DBUG_PRINT("enter", ("%d: %s, type: %u, len=%d, is_null=%s", fieldnr, field->field_name, field->type(), pack_len, field->is_null()?"Y":"N")); - DBUG_DUMP("value", (char*) field_ptr, pack_len); + DBUG_DUMP("value", (uchar*) field_ptr, pack_len); DBUG_ASSERT(ndb_supported_type(field->type())); { @@ -737,7 +737,7 @@ int ha_ndbcluster::set_ndb_value(NdbOperation *ndb_op, Field *field, // Set value to NULL DBUG_RETURN((ndb_op->setValue(fieldnr, (char*)NULL, pack_len) != 0)); DBUG_PRINT("info", ("bit field")); - DBUG_DUMP("value", (char*)&bits, pack_len); + DBUG_DUMP("value", (uchar*)&bits, pack_len); #ifdef WORDS_BIGENDIAN /* store lsw first */ bits = ((bits >> 32) & 0x00000000FFFFFFFFLL) @@ -768,7 +768,7 @@ int ha_ndbcluster::set_ndb_value(NdbOperation *ndb_op, Field *field, DBUG_PRINT("value", ("set blob ptr: %p len: %u", blob_ptr, blob_len)); - DBUG_DUMP("value", (char*)blob_ptr, min(blob_len, 26)); + DBUG_DUMP("value", (uchar*)blob_ptr, min(blob_len, 26)); if (set_blob_value) *set_blob_value= TRUE; @@ -1007,8 +1007,8 @@ int ha_ndbcluster::get_metadata(const char *path) ("metadata, pack_length: %d getFrmLength: %d memcmp: %d", pack_length, tab->getFrmLength(), memcmp(pack_data, tab->getFrmData(), pack_length))); - DBUG_DUMP("pack_data", (char*)pack_data, pack_length); - DBUG_DUMP("frm", (char*)tab->getFrmData(), tab->getFrmLength()); + DBUG_DUMP("pack_data", (uchar*)pack_data, pack_length); + DBUG_DUMP("frm", (uchar*)tab->getFrmData(), tab->getFrmLength()); error= 3; invalidating_ndb_table= FALSE; } @@ -1502,7 +1502,7 @@ int ha_ndbcluster::pk_read(const byte *key, uint key_len, byte *buf) int res; DBUG_ENTER("pk_read"); DBUG_PRINT("enter", ("key_len: %u", key_len)); - DBUG_DUMP("key", (char*)key, key_len); + DBUG_DUMP("key", (uchar*)key, key_len); NdbOperation::LockMode lm= (NdbOperation::LockMode)get_ndb_lock_type(m_lock.type); @@ -1514,7 +1514,7 @@ int ha_ndbcluster::pk_read(const byte *key, uint key_len, byte *buf) { // This table has no primary key, use "hidden" primary key DBUG_PRINT("info", ("Using hidden key")); - DBUG_DUMP("key", (char*)key, 8); + DBUG_DUMP("key", (uchar*)key, 8); if (set_hidden_key(op, no_fields, key)) ERR_RETURN(trans->getNdbError()); @@ -1797,7 +1797,7 @@ int ha_ndbcluster::unique_index_read(const byte *key, NdbIndexOperation *op; DBUG_ENTER("ha_ndbcluster::unique_index_read"); DBUG_PRINT("enter", ("key_len: %u, index: %u", key_len, active_index)); - DBUG_DUMP("key", (char*)key, key_len); + DBUG_DUMP("key", (uchar*)key, key_len); NdbOperation::LockMode lm= (NdbOperation::LockMode)get_ndb_lock_type(m_lock.type); @@ -2126,7 +2126,7 @@ int ha_ndbcluster::set_bounds(NdbIndexScanOperation *op, { DBUG_PRINT("info", ("key %d:%d offset=%d length=%d last=%d bound=%d", j, i, tot_len, part_len, p.part_last, p.bound_type)); - DBUG_DUMP("info", (const char*)p.part_ptr, part_store_len); + DBUG_DUMP("info", (const uchar*)p.part_ptr, part_store_len); // Set bound if not cancelled via type -1 if (p.bound_type != -1) @@ -2644,7 +2644,7 @@ int ha_ndbcluster::update_row(const byte *old_data, byte *new_data) // Require that the PK for this record has previously been // read into m_ref - DBUG_DUMP("key", m_ref, NDB_HIDDEN_PRIMARY_KEY_LENGTH); + DBUG_DUMP("key", (uchar *)m_ref, NDB_HIDDEN_PRIMARY_KEY_LENGTH); if (set_hidden_key(op, table->s->fields, m_ref)) ERR_RETURN(op->getNdbError()); @@ -2864,8 +2864,6 @@ void ha_ndbcluster::print_results() DBUG_ENTER("print_results"); #ifndef DBUG_OFF - if (!_db_on_) - DBUG_VOID_RETURN; char buf_type[MAX_FIELD_WIDTH], buf_val[MAX_FIELD_WIDTH]; String type(buf_type, sizeof(buf_type), &my_charset_bin); @@ -3341,7 +3339,7 @@ void ha_ndbcluster::position(const byte *record) memcpy(ref, m_ref, ref_length); } - DBUG_DUMP("ref", (char*)ref, ref_length); + DBUG_DUMP("ref", (uchar*)ref, ref_length); DBUG_VOID_RETURN; } @@ -6132,14 +6130,14 @@ ha_ndbcluster::register_query_cache_table(THD *thd, if (!is_autocommit) { - DBUG_PRINT("exit", ("Can't register table during transaction")) + DBUG_PRINT("exit", ("Can't register table during transaction")); DBUG_RETURN(FALSE); } if (ndb_get_commitcount(thd, m_dbname, m_tabname, &commit_count)) { *engine_data= 0; - DBUG_PRINT("exit", ("Error, could not get commitcount")) + DBUG_PRINT("exit", ("Error, could not get commitcount")); DBUG_RETURN(FALSE); } *engine_data= commit_count; @@ -6263,7 +6261,7 @@ static int packfrm(const void *data, uint len, } DBUG_PRINT("info", ("org_len: %lu comp_len: %lu", org_len, comp_len)); - DBUG_DUMP("compressed", (char*)data, org_len); + DBUG_DUMP("compressed", (uchar*)data, org_len); error= 2; blob_len= sizeof(frm_blob_struct::frm_blob_header)+org_len; @@ -6307,7 +6305,7 @@ static int unpackfrm(const void **unpack_data, uint *unpack_len, DBUG_PRINT("blob",("ver: %lu complen: %lu orglen: %lu", ver,complen,orglen)); - DBUG_DUMP("blob->data", (char*) blob->data, complen); + DBUG_DUMP("blob->data", (uchar*) blob->data, complen); if (ver != 1) { diff --git a/sql/ha_ndbcluster_cond.cc b/sql/ha_ndbcluster_cond.cc index f5b41959b40..37e710acff4 100644 --- a/sql/ha_ndbcluster_cond.cc +++ b/sql/ha_ndbcluster_cond.cc @@ -1419,7 +1419,7 @@ int ha_ndbcluster_cond::generate_scan_filter_from_key(NdbScanOperation *op, uint32 pack_len= field->pack_length(); const byte* ptr= key; DBUG_PRINT("info", ("Filtering value for %s", field->field_name)); - DBUG_DUMP("key", (char*)ptr, pack_len); + DBUG_DUMP("key", (uchar*)ptr, pack_len); if (key_part->null_bit) { DBUG_PRINT("info", ("Generating ISNULL filter")); From 84f761daaf1b25f82f60bca3d2fa552c443d757d Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@macbook.gmz" <> Date: Sat, 29 Mar 2008 16:12:23 +0200 Subject: [PATCH 126/139] fixes for warnings and compile errors for the fix of bug 26243 --- extra/charset2html.c | 2 ++ sql/ha_berkeley.cc | 8 ++++---- sql/mysqld.cc | 2 +- sql/sql_union.cc | 2 ++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/extra/charset2html.c b/extra/charset2html.c index 8795c82bc34..8dcfa0c8990 100644 --- a/extra/charset2html.c +++ b/extra/charset2html.c @@ -153,7 +153,9 @@ int main(int argc, char **argv) { my_init(); if (argc > argcnt && argv[argcnt][0] == '-' && argv[argcnt][1] == '#') + { DBUG_PUSH(argv[argcnt++]+2); + } if (argc > argcnt) the_set = argv[argcnt++]; diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc index fbfd5031656..1de40db2724 100644 --- a/sql/ha_berkeley.cc +++ b/sql/ha_berkeley.cc @@ -467,7 +467,7 @@ berkeley_cmp_packed_key(DB *file, const DBT *new_key, const DBT *saved_key) KEY_PART_INFO *key_part= key->key_part, *end=key_part+key->key_parts; uint key_length=new_key->size; - DBUG_DUMP("key_in_index", saved_key_ptr, saved_key->size); + DBUG_DUMP("key_in_index", (uchar *)saved_key_ptr, saved_key->size); for (; key_part != end && (int) key_length > 0; key_part++) { int cmp; @@ -903,7 +903,7 @@ DBT *ha_berkeley::create_key(DBT *key, uint keynr, char *buff, key_length-=key_part->length; } key->size= (u_int32_t) (buff - (char*) key->data); - DBUG_DUMP("key",(char*) key->data, key->size); + DBUG_DUMP("key",(uchar*) key->data, key->size); DBUG_RETURN(key); } @@ -947,7 +947,7 @@ DBT *ha_berkeley::pack_key(DBT *key, uint keynr, char *buff, key_length-=key_part->store_length; } key->size= (u_int32_t) (buff - (char*) key->data); - DBUG_DUMP("key",(char*) key->data, key->size); + DBUG_DUMP("key",(uchar*) key->data, key->size); DBUG_RETURN(key); } @@ -1705,7 +1705,7 @@ DBT *ha_berkeley::get_pos(DBT *to, byte *pos) pos+=key_part->field->packed_col_length((char*) pos,key_part->length); to->size= (uint) (pos- (byte*) to->data); } - DBUG_DUMP("key", (char*) to->data, to->size); + DBUG_DUMP("key", (uchar*) to->data, to->size); return to; } diff --git a/sql/mysqld.cc b/sql/mysqld.cc index b8f675ff696..c239530f2fc 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -6943,7 +6943,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)), switch(optid) { case '#': #ifndef DBUG_OFF - DBUG_PUSH(argument ? argument : default_dbug_option); + DBUG_SET_INITIAL(argument ? argument : default_dbug_option); #endif opt_endinfo=1; /* unireg: memory allocation */ break; diff --git a/sql/sql_union.cc b/sql/sql_union.cc index 25a0540e4dd..da5e118b069 100644 --- a/sql/sql_union.cc +++ b/sql/sql_union.cc @@ -444,7 +444,9 @@ bool st_select_lex_unit::exec() } /* re-enabling indexes for next subselect iteration */ if (union_distinct && table->file->enable_indexes(HA_KEY_SWITCH_ALL)) + { DBUG_ASSERT(0); + } } for (SELECT_LEX *sl= select_cursor; sl; sl= sl->next_select()) { From fd9993db871d6f74f2064b46a2a185a9ac3104f6 Mon Sep 17 00:00:00 2001 From: "gkodinov/kgeorge@macbook.gmz" <> Date: Sat, 29 Mar 2008 17:50:46 +0200 Subject: [PATCH 127/139] fixed warnings from the fix of 26243 --- myisam/mi_check.c | 2 +- myisam/mi_keycache.c | 1 + mysys/mf_keycache.c | 2 +- sql/examples/ha_tina.cc | 2 +- sql/item_func.cc | 2 +- sql/lock.cc | 2 +- sql/sql_analyse.cc | 24 ++++++++++++------------ 7 files changed, 18 insertions(+), 17 deletions(-) diff --git a/myisam/mi_check.c b/myisam/mi_check.c index 7ed4f3a9f03..daa5886f3ba 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -1935,7 +1935,7 @@ int mi_sort_index(MI_CHECK *param, register MI_INFO *info, my_string name) for (key= 0,keyinfo= &share->keyinfo[0]; key < share->base.keys ; key++,keyinfo++) if (keyinfo->key_alg == HA_KEY_ALG_RTREE) - return 0; + DBUG_RETURN(0); if (!(param->testflag & T_SILENT)) printf("- Sorting index for MyISAM-table '%s'\n",name); diff --git a/myisam/mi_keycache.c b/myisam/mi_keycache.c index bb465dbecce..6694893e9c3 100644 --- a/myisam/mi_keycache.c +++ b/myisam/mi_keycache.c @@ -158,4 +158,5 @@ void mi_change_key_cache(KEY_CACHE *old_key_cache, */ multi_key_cache_change(old_key_cache, new_key_cache); pthread_mutex_unlock(&THR_LOCK_myisam); + DBUG_VOID_RETURN; } diff --git a/mysys/mf_keycache.c b/mysys/mf_keycache.c index baf3bffccb8..f27ade7bfc0 100644 --- a/mysys/mf_keycache.c +++ b/mysys/mf_keycache.c @@ -551,7 +551,7 @@ finish: } #endif keycache_pthread_mutex_unlock(&keycache->cache_lock); - return blocks; + DBUG_RETURN(blocks); } diff --git a/sql/examples/ha_tina.cc b/sql/examples/ha_tina.cc index 0d1d821cf17..0b57fe86e62 100644 --- a/sql/examples/ha_tina.cc +++ b/sql/examples/ha_tina.cc @@ -883,7 +883,7 @@ int ha_tina::delete_all_rows() DBUG_ENTER("ha_tina::delete_all_rows"); if (!records_is_known) - return (my_errno=HA_ERR_WRONG_COMMAND); + DBUG_RETURN(my_errno=HA_ERR_WRONG_COMMAND); /* Invalidate all cached mmap pages */ if (free_mmap(share)) diff --git a/sql/item_func.cc b/sql/item_func.cc index a6fb8a94b69..7416471d630 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -5115,7 +5115,7 @@ double Item_func_match::val_real() DBUG_RETURN(-1.0); if (key != NO_SUCH_KEY && table->null_row) /* NULL row from an outer join */ - return 0.0; + DBUG_RETURN(0.0); if (join_key) { diff --git a/sql/lock.cc b/sql/lock.cc index cf06be5f95f..47458702033 100644 --- a/sql/lock.cc +++ b/sql/lock.cc @@ -703,7 +703,7 @@ static MYSQL_LOCK *get_lock_data(THD *thd, TABLE **table_ptr, uint count, { my_error(ER_WRONG_LOCK_OF_SYSTEM_TABLE, MYF(0), table_ptr[i]->s->db, table_ptr[i]->s->table_name); - return 0; + DBUG_RETURN(0); } } diff --git a/sql/sql_analyse.cc b/sql/sql_analyse.cc index 2e90d00f8aa..4b3264069b5 100644 --- a/sql/sql_analyse.cc +++ b/sql/sql_analyse.cc @@ -195,13 +195,13 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len) */ for (; str != end && my_isspace(system_charset_info, *str); str++) ; if (str == end) - return 0; + DBUG_RETURN(0); if (*str == '-') { info->negative = 1; if (++str == end || *str == '0') // converting -0 to a number - return 0; // might lose information + DBUG_RETURN(0); // might lose information } else info->negative = 0; @@ -219,33 +219,33 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len) int error; info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error); if (info->integers == 1) - return 0; // a single number can't be zerofill + DBUG_RETURN(0); // a single number can't be zerofill info->maybe_zerofill = 1; - return 1; // a zerofill number, or an integer + DBUG_RETURN(1); // a zerofill number, or an integer } if (*str == '.' || *str == 'e' || *str == 'E') { if (info->zerofill) // can't be zerofill anymore - return 0; + DBUG_RETURN(0); if ((str + 1) == end) // number was something like '123[.eE]' { char *endpos= (char*) str; int error; info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error); - return 1; + DBUG_RETURN(1); } if (*str == 'e' || *str == 'E') // number may be something like '1e+50' { str++; if (*str != '-' && *str != '+') - return 0; + DBUG_RETURN(0); for (str++; str != end && my_isdigit(system_charset_info,*str); str++) ; if (str == end) { info->is_float = 1; // we can't use variable decimals here - return 1; + DBUG_RETURN(1); } - return 0; + DBUG_RETURN(0); } for (str++; *(end - 1) == '0'; end--); // jump over zeros at the end if (str == end) // number was something like '123.000' @@ -253,17 +253,17 @@ bool test_if_number(NUM_INFO *info, const char *str, uint str_len) char *endpos= (char*) str; int error; info->ullval= (ulonglong) my_strtoll10(begin, &endpos, &error); - return 1; + DBUG_RETURN(1); } for (; str != end && my_isdigit(system_charset_info,*str); str++) info->decimals++; if (str == end) { info->dval = my_atof(begin); - return 1; + DBUG_RETURN(1); } } - return 0; + DBUG_RETURN(0); } From f13f6eaff3e632eb595c90f8c035b24acf96a60f Mon Sep 17 00:00:00 2001 From: "iggy@amd64.(none)" <> Date: Sun, 30 Mar 2008 15:46:37 -0400 Subject: [PATCH 128/139] Bug#26243 - Cleanup Valgrind error --- sql/tztime.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/tztime.cc b/sql/tztime.cc index bedbf921cae..b7381e2ed95 100644 --- a/sql/tztime.cc +++ b/sql/tztime.cc @@ -2278,7 +2278,7 @@ my_tz_find(const String * name, TABLE_LIST *tz_tables) DBUG_ENTER("my_tz_find"); DBUG_PRINT("enter", ("time zone name='%s'", - name ? ((String *)name)->c_ptr() : "NULL")); + name ? ((String *)name)->c_ptr_safe() : "NULL")); DBUG_ASSERT(!time_zone_tables_exist || tz_tables || current_thd->slave_thread); From 6c8a0887ccced5815b91808245976dc4204a09fc Mon Sep 17 00:00:00 2001 From: "mkindahl@dl145h.mysql.com" <> Date: Mon, 31 Mar 2008 16:32:45 +0200 Subject: [PATCH 129/139] Removing race conditions from rpl_packet causing test to fail. --- mysql-test/r/rpl_packet.result | 4 ++++ mysql-test/t/rpl_packet.test | 16 +++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/mysql-test/r/rpl_packet.result b/mysql-test/r/rpl_packet.result index 9425724b434..88c63994fff 100644 --- a/mysql-test/r/rpl_packet.result +++ b/mysql-test/r/rpl_packet.result @@ -6,6 +6,10 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9; start slave; drop database if exists DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________; create database DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________; +SET @@global.max_allowed_packet=1024; +SET @@global.net_buffer_length=1024; +STOP SLAVE; +START SLAVE; select @@net_buffer_length, @@max_allowed_packet; @@net_buffer_length @@max_allowed_packet 1024 1024 diff --git a/mysql-test/t/rpl_packet.test b/mysql-test/t/rpl_packet.test index 84bc5d908bf..a3efdf24bce 100644 --- a/mysql-test/t/rpl_packet.test +++ b/mysql-test/t/rpl_packet.test @@ -13,13 +13,25 @@ enable_warnings; eval create database $db; connection master; -select @@net_buffer_length, @@max_allowed_packet; +SET @@global.max_allowed_packet=1024; +SET @@global.net_buffer_length=1024; + +# Restart slave for setting to take effect +connection slave; +STOP SLAVE; +source include/wait_for_slave_to_stop.inc; +START SLAVE; +source include/wait_for_slave_to_start.inc; + +# Reconnect to master for new setting to take effect disconnect master; # alas, can't use eval here; if db name changed apply the change here connect (master,localhost,root,,DB_NAME_OF_MAX_LENGTH_AKA_NAME_LEN_64_BYTES_____________________); connection master; +select @@net_buffer_length, @@max_allowed_packet; + create table `t1` (`f1` LONGTEXT) ENGINE=MyISAM; INSERT INTO `t1`(`f1`) VALUES ('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa1023'); @@ -52,7 +64,9 @@ SET @@global.net_buffer_length=4096; # Restart slave for new setting to take effect connection slave; STOP SLAVE; +source include/wait_for_slave_to_stop.inc; START SLAVE; +source include/wait_for_slave_to_start.inc; # Reconnect to master for new setting to take effect disconnect master; From 89ddc0aa52bf1c6b2ec6ca1394b98d3b0c14c5ec Mon Sep 17 00:00:00 2001 From: "mleich@five.local.lan" <> Date: Mon, 31 Mar 2008 19:48:02 +0200 Subject: [PATCH 130/139] Fix for Bug#35335 funcs_1: Some tests fail within load_file during pushbuild runs Solution: 1. Move files with input data used in load_file, load data etc. from suite/funcs_1/ to std_data 2. Use for testsuite funcs_1 the server option --secure-file-priv= 3. Outfiles have to be stored under MYSQLTEST_VARDIR + changes according to WL#4304 Cleanup in funcs_1 tests - backport of fixes/improvements made in 5.1 to 5.0 The differences between scripts in 5.0 and 5.1 cause much additional and annoying work during any upmerge. - replace error numbers with names - improved comments - improved formatting - Unify storage engine names so that result files for storage engine variants do not differ (some tests) - remove a script no more used (tests are done in other scripts) --- mysql-test/Makefile.am | 8 +- mysql-test/mysql-test-run.pl | 4 +- .../data => std_data/funcs_1}/innodb_tb1.txt | 0 .../data => std_data/funcs_1}/innodb_tb2.txt | 0 .../data => std_data/funcs_1}/innodb_tb3.txt | 0 .../data => std_data/funcs_1}/innodb_tb4.txt | 0 mysql-test/std_data/funcs_1/load_file.txt | 1 + .../data => std_data/funcs_1}/memory_tb1.txt | 0 .../data => std_data/funcs_1}/memory_tb2.txt | 0 .../data => std_data/funcs_1}/memory_tb3.txt | 0 .../data => std_data/funcs_1}/memory_tb4.txt | 0 .../data => std_data/funcs_1}/myisam_tb1.txt | 0 .../data => std_data/funcs_1}/myisam_tb2.txt | 0 .../data => std_data/funcs_1}/myisam_tb3.txt | 0 .../data => std_data/funcs_1}/myisam_tb4.txt | 0 .../funcs_1/data => std_data/funcs_1}/t3.txt | 0 .../funcs_1/data => std_data/funcs_1}/t4.txt | 0 .../funcs_1/data => std_data/funcs_1}/t7.txt | 0 .../funcs_1/data => std_data/funcs_1}/t9.txt | 0 mysql-test/suite/funcs_1/README.txt | 10 +- .../funcs_1/datadict/datadict_bug_12777.inc | 12 +- .../suite/funcs_1/datadict/datadict_load.inc | 16 +- .../suite/funcs_1/include/innodb_tb1.inc | 119 +- .../suite/funcs_1/include/innodb_tb2.inc | 106 +- .../suite/funcs_1/include/innodb_tb3.inc | 122 +- .../suite/funcs_1/include/innodb_tb4.inc | 106 +- .../suite/funcs_1/include/memory_tb1.inc | 104 +- .../suite/funcs_1/include/memory_tb2.inc | 106 +- .../suite/funcs_1/include/memory_tb3.inc | 111 +- .../suite/funcs_1/include/memory_tb4.inc | 106 +- .../suite/funcs_1/include/myisam_tb1.inc | 118 +- .../suite/funcs_1/include/myisam_tb2.inc | 138 +- .../suite/funcs_1/include/myisam_tb3.inc | 122 +- .../suite/funcs_1/include/myisam_tb4.inc | 136 +- mysql-test/suite/funcs_1/include/sp_tb.inc | 83 +- .../suite/funcs_1/r/innodb_func_view.result | 1222 ++++--- .../funcs_1/r/innodb_storedproc_02.result | 79 +- .../funcs_1/r/innodb_storedproc_03.result | 48 +- .../funcs_1/r/innodb_storedproc_06.result | 51 +- .../funcs_1/r/innodb_storedproc_07.result | 48 +- .../funcs_1/r/innodb_storedproc_08.result | 48 +- .../funcs_1/r/innodb_storedproc_10.result | 157 +- .../suite/funcs_1/r/innodb_trig_0102.result | 185 +- .../suite/funcs_1/r/innodb_trig_03.result | 345 +- .../suite/funcs_1/r/innodb_trig_0407.result | 167 +- .../suite/funcs_1/r/innodb_trig_08.result | 322 +- .../suite/funcs_1/r/innodb_trig_09.result | 160 +- .../funcs_1/r/innodb_trig_1011ext.result | 149 +- .../suite/funcs_1/r/innodb_trig_frkey.result | 119 +- .../suite/funcs_1/r/innodb_views.result | 206 +- .../suite/funcs_1/r/is_columns_innodb.result | 585 ++-- .../suite/funcs_1/r/is_columns_memory.result | 559 ++-- .../suite/funcs_1/r/is_columns_myisam.result | 633 ++-- .../suite/funcs_1/r/is_columns_ndb.result | 42 +- .../suite/funcs_1/r/is_tables_innodb.result | 585 ++-- .../suite/funcs_1/r/is_tables_memory.result | 559 ++-- .../suite/funcs_1/r/is_tables_myisam.result | 633 ++-- .../suite/funcs_1/r/is_tables_ndb.result | 42 +- .../suite/funcs_1/r/memory_func_view.result | 1222 ++++--- .../funcs_1/r/memory_storedproc_02.result | 79 +- .../funcs_1/r/memory_storedproc_03.result | 48 +- .../funcs_1/r/memory_storedproc_06.result | 51 +- .../funcs_1/r/memory_storedproc_07.result | 48 +- .../funcs_1/r/memory_storedproc_08.result | 48 +- .../funcs_1/r/memory_storedproc_10.result | 157 +- .../suite/funcs_1/r/memory_trig_0102.result | 173 +- .../suite/funcs_1/r/memory_trig_03.result | 333 +- .../suite/funcs_1/r/memory_trig_0407.result | 155 +- .../suite/funcs_1/r/memory_trig_08.result | 310 +- .../suite/funcs_1/r/memory_trig_09.result | 148 +- .../funcs_1/r/memory_trig_1011ext.result | 137 +- .../suite/funcs_1/r/memory_views.result | 206 +- .../suite/funcs_1/r/myisam_func_view.result | 1222 ++++--- .../funcs_1/r/myisam_storedproc_02.result | 79 +- .../funcs_1/r/myisam_storedproc_03.result | 48 +- .../funcs_1/r/myisam_storedproc_06.result | 51 +- .../funcs_1/r/myisam_storedproc_07.result | 48 +- .../funcs_1/r/myisam_storedproc_08.result | 48 +- .../funcs_1/r/myisam_storedproc_10.result | 157 +- .../suite/funcs_1/r/myisam_trig_0102.result | 185 +- .../suite/funcs_1/r/myisam_trig_03.result | 345 +- .../suite/funcs_1/r/myisam_trig_0407.result | 167 +- .../suite/funcs_1/r/myisam_trig_08.result | 322 +- .../suite/funcs_1/r/myisam_trig_09.result | 160 +- .../funcs_1/r/myisam_trig_1011ext.result | 149 +- .../suite/funcs_1/r/myisam_views.result | 238 +- .../funcs_1/storedproc/cleanup_sp_tb.inc | 5 +- .../suite/funcs_1/storedproc/load_sp_tb.inc | 107 +- .../funcs_1/storedproc/storedproc_02.inc | 348 +- .../funcs_1/storedproc/storedproc_03.inc | 86 +- .../funcs_1/storedproc/storedproc_06.inc | 69 +- .../funcs_1/storedproc/storedproc_10.inc | 109 +- .../suite/funcs_1/t/innodb_trig_0407.test | 2 +- .../suite/funcs_1/t/is_basics_mixed.test | 2 +- .../suite/funcs_1/t/memory_storedproc_02.test | 4 +- .../suite/funcs_1/t/memory_storedproc_03.test | 4 +- .../suite/funcs_1/t/memory_storedproc_06.test | 4 +- .../suite/funcs_1/t/memory_storedproc_07.test | 4 +- .../suite/funcs_1/t/memory_storedproc_08.test | 4 +- .../suite/funcs_1/t/memory_storedproc_10.test | 4 +- .../suite/funcs_1/t/myisam_storedproc_02.test | 4 +- .../suite/funcs_1/t/myisam_storedproc_03.test | 4 +- .../suite/funcs_1/t/myisam_storedproc_06.test | 4 +- .../suite/funcs_1/t/myisam_storedproc_07.test | 4 +- .../suite/funcs_1/t/myisam_storedproc_08.test | 4 +- .../suite/funcs_1/t/myisam_storedproc_10.test | 4 +- .../suite/funcs_1/triggers/trig_frkey2.inc | 102 +- .../suite/funcs_1/triggers/triggers_0102.inc | 228 +- .../suite/funcs_1/triggers/triggers_03.inc | 175 +- .../suite/funcs_1/triggers/triggers_0407.inc | 218 +- .../suite/funcs_1/triggers/triggers_08.inc | 279 +- .../suite/funcs_1/triggers/triggers_09.inc | 154 +- .../funcs_1/triggers/triggers_1011ext.inc | 42 +- .../funcs_1/triggers/triggers_master.test | 2818 ----------------- mysql-test/suite/funcs_1/views/func_view.inc | 276 +- .../suite/funcs_1/views/views_master.inc | 6 +- 116 files changed, 9138 insertions(+), 10742 deletions(-) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/innodb_tb1.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/innodb_tb2.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/innodb_tb3.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/innodb_tb4.txt (100%) create mode 100644 mysql-test/std_data/funcs_1/load_file.txt rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/memory_tb1.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/memory_tb2.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/memory_tb3.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/memory_tb4.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/myisam_tb1.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/myisam_tb2.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/myisam_tb3.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/myisam_tb4.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/t3.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/t4.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/t7.txt (100%) rename mysql-test/{suite/funcs_1/data => std_data/funcs_1}/t9.txt (100%) delete mode 100644 mysql-test/suite/funcs_1/triggers/triggers_master.test diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am index 75d00457d14..c11b8e0d5fe 100644 --- a/mysql-test/Makefile.am +++ b/mysql-test/Makefile.am @@ -45,7 +45,8 @@ dist-hook: mkdir -p $(distdir)/t $(distdir)/r $(distdir)/include \ $(distdir)/std_data \ $(distdir)/std_data/ndb_backup50_data_be $(distdir)/std_data/ndb_backup50_data_le \ - $(distdir)/lib + $(distdir)/lib \ + $(distdir)/funcs_1 -$(INSTALL_DATA) $(srcdir)/t/*.def $(distdir)/t $(INSTALL_DATA) $(srcdir)/t/*.test $(distdir)/t -$(INSTALL_DATA) $(srcdir)/t/*.imtest $(distdir)/t @@ -66,6 +67,7 @@ dist-hook: $(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(distdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_be/BACKUP* $(distdir)/std_data/ndb_backup50_data_be $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_le/BACKUP* $(distdir)/std_data/ndb_backup50_data_le + $(INSTALL_DATA) $(srcdir)/std_data/funcs_1/* $(distdir)/std_data/funcs_1 $(INSTALL_DATA) $(srcdir)/lib/*.pl $(distdir)/lib -rm -rf `find $(distdir)/suite -type d -name SCCS` @@ -77,7 +79,8 @@ install-data-local: $(DESTDIR)$(testdir)/std_data \ $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_be \ $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_le \ - $(DESTDIR)$(testdir)/lib + $(DESTDIR)$(testdir)/lib \ + $(DESTDIR)$(testdir)/funcs_1 $(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(testdir) -$(INSTALL_DATA) $(srcdir)/t/*.def $(DESTDIR)$(testdir)/t $(INSTALL_DATA) $(srcdir)/t/*.test $(DESTDIR)$(testdir)/t @@ -103,6 +106,7 @@ install-data-local: $(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(DESTDIR)$(testdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_be/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_be $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_le/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_le + $(INSTALL_DATA) $(srcdir)/std_data/funcs_1/* $(distdir)/std_data/funcs_1 $(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib for f in `(cd $(srcdir); find suite -type f | grep -v SCCS)`; \ do \ diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 7c4677b8274..86e41c19284 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -3739,9 +3739,9 @@ sub mysqld_arguments ($$$$) { { # By default, prevent the started mysqld to access files outside of vardir my $secure_file_dir= $opt_vardir; - if ( $opt_suite ne "main" ) + if ( $opt_suite ne "main" and $opt_suite ne "funcs_1" ) { - # When running a suite other than default allow the mysqld + # When running a suite other than default or funcs_1 allow the mysqld # access to subdirs of mysql-test/ in order to make it possible # to "load data" from the suites data/ directory. $secure_file_dir= $glob_mysql_test_dir; diff --git a/mysql-test/suite/funcs_1/data/innodb_tb1.txt b/mysql-test/std_data/funcs_1/innodb_tb1.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/innodb_tb1.txt rename to mysql-test/std_data/funcs_1/innodb_tb1.txt diff --git a/mysql-test/suite/funcs_1/data/innodb_tb2.txt b/mysql-test/std_data/funcs_1/innodb_tb2.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/innodb_tb2.txt rename to mysql-test/std_data/funcs_1/innodb_tb2.txt diff --git a/mysql-test/suite/funcs_1/data/innodb_tb3.txt b/mysql-test/std_data/funcs_1/innodb_tb3.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/innodb_tb3.txt rename to mysql-test/std_data/funcs_1/innodb_tb3.txt diff --git a/mysql-test/suite/funcs_1/data/innodb_tb4.txt b/mysql-test/std_data/funcs_1/innodb_tb4.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/innodb_tb4.txt rename to mysql-test/std_data/funcs_1/innodb_tb4.txt diff --git a/mysql-test/std_data/funcs_1/load_file.txt b/mysql-test/std_data/funcs_1/load_file.txt new file mode 100644 index 00000000000..930ac1cf371 --- /dev/null +++ b/mysql-test/std_data/funcs_1/load_file.txt @@ -0,0 +1 @@ +Here is content from load_file diff --git a/mysql-test/suite/funcs_1/data/memory_tb1.txt b/mysql-test/std_data/funcs_1/memory_tb1.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/memory_tb1.txt rename to mysql-test/std_data/funcs_1/memory_tb1.txt diff --git a/mysql-test/suite/funcs_1/data/memory_tb2.txt b/mysql-test/std_data/funcs_1/memory_tb2.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/memory_tb2.txt rename to mysql-test/std_data/funcs_1/memory_tb2.txt diff --git a/mysql-test/suite/funcs_1/data/memory_tb3.txt b/mysql-test/std_data/funcs_1/memory_tb3.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/memory_tb3.txt rename to mysql-test/std_data/funcs_1/memory_tb3.txt diff --git a/mysql-test/suite/funcs_1/data/memory_tb4.txt b/mysql-test/std_data/funcs_1/memory_tb4.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/memory_tb4.txt rename to mysql-test/std_data/funcs_1/memory_tb4.txt diff --git a/mysql-test/suite/funcs_1/data/myisam_tb1.txt b/mysql-test/std_data/funcs_1/myisam_tb1.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/myisam_tb1.txt rename to mysql-test/std_data/funcs_1/myisam_tb1.txt diff --git a/mysql-test/suite/funcs_1/data/myisam_tb2.txt b/mysql-test/std_data/funcs_1/myisam_tb2.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/myisam_tb2.txt rename to mysql-test/std_data/funcs_1/myisam_tb2.txt diff --git a/mysql-test/suite/funcs_1/data/myisam_tb3.txt b/mysql-test/std_data/funcs_1/myisam_tb3.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/myisam_tb3.txt rename to mysql-test/std_data/funcs_1/myisam_tb3.txt diff --git a/mysql-test/suite/funcs_1/data/myisam_tb4.txt b/mysql-test/std_data/funcs_1/myisam_tb4.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/myisam_tb4.txt rename to mysql-test/std_data/funcs_1/myisam_tb4.txt diff --git a/mysql-test/suite/funcs_1/data/t3.txt b/mysql-test/std_data/funcs_1/t3.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/t3.txt rename to mysql-test/std_data/funcs_1/t3.txt diff --git a/mysql-test/suite/funcs_1/data/t4.txt b/mysql-test/std_data/funcs_1/t4.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/t4.txt rename to mysql-test/std_data/funcs_1/t4.txt diff --git a/mysql-test/suite/funcs_1/data/t7.txt b/mysql-test/std_data/funcs_1/t7.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/t7.txt rename to mysql-test/std_data/funcs_1/t7.txt diff --git a/mysql-test/suite/funcs_1/data/t9.txt b/mysql-test/std_data/funcs_1/t9.txt similarity index 100% rename from mysql-test/suite/funcs_1/data/t9.txt rename to mysql-test/std_data/funcs_1/t9.txt diff --git a/mysql-test/suite/funcs_1/README.txt b/mysql-test/suite/funcs_1/README.txt index 7e98d1bc117..65f6226d0f2 100644 --- a/mysql-test/suite/funcs_1/README.txt +++ b/mysql-test/suite/funcs_1/README.txt @@ -25,7 +25,7 @@ SESSION_STATUS SESSION_VARIABLES -3. Some hints: +3. Some hints for maintainers of this suite: - SHOW TABLES ... LIKE '' does a case sensitive comparison between the tablename and the pattern. @@ -43,4 +43,12 @@ ERROR 42000: Access denied for user ... to database 'information_schema' DROP DATABASE INFORMATION_SCHEMA; ERROR 42000: Access denied for user ... to database 'INFORMATION_SCHEMA' + - Try to unify results by + --replace_result $engine_type + if we could expect that the results for storage engine variants of a + test differ only in the engine names. + This makes future maintenance easier. + - Avoid the use of include/show_msg*.inc. + They produce "SQL" noise which annoys during server debugging and can be + easy replaced by "--echo ...". diff --git a/mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc b/mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc index 0bca30b1dc3..5ba969fe4cb 100644 --- a/mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc +++ b/mysql-test/suite/funcs_1/datadict/datadict_bug_12777.inc @@ -2,7 +2,7 @@ # # columns in INFORMATION_SCHEMA with VARCHAR(4096) on Linux and Intel or AMD -# processor are shown as VARCHAR(512) on Windows, VARCHAR(1023) on AIX and HPUX, +# processor are shown as VARCHAR(512) on Windows, VARCHAR(1023) on AIX and HPUX, # VARCHAR(1024) on Solaris10, ... see below and in bug #12777 for details. # So we need to replace the output for these systems. There may be other still # not tested / detected systems. @@ -10,10 +10,10 @@ # Setting the variables used below has been moved to the beginning of the datadict # tests to "suite/funcs_1/datadict/datadict_load.inc". # -# SELECT character_maximum_length INTO @CML -# FROM information_schema.columns -# WHERE table_schema = 'information_schema' -# AND table_name = 'columns' +# SELECT character_maximum_length INTO @CML +# FROM information_schema.columns +# WHERE table_schema = 'information_schema' +# AND table_name = 'columns' # AND column_name = 'table_catalog'; # this enables the --replace_result only if needed, using this we never replace @@ -31,7 +31,7 @@ if ($bug_12777_0512) --replace_result 512 4096 1536 12288 } -# aix52, aix52-64bit, hp3750, hp3750-64bit, hpux11, hpux11-64bit, +# aix52, aix52-64bit, hp3750, hp3750-64bit, hpux11, hpux11-64bit, if ($bug_12777_1023) { # nnnn 3*n diff --git a/mysql-test/suite/funcs_1/datadict/datadict_load.inc b/mysql-test/suite/funcs_1/datadict/datadict_load.inc index 542f3bb8eb6..67b25b555ed 100644 --- a/mysql-test/suite/funcs_1/datadict/datadict_load.inc +++ b/mysql-test/suite/funcs_1/datadict/datadict_load.inc @@ -12,14 +12,14 @@ --disable_query_log # ------------------------------------------------------------------------------ -# Get the size of ONE known colum and check the size against some values to -# be able to use the correct --replace_result statement. Using this only the -# one pair of 'wrong' values is replaced and not all occurrencies of all +# Get the size of ONE known colum and check the size against some values to +# be able to use the correct --replace_result statement. Using this only the +# one pair of 'wrong' values is replaced and not all occurrencies of all # possible pairs of values. See bug #12777 for details. -SELECT character_maximum_length INTO @CML - FROM information_schema.columns - WHERE table_schema = 'information_schema' - AND table_name = 'columns' +SELECT character_maximum_length INTO @CML + FROM information_schema.columns + WHERE table_schema = 'information_schema' + AND table_name = 'columns' AND column_name = 'table_catalog'; let $bug_12777_0512= `SELECT @CML = 512`; @@ -53,7 +53,7 @@ let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host NOT In ("loca # load tables # ----------- # -# this was part of the 3 files $_datadict.test, but it has been moved +# this was part of the 3 files $_datadict.test, but it has been moved # here to have only one place where all preparation for the test is done. # ################################################################################ diff --git a/mysql-test/suite/funcs_1/include/innodb_tb1.inc b/mysql-test/suite/funcs_1/include/innodb_tb1.inc index 115d8b6318d..4fede496478 100644 --- a/mysql-test/suite/funcs_1/include/innodb_tb1.inc +++ b/mysql-test/suite/funcs_1/include/innodb_tb1.inc @@ -4,66 +4,67 @@ drop table if exists tb1 ; --enable_warnings create table tb1 ( -f1 char(0), -f2 char(0) binary, -f3 char(0) ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, +f1 char(0), +f2 char(0) binary, +f3 char(0) ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal, -f34 decimal unsigned, -f35 decimal zerofill, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal, +f34 decimal unsigned, +f35 decimal zerofill, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = innodb; - ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/innodb_tb1.txt' +into table tb1; diff --git a/mysql-test/suite/funcs_1/include/innodb_tb2.inc b/mysql-test/suite/funcs_1/include/innodb_tb2.inc index 99c09c1d963..b9a0910a0af 100644 --- a/mysql-test/suite/funcs_1/include/innodb_tb2.inc +++ b/mysql-test/suite/funcs_1/include/innodb_tb2.inc @@ -4,58 +4,60 @@ drop table if exists tb2 ; --enable_warnings create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = innodb; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/innodb_tb2.txt' +into table tb2; diff --git a/mysql-test/suite/funcs_1/include/innodb_tb3.inc b/mysql-test/suite/funcs_1/include/innodb_tb3.inc index d8397b2b581..b8562d7acf2 100644 --- a/mysql-test/suite/funcs_1/include/innodb_tb3.inc +++ b/mysql-test/suite/funcs_1/include/innodb_tb3.inc @@ -4,65 +4,67 @@ drop table if exists tb3 ; --enable_warnings create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; diff --git a/mysql-test/suite/funcs_1/include/innodb_tb4.inc b/mysql-test/suite/funcs_1/include/innodb_tb4.inc index 2cff9e57075..ef8fc240eca 100644 --- a/mysql-test/suite/funcs_1/include/innodb_tb4.inc +++ b/mysql-test/suite/funcs_1/include/innodb_tb4.inc @@ -4,56 +4,56 @@ drop table if exists tb4; --enable_warnings create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), f226 set("1set","2set"), f235 char(0) unicode, f236 char(90), @@ -64,5 +64,7 @@ f240 varchar(2000) unicode, f241 char(100) unicode ) engine = innodb; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/innodb_tb4.txt' +into table tb4; diff --git a/mysql-test/suite/funcs_1/include/memory_tb1.inc b/mysql-test/suite/funcs_1/include/memory_tb1.inc index 7d66443c62f..3a4ebb0c484 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb1.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb1.inc @@ -4,57 +4,59 @@ drop table if exists tb1 ; --enable_warnings create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f1 char, +f2 char binary, +f3 char ascii, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = memory; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/memory_tb1.txt' +into table tb1; diff --git a/mysql-test/suite/funcs_1/include/memory_tb2.inc b/mysql-test/suite/funcs_1/include/memory_tb2.inc index 869a4904ce0..c059e565c64 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb2.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb2.inc @@ -4,58 +4,60 @@ drop table if exists tb2 ; --enable_warnings create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = memory; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/memory_tb2.txt' +into table tb2 ; diff --git a/mysql-test/suite/funcs_1/include/memory_tb3.inc b/mysql-test/suite/funcs_1/include/memory_tb3.inc index 5aa56d06ede..b5d4bb93f12 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb3.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb3.inc @@ -4,60 +4,61 @@ drop table if exists tb3; --enable_warnings create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; - +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; diff --git a/mysql-test/suite/funcs_1/include/memory_tb4.inc b/mysql-test/suite/funcs_1/include/memory_tb4.inc index 97bc04118bd..f9cc1d53c52 100644 --- a/mysql-test/suite/funcs_1/include/memory_tb4.inc +++ b/mysql-test/suite/funcs_1/include/memory_tb4.inc @@ -4,56 +4,56 @@ drop table if exists tb4 ; --enable_warnings create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), f226 set("1set","2set"), f236 char(95) unicode, f241 char(255) unicode, @@ -63,5 +63,7 @@ f239 varbinary(0), f240 varchar(1200) unicode ) engine = memory; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/memory_tb4.txt' +into table tb4; diff --git a/mysql-test/suite/funcs_1/include/myisam_tb1.inc b/mysql-test/suite/funcs_1/include/myisam_tb1.inc index f2a8be4f5d6..da740cffaf3 100644 --- a/mysql-test/suite/funcs_1/include/myisam_tb1.inc +++ b/mysql-test/suite/funcs_1/include/myisam_tb1.inc @@ -4,65 +4,67 @@ drop table if exists tb1 ; --enable_warnings create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, +f1 char, +f2 char binary, +f3 char ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = myisam; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/myisam_tb1.txt' +into table tb1; diff --git a/mysql-test/suite/funcs_1/include/myisam_tb2.inc b/mysql-test/suite/funcs_1/include/myisam_tb2.inc index 528031700cb..c878b1853f0 100644 --- a/mysql-test/suite/funcs_1/include/myisam_tb2.inc +++ b/mysql-test/suite/funcs_1/include/myisam_tb2.inc @@ -4,77 +4,79 @@ drop table if exists tb2 ; --enable_warnings create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null ) engine = myisam; # The original columns. They are replaced by varbinary, because the funcs_1 tests should # not depend on the optional availability of the geometry feature. -# f110 geometry null, -# f111 point null , -# f112 linestring null , -# f113 polygon null , -# f114 geometrycollection , -# f115 multipoint null , -# f116 multilinestring null, -# f117 multipolygon null +# f110 geometry null, +# f111 point null , +# f112 linestring null , +# f113 polygon null , +# f114 geometrycollection , +# f115 multipoint null , +# f116 multilinestring null, +# f117 multipolygon null ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/myisam_tb2.txt' +into table tb2; diff --git a/mysql-test/suite/funcs_1/include/myisam_tb3.inc b/mysql-test/suite/funcs_1/include/myisam_tb3.inc index aca35c0e11b..4ee6388f3bc 100644 --- a/mysql-test/suite/funcs_1/include/myisam_tb3.inc +++ b/mysql-test/suite/funcs_1/include/myisam_tb3.inc @@ -4,65 +4,67 @@ drop table if exists tb3 ; --enable_warnings create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; diff --git a/mysql-test/suite/funcs_1/include/myisam_tb4.inc b/mysql-test/suite/funcs_1/include/myisam_tb4.inc index d9051847c45..1f7d19fd061 100644 --- a/mysql-test/suite/funcs_1/include/myisam_tb4.inc +++ b/mysql-test/suite/funcs_1/include/myisam_tb4.inc @@ -4,64 +4,64 @@ drop table if exists tb4 ; --enable_warnings create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f227 VARBINARY(64), -f228 VARBINARY(27), -f229 VARBINARY(64), -f230 VARBINARY(192), -f231 VARBINARY(192), -f232 VARBINARY(27), -f233 VARBINARY(64), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f227 VARBINARY(64), +f228 VARBINARY(27), +f229 VARBINARY(64), +f230 VARBINARY(192), +f231 VARBINARY(192), +f232 VARBINARY(27), +f233 VARBINARY(64), f234 VARBINARY(192), f235 char(255) unicode, f236 char(60) ascii, @@ -75,14 +75,16 @@ f242 bit(30) # The original columns. They are replaced by varbinary, because the funcs_1 tests should # not depend on the optional availability of the geometry feature. -# f227 geometry, -# f228 point, -# f229 linestring, -# f230 polygon, -# f231 geometrycollection, -# f232 multipoint, -# f233 multilinestring, +# f227 geometry, +# f228 point, +# f229 linestring, +# f230 polygon, +# f231 geometrycollection, +# f232 multipoint, +# f233 multilinestring, # f234 multipolygon, ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/myisam_tb4.txt' +into table tb4; diff --git a/mysql-test/suite/funcs_1/include/sp_tb.inc b/mysql-test/suite/funcs_1/include/sp_tb.inc index b37f2cc7ffe..ae1114fb5f1 100644 --- a/mysql-test/suite/funcs_1/include/sp_tb.inc +++ b/mysql-test/suite/funcs_1/include/sp_tb.inc @@ -5,29 +5,46 @@ USE test; --disable_warnings DROP TABLE IF EXISTS t1, t2, t4, t10, t11; --enable_warnings -eval CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type; -eval CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type; -eval CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type; -eval CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type; -eval CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +eval +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = $engine_type; +eval +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = $engine_type; +eval +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = $engine_type; +eval +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = $engine_type; +eval +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; --disable_warnings drop TABLE if exists t3; --enable_warnings -eval CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +eval +CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; #--------------------------- @@ -37,9 +54,12 @@ drop database if exists test4; CREATE database test4; use test4; -eval CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +eval +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; #--------------------------- use test; @@ -47,18 +67,23 @@ use test; --disable_warnings drop TABLE if exists t7, t8; --enable_warnings -eval CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = $engine_type; -eval CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +eval +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = $engine_type; +eval +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; --disable_warnings drop TABLE if exists t9; --enable_warnings eval CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval LOAD DATA INFILE '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +--replace_result $MYSQLTEST_VARDIR +eval +LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; diff --git a/mysql-test/suite/funcs_1/r/innodb_func_view.result b/mysql-test/suite/funcs_1/r/innodb_func_view.result index f901bcf8246..c2689a36801 100644 --- a/mysql-test/suite/funcs_1/r/innodb_func_view.result +++ b/mysql-test/suite/funcs_1/r/innodb_func_view.result @@ -1,7 +1,3 @@ - -! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables --------------------------------------------------------------------------------- DROP TABLE IF EXISTS t1_selects, t1_modes, t1_values; DROP VIEW IF EXISTS v1; CREATE TABLE t1_values @@ -9,7 +5,7 @@ CREATE TABLE t1_values id BIGINT AUTO_INCREMENT, select_id BIGINT, PRIMARY KEY(id) -) ENGINE = 'InnoDB' ; +) ENGINE = ; ALTER TABLE t1_values ADD my_char_30 CHAR(30); ALTER TABLE t1_values ADD my_varchar_1000 VARCHAR(1000); ALTER TABLE t1_values ADD my_binary_30 BINARY(30); @@ -39,10 +35,10 @@ my_bigint = -9223372036854775808, my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 , my_double = -1.7976931348623E+308; INSERT INTO t1_values SET -my_char_30 = '<--------30 characters------->', +my_char_30 = '<--------30 characters------->', my_varchar_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), -my_binary_30 = '<--------30 characters------->', +my_binary_30 = '<--------30 characters------->', my_varbinary_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), my_datetime = '9999-12-31 23:59:59', @@ -54,23 +50,23 @@ my_bigint = 9223372036854775807, my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 , my_double = 1.7976931348623E+308; INSERT INTO t1_values SET -my_char_30 = ' ---äÖüß@µ*$-- ', -my_varchar_1000 = ' ---äÖüß@µ*$-- ', -my_binary_30 = ' ---äÖüß@µ*$-- ', -my_varbinary_1000 = ' ---äÖüß@µ*$-- ', +my_char_30 = ' ---äÖüß@µ*$-- ', +my_varchar_1000 = ' ---äÖüß@µ*$-- ', +my_binary_30 = ' ---äÖüß@µ*$-- ', +my_varbinary_1000 = ' ---äÖüß@µ*$-- ', my_datetime = '2004-02-29 23:59:59', my_date = '2004-02-29', my_timestamp = '2004-02-29 23:59:59', my_time = '13:00:00', my_year = 2000, -my_bigint = 0, +my_bigint = 0, my_decimal = 0.0, my_double = 0; INSERT INTO t1_values SET -my_char_30 = '-1', -my_varchar_1000 = '-1', -my_binary_30 = '-1', -my_varbinary_1000 = '-1', +my_char_30 = '-1', +my_varchar_1000 = '-1', +my_binary_30 = '-1', +my_varbinary_1000 = '-1', my_datetime = '2005-06-28 10:00:00', my_date = '2005-06-28', my_timestamp = '2005-06-28 10:00:00', @@ -89,6 +85,9 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 4; INSERT INTO t1_values SET select_id = @select_id, my_bigint = -25; +##### 1.1.1. CAST --> BINARY +##### 1.1.2. CAST --> CHAR +##### 1.1.3. CAST --> DATE INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '2005-06-27'; INSERT INTO t1_values SET select_id = @select_id, @@ -101,6 +100,7 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 20050627; INSERT INTO t1_values SET select_id = @select_id, my_double = +20.050627E+6; +##### 1.1.4. CAST --> DATETIME INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '2005-06-27 17:58'; INSERT INTO t1_values SET select_id = @select_id, @@ -113,6 +113,7 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 200506271758; INSERT INTO t1_values SET select_id = @select_id, my_double = +0.0200506271758E+13; +##### 1.1.5. CAST --> TIME INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '1 17:58'; INSERT INTO t1_values SET select_id = @select_id, @@ -123,10 +124,9 @@ INSERT INTO t1_values SET select_id = @select_id, my_varbinary_1000 = '1 17:58'; INSERT INTO t1_values SET select_id = @select_id, my_bigint = 1758; - -some statements disabled because of -Bug#12440: CAST(data type DOUBLE AS TIME) strange results --------------------------------------------------------------------------------- +INSERT INTO t1_values SET select_id = @select_id, +my_double = +1.758E+3; +##### 1.1.6. CAST --> DECIMAL INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '-3333.3333'; INSERT INTO t1_values SET select_id = @select_id, @@ -135,51 +135,39 @@ INSERT INTO t1_values SET select_id = @select_id, my_binary_30 = '-3333.3333'; INSERT INTO t1_values SET select_id = @select_id, my_varbinary_1000 = '-3333.3333'; - -some statements disabled because of -Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian --------------------------------------------------------------------------------- +INSERT INTO t1_values SET select_id = @select_id, +my_double = -0.33333333E+4; +##### 1.1.7. CAST --> SIGNED INTEGER "Attention: CAST --> SIGNED INTEGER - The file with expected results suffers from - Bug#5083 Big integer values are inserted as negative into - decimal/string columns Bug#5913 Traditional mode: BIGINT range not correctly delimited - Both have the status: To be fixed later" --------------------------------------------------------------------------------- - -some statements disabled because of -Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result + Status: To be fixed later" -------------------------------------------------------------------------------- +##### 1.1.8. CAST --> UNSIGNED INTEGER "Attention: CAST --> UNSIGNED INTEGER - The file with expected results suffers from Bug 5083 5913 9809" + The file with expected results suffers from Bug 5913" -------------------------------------------------------------------------------- some statements disabled because of -Bugs#8663: cant use bgint unsigned as input to cast +Bug#5913 Traditional mode: BIGINT range not correctly delimited -------------------------------------------------------------------------------- -SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8), +SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8), +SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8), +SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8), +SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values'; - -"Attention: IF(my_year IS NULL, ... - The file with expected results suffers from - Bug#11689. successful CREATE VIEW but SELECT on view fails." --------------------------------------------------------------------------------- SET @my_select = 'SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT BIT_LENGTH(my_varchar_1000), @@ -192,22 +180,20 @@ SET @my_select = 'SELECT INSTR(my_char_30, ''char''), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values'; - -"Attention: LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', ) - The file with expected results suffers from Bug 10963 11728" - and the testcases with length = BIGINT or DOUBLE column are deactivated, -because there are 32/64 Bit differences --------------------------------------------------------------------------------- +SET @my_select = +'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_bigint), my_bigint, id FROM t1_values'; SET @my_select = 'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_decimal), my_decimal, id FROM t1_values'; +SET @my_select = +'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_double), my_double, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_varchar_1000), @@ -216,8 +202,10 @@ SET @my_select = 'SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values'; -SET @my_select = -'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values'; +SET @my_select = +'SELECT LOAD_FILE(''/std_data_ln/funcs_1/load_file.txt'') + AS my_col, + id FROM t1_values'; SET @my_select = 'SELECT LOCATE(''char'', my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LOCATE(''char'', my_varchar_1000), @@ -299,19 +287,19 @@ SET sql_mode = ''; -------------------------------------------------------------------------------- CREATE VIEW v1 AS SELECT my_char_30, id FROM t1_values; SELECT my_char_30, id FROM t1_values -WHERE select_id = 187 OR select_id IS NULL; +WHERE select_id = 193 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 187 OR select_id IS NULL); +WHERE select_id = 193 OR select_id IS NULL) order by id; DROP VIEW v1; CREATE VIEW v1 AS SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values; SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 186 OR select_id IS NULL; +WHERE select_id = 192 OR select_id IS NULL order by id; CONCAT('A',my_char_30) my_char_30 id NULL NULL 1 A 2 @@ -323,7 +311,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select concat(_latin1'A',`t1_values`.`my_char_30`) AS `CONCAT('A',my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 186 OR select_id IS NULL); +WHERE select_id = 192 OR select_id IS NULL) order by id; CONCAT('A',my_char_30) my_char_30 id NULL NULL 1 A 2 @@ -337,13 +325,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LTRIM(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 185 OR select_id IS NULL; +WHERE select_id = 191 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varbinary_1000`) AS `LTRIM(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 185 OR select_id IS NULL); +WHERE select_id = 191 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -351,13 +339,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_binary_30), my_binary_30, id FROM t1_values; SELECT LTRIM(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 184 OR select_id IS NULL; +WHERE select_id = 190 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_binary_30`) AS `LTRIM(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 184 OR select_id IS NULL); +WHERE select_id = 190 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -365,13 +353,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LTRIM(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 183 OR select_id IS NULL; +WHERE select_id = 189 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varchar_1000`) AS `LTRIM(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 183 OR select_id IS NULL); +WHERE select_id = 189 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -379,13 +367,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_char_30), my_char_30, id FROM t1_values; SELECT LTRIM(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 182 OR select_id IS NULL; +WHERE select_id = 188 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_char_30`) AS `LTRIM(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 182 OR select_id IS NULL); +WHERE select_id = 188 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -393,13 +381,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LOWER(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 181 OR select_id IS NULL; +WHERE select_id = 187 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varbinary_1000`) AS `LOWER(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 181 OR select_id IS NULL); +WHERE select_id = 187 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -407,13 +395,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_binary_30), my_binary_30, id FROM t1_values; SELECT LOWER(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 180 OR select_id IS NULL; +WHERE select_id = 186 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_binary_30`) AS `LOWER(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 180 OR select_id IS NULL); +WHERE select_id = 186 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -421,13 +409,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LOWER(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 179 OR select_id IS NULL; +WHERE select_id = 185 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LOWER(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 179 OR select_id IS NULL); +WHERE select_id = 185 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -435,13 +423,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_char_30), my_char_30, id FROM t1_values; SELECT LOWER(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 178 OR select_id IS NULL; +WHERE select_id = 184 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_char_30`) AS `LOWER(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 178 OR select_id IS NULL); +WHERE select_id = 184 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -449,13 +437,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_decimal), my_decimal, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_decimal), my_decimal, id FROM t1_values -WHERE select_id = 177 OR select_id IS NULL; +WHERE select_id = 183 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_decimal`) AS `LOCATE('-', ' - -ABC', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 177 OR select_id IS NULL); +WHERE select_id = 183 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -463,13 +451,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_double), my_double, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_double), my_double, id FROM t1_values -WHERE select_id = 176 OR select_id IS NULL; +WHERE select_id = 182 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_double`) AS `LOCATE('-', ' - -ABC', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 176 OR select_id IS NULL); +WHERE select_id = 182 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -477,13 +465,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_bigint), my_bigint, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_bigint), my_bigint, id FROM t1_values -WHERE select_id = 175 OR select_id IS NULL; +WHERE select_id = 181 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_bigint`) AS `LOCATE('-', ' - -ABC', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 175 OR select_id IS NULL); +WHERE select_id = 181 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -491,13 +479,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_varbinary_1000, 3), my_varbinary_1000, id FROM t1_values; SELECT LOCATE('-', my_varbinary_1000, 3), my_varbinary_1000, id FROM t1_values -WHERE select_id = 174 OR select_id IS NULL; +WHERE select_id = 180 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varbinary_1000`,3) AS `LOCATE('-', my_varbinary_1000, 3)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 174 OR select_id IS NULL); +WHERE select_id = 180 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -505,13 +493,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_binary_30, 3), my_binary_30, id FROM t1_values; SELECT LOCATE('-', my_binary_30, 3), my_binary_30, id FROM t1_values -WHERE select_id = 173 OR select_id IS NULL; +WHERE select_id = 179 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_binary_30`,3) AS `LOCATE('-', my_binary_30, 3)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 173 OR select_id IS NULL); +WHERE select_id = 179 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -519,13 +507,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_varchar_1000, 3), my_varchar_1000, id FROM t1_values; SELECT LOCATE('-', my_varchar_1000, 3), my_varchar_1000, id FROM t1_values -WHERE select_id = 172 OR select_id IS NULL; +WHERE select_id = 178 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varchar_1000`,3) AS `LOCATE('-', my_varchar_1000, 3)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 172 OR select_id IS NULL); +WHERE select_id = 178 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -533,13 +521,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_char_30, 3), my_char_30, id FROM t1_values; SELECT LOCATE('-', my_char_30, 3), my_char_30, id FROM t1_values -WHERE select_id = 171 OR select_id IS NULL; +WHERE select_id = 177 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_char_30`,3) AS `LOCATE('-', my_char_30, 3)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 171 OR select_id IS NULL); +WHERE select_id = 177 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -547,13 +535,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_binary_30 ), my_varbinary_1000, my_binary_30 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_binary_30 ), my_varbinary_1000, my_binary_30 id FROM t1_values -WHERE select_id = 170 OR select_id IS NULL; +WHERE select_id = 176 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varbinary_1000, my_binary_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 170 OR select_id IS NULL); +WHERE select_id = 176 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -561,13 +549,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ), my_varbinary_1000, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ), my_varbinary_1000, my_varchar_1000 id FROM t1_values -WHERE select_id = 169 OR select_id IS NULL; +WHERE select_id = 175 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varbinary_1000, my_varchar_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 169 OR select_id IS NULL); +WHERE select_id = 175 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -575,13 +563,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_char_30 ), my_varbinary_1000, my_char_30 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_char_30 ), my_varbinary_1000, my_char_30 id FROM t1_values -WHERE select_id = 168 OR select_id IS NULL; +WHERE select_id = 174 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varbinary_1000, my_char_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 168 OR select_id IS NULL); +WHERE select_id = 174 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -589,13 +577,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ), my_varbinary_1000, id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ), my_varbinary_1000, id FROM t1_values -WHERE select_id = 167 OR select_id IS NULL; +WHERE select_id = 173 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varbinary_1000, my_varbinary_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 167 OR select_id IS NULL); +WHERE select_id = 173 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -603,13 +591,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varbinary_1000 ), my_binary_30, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_binary_30, my_varbinary_1000 ), my_binary_30, my_varbinary_1000 id FROM t1_values -WHERE select_id = 166 OR select_id IS NULL; +WHERE select_id = 172 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_binary_30, my_varbinary_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 166 OR select_id IS NULL); +WHERE select_id = 172 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -617,13 +605,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varchar_1000 ), my_binary_30, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_binary_30, my_varchar_1000 ), my_binary_30, my_varchar_1000 id FROM t1_values -WHERE select_id = 165 OR select_id IS NULL; +WHERE select_id = 171 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_binary_30, my_varchar_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 165 OR select_id IS NULL); +WHERE select_id = 171 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -631,13 +619,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_char_30 ), my_binary_30, my_char_30 id FROM t1_values; SELECT LOCATE(my_binary_30, my_char_30 ), my_binary_30, my_char_30 id FROM t1_values -WHERE select_id = 164 OR select_id IS NULL; +WHERE select_id = 170 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_binary_30, my_char_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 164 OR select_id IS NULL); +WHERE select_id = 170 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -645,13 +633,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_binary_30 ), my_binary_30, id FROM t1_values; SELECT LOCATE(my_binary_30, my_binary_30 ), my_binary_30, id FROM t1_values -WHERE select_id = 163 OR select_id IS NULL; +WHERE select_id = 169 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_binary_30, my_binary_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 163 OR select_id IS NULL); +WHERE select_id = 169 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -659,13 +647,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ), my_varchar_1000, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ), my_varchar_1000, my_varbinary_1000 id FROM t1_values -WHERE select_id = 162 OR select_id IS NULL; +WHERE select_id = 168 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varchar_1000, my_varbinary_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 162 OR select_id IS NULL); +WHERE select_id = 168 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -673,13 +661,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_binary_30 ), my_varchar_1000, my_binary_30 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_binary_30 ), my_varchar_1000, my_binary_30 id FROM t1_values -WHERE select_id = 161 OR select_id IS NULL; +WHERE select_id = 167 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varchar_1000, my_binary_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 161 OR select_id IS NULL); +WHERE select_id = 167 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -687,13 +675,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_char_30 ), my_varchar_1000, my_char_30 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_char_30 ), my_varchar_1000, my_char_30 id FROM t1_values -WHERE select_id = 160 OR select_id IS NULL; +WHERE select_id = 166 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varchar_1000, my_char_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 160 OR select_id IS NULL); +WHERE select_id = 166 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -701,13 +689,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varchar_1000 ), my_varchar_1000, id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_varchar_1000 ), my_varchar_1000, id FROM t1_values -WHERE select_id = 159 OR select_id IS NULL; +WHERE select_id = 165 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varchar_1000, my_varchar_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 159 OR select_id IS NULL); +WHERE select_id = 165 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -715,13 +703,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varbinary_1000 ), my_char_30, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_char_30, my_varbinary_1000 ), my_char_30, my_varbinary_1000 id FROM t1_values -WHERE select_id = 158 OR select_id IS NULL; +WHERE select_id = 164 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_char_30, my_varbinary_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 158 OR select_id IS NULL); +WHERE select_id = 164 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -729,13 +717,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_binary_30 ), my_char_30, my_binary_30 id FROM t1_values; SELECT LOCATE(my_char_30, my_binary_30 ), my_char_30, my_binary_30 id FROM t1_values -WHERE select_id = 157 OR select_id IS NULL; +WHERE select_id = 163 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_char_30, my_binary_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 157 OR select_id IS NULL); +WHERE select_id = 163 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -743,13 +731,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varchar_1000 ), my_char_30, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_char_30, my_varchar_1000 ), my_char_30, my_varchar_1000 id FROM t1_values -WHERE select_id = 156 OR select_id IS NULL; +WHERE select_id = 162 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_char_30, my_varchar_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 156 OR select_id IS NULL); +WHERE select_id = 162 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -757,13 +745,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_char_30 ), my_char_30, id FROM t1_values; SELECT LOCATE(my_char_30, my_char_30 ), my_char_30, id FROM t1_values -WHERE select_id = 155 OR select_id IS NULL; +WHERE select_id = 161 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_char_30, my_char_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 155 OR select_id IS NULL); +WHERE select_id = 161 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -771,13 +759,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LOCATE('char', my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 154 OR select_id IS NULL; +WHERE select_id = 160 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varbinary_1000`) AS `LOCATE('char', my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 154 OR select_id IS NULL); +WHERE select_id = 160 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -785,13 +773,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_binary_30), my_binary_30, id FROM t1_values; SELECT LOCATE('char', my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 153 OR select_id IS NULL; +WHERE select_id = 159 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_binary_30`) AS `LOCATE('char', my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 153 OR select_id IS NULL); +WHERE select_id = 159 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -799,13 +787,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LOCATE('char', my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 152 OR select_id IS NULL; +WHERE select_id = 158 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varchar_1000`) AS `LOCATE('char', my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 152 OR select_id IS NULL); +WHERE select_id = 158 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -813,46 +801,50 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_char_30), my_char_30, id FROM t1_values; SELECT LOCATE('char', my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 151 OR select_id IS NULL; +WHERE select_id = 157 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `LOCATE('char', my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 151 OR select_id IS NULL); +WHERE select_id = 157 OR select_id IS NULL) order by id; DROP VIEW v1; -CREATE VIEW v1 AS SELECT LOAD_FILE('../log/current_test'), id FROM t1_values; -SELECT LOAD_FILE('../log/current_test'), id FROM t1_values -WHERE select_id = 150 OR select_id IS NULL; -LOAD_FILE('../log/current_test') id -CURRENT_TEST: innodb_func_view +CREATE VIEW v1 AS SELECT LOAD_FILE('/std_data_ln/funcs_1/load_file.txt') + AS my_col, + id FROM t1_values; +SELECT LOAD_FILE('/std_data_ln/funcs_1/load_file.txt') + AS my_col, + id FROM t1_values +WHERE select_id = 156 OR select_id IS NULL order by id; +my_col id +Here is content from load_file 1 -CURRENT_TEST: innodb_func_view +Here is content from load_file 2 -CURRENT_TEST: innodb_func_view +Here is content from load_file 3 -CURRENT_TEST: innodb_func_view +Here is content from load_file 4 -CURRENT_TEST: innodb_func_view +Here is content from load_file 5 SHOW CREATE VIEW v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'../log/current_test') AS `LOAD_FILE('../log/current_test')`,`t1_values`.`id` AS `id` from `t1_values` +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'/std_data_ln/funcs_1/load_file.txt') AS `my_col`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 150 OR select_id IS NULL); -LOAD_FILE('../log/current_test') id -CURRENT_TEST: innodb_func_view +WHERE select_id = 156 OR select_id IS NULL) order by id; +my_col id +Here is content from load_file 1 -CURRENT_TEST: innodb_func_view +Here is content from load_file 2 -CURRENT_TEST: innodb_func_view +Here is content from load_file 3 -CURRENT_TEST: innodb_func_view +Here is content from load_file 4 -CURRENT_TEST: innodb_func_view +Here is content from load_file 5 DROP VIEW v1; @@ -861,13 +853,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 149 OR select_id IS NULL; +WHERE select_id = 155 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varbinary_1000`) AS `LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 149 OR select_id IS NULL); +WHERE select_id = 155 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -875,13 +867,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values; SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 148 OR select_id IS NULL; +WHERE select_id = 154 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_binary_30`) AS `LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 148 OR select_id IS NULL); +WHERE select_id = 154 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -889,13 +881,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 147 OR select_id IS NULL; +WHERE select_id = 153 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varchar_1000`) AS `LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 147 OR select_id IS NULL); +WHERE select_id = 153 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -903,19 +895,49 @@ CREATE VIEW v1 AS SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values; SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 146 OR select_id IS NULL; +WHERE select_id = 152 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_char_30`) AS `LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 146 OR select_id IS NULL); +WHERE select_id = 152 OR select_id IS NULL) order by id; +DROP VIEW v1; + + +CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double), my_double, id FROM t1_values; +SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double), my_double, id FROM t1_values +WHERE select_id = 151 OR select_id IS NULL order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double) my_double id +NULL NULL 1 + -1.7976931348623e+308 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 1.7976931348623e+308 3 + 0 4 + -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_double`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 151 OR select_id IS NULL) order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double) my_double id +NULL NULL 1 + -1.7976931348623e+308 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 1.7976931348623e+308 3 + 0 4 + -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values; SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values -WHERE select_id = 145 OR select_id IS NULL; +WHERE select_id = 150 OR select_id IS NULL order by id; LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -930,7 +952,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_decimal`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 145 OR select_id IS NULL); +WHERE select_id = 150 OR select_id IS NULL) order by id; LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -943,9 +965,33 @@ Error 1292 Truncated incorrect DECIMAL value: '' DROP VIEW v1; +CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint), my_bigint, id FROM t1_values; +SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint), my_bigint, id FROM t1_values +WHERE select_id = 149 OR select_id IS NULL order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint) my_bigint id +NULL NULL 1 + -9223372036854775808 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9223372036854775807 3 + 0 4 + -1 5 +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_bigint`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 149 OR select_id IS NULL) order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint) my_bigint id +NULL NULL 1 + -9223372036854775808 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9223372036854775807 3 + 0 4 + -1 5 +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values; SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values -WHERE select_id = 144 OR select_id IS NULL; +WHERE select_id = 148 OR select_id IS NULL order by id; LEFT(my_varbinary_1000, 2) my_varbinary_1000 id NULL NULL 1 2 @@ -957,7 +1003,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varbinary_1000`,2) AS `LEFT(my_varbinary_1000, 2)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 144 OR select_id IS NULL); +WHERE select_id = 148 OR select_id IS NULL) order by id; LEFT(my_varbinary_1000, 2) my_varbinary_1000 id NULL NULL 1 2 @@ -969,19 +1015,19 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values; SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values -WHERE select_id = 143 OR select_id IS NULL; +WHERE select_id = 147 OR select_id IS NULL order by id; LEFT(my_binary_30, 2) my_binary_30 id NULL NULL 1 - 2 + 2 <- <--------30 characters-------> 3 - - ---äÖüß@µ*$-- 4 --1 -1 5 + - ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_binary_30`,2) AS `LEFT(my_binary_30, 2)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 143 OR select_id IS NULL); +WHERE select_id = 147 OR select_id IS NULL) order by id; LEFT(my_binary_30, 2) my_binary_30 id NULL NULL 1 2 @@ -993,7 +1039,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values; SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values -WHERE select_id = 142 OR select_id IS NULL; +WHERE select_id = 146 OR select_id IS NULL order by id; LEFT(my_varchar_1000, 2) my_varchar_1000 id NULL NULL 1 2 @@ -1005,7 +1051,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varchar_1000`,2) AS `LEFT(my_varchar_1000, 2)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 142 OR select_id IS NULL); +WHERE select_id = 146 OR select_id IS NULL) order by id; LEFT(my_varchar_1000, 2) my_varchar_1000 id NULL NULL 1 2 @@ -1017,7 +1063,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values; SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values -WHERE select_id = 141 OR select_id IS NULL; +WHERE select_id = 145 OR select_id IS NULL order by id; LEFT(my_char_30, 2) my_char_30 id NULL NULL 1 2 @@ -1029,7 +1075,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_char_30`,2) AS `LEFT(my_char_30, 2)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 141 OR select_id IS NULL); +WHERE select_id = 145 OR select_id IS NULL) order by id; LEFT(my_char_30, 2) my_char_30 id NULL NULL 1 2 @@ -1043,13 +1089,13 @@ CREATE VIEW v1 AS SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 140 OR select_id IS NULL; +WHERE select_id = 144 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LCASE(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 140 OR select_id IS NULL); +WHERE select_id = 144 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -1057,13 +1103,13 @@ CREATE VIEW v1 AS SELECT INSTR(my_char_30, 'char'), my_char_30, id FROM t1_values; SELECT INSTR(my_char_30, 'char'), my_char_30, id FROM t1_values -WHERE select_id = 139 OR select_id IS NULL; +WHERE select_id = 143 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `INSTR(my_char_30, 'char')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 139 OR select_id IS NULL); +WHERE select_id = 143 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -1071,7 +1117,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT BIT_LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 138 OR select_id IS NULL; +WHERE select_id = 142 OR select_id IS NULL order by id; BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id NULL NULL 1 0 2 @@ -1083,7 +1129,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varbinary_1000`) AS `BIT_LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 138 OR select_id IS NULL); +WHERE select_id = 142 OR select_id IS NULL) order by id; BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id NULL NULL 1 0 2 @@ -1097,19 +1143,19 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_binary_30), my_binary_30, id FROM t1_values; SELECT BIT_LENGTH(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 137 OR select_id IS NULL; +WHERE select_id = 141 OR select_id IS NULL order by id; BIT_LENGTH(my_binary_30) my_binary_30 id NULL NULL 1 -240 2 +240 2 240 <--------30 characters-------> 3 -240 ---äÖüß@µ*$-- 4 -240 -1 5 +240 ---äÖüß@µ*$-- 4 +240 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_binary_30`) AS `BIT_LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 137 OR select_id IS NULL); +WHERE select_id = 141 OR select_id IS NULL) order by id; BIT_LENGTH(my_binary_30) my_binary_30 id NULL NULL 1 240 2 @@ -1123,7 +1169,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT BIT_LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 136 OR select_id IS NULL; +WHERE select_id = 140 OR select_id IS NULL order by id; BIT_LENGTH(my_varchar_1000) my_varchar_1000 id NULL NULL 1 0 2 @@ -1135,7 +1181,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varchar_1000`) AS `BIT_LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 136 OR select_id IS NULL); +WHERE select_id = 140 OR select_id IS NULL) order by id; BIT_LENGTH(my_varchar_1000) my_varchar_1000 id NULL NULL 1 0 2 @@ -1149,7 +1195,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values; SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 135 OR select_id IS NULL; +WHERE select_id = 139 OR select_id IS NULL order by id; BIT_LENGTH(my_char_30) my_char_30 id NULL NULL 1 0 2 @@ -1161,7 +1207,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_char_30`) AS `BIT_LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 135 OR select_id IS NULL); +WHERE select_id = 139 OR select_id IS NULL) order by id; BIT_LENGTH(my_char_30) my_char_30 id NULL NULL 1 0 2 @@ -1175,7 +1221,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_year,'IS_NULL'), my_year, id FROM t1_values; SELECT IFNULL(my_year,'IS_NULL'), my_year, id FROM t1_values -WHERE select_id = 134 OR select_id IS NULL; +WHERE select_id = 138 OR select_id IS NULL order by id; IFNULL(my_year,'IS_NULL') my_year id IS_NULL NULL 1 1901 1901 2 @@ -1187,7 +1233,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_year`,_latin1'IS_NULL') AS `IFNULL(my_year,'IS_NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 134 OR select_id IS NULL); +WHERE select_id = 138 OR select_id IS NULL) order by id; IFNULL(my_year,'IS_NULL') my_year id IS_NULL NULL 1 1901 1901 2 @@ -1201,7 +1247,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_time,'IS_NULL'), my_time, id FROM t1_values; SELECT IFNULL(my_time,'IS_NULL'), my_time, id FROM t1_values -WHERE select_id = 133 OR select_id IS NULL; +WHERE select_id = 137 OR select_id IS NULL order by id; IFNULL(my_time,'IS_NULL') my_time id IS_NULL NULL 1 -838:59:59 -838:59:59 2 @@ -1213,7 +1259,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_time`,_latin1'IS_NULL') AS `IFNULL(my_time,'IS_NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 133 OR select_id IS NULL); +WHERE select_id = 137 OR select_id IS NULL) order by id; IFNULL(my_time,'IS_NULL') my_time id IS_NULL NULL 1 -838:59:59 -838:59:59 2 @@ -1227,7 +1273,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_timestamp,'IS_NULL'), my_timestamp, id FROM t1_values; SELECT IFNULL(my_timestamp,'IS_NULL'), my_timestamp, id FROM t1_values -WHERE select_id = 132 OR select_id IS NULL; +WHERE select_id = 136 OR select_id IS NULL order by id; IFNULL(my_timestamp,'IS_NULL') my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -1239,7 +1285,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_timestamp`,_latin1'IS_NULL') AS `IFNULL(my_timestamp,'IS_NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 132 OR select_id IS NULL); +WHERE select_id = 136 OR select_id IS NULL) order by id; IFNULL(my_timestamp,'IS_NULL') my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -1253,7 +1299,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_date,'IS_NULL'), my_date, id FROM t1_values; SELECT IFNULL(my_date,'IS_NULL'), my_date, id FROM t1_values -WHERE select_id = 131 OR select_id IS NULL; +WHERE select_id = 135 OR select_id IS NULL order by id; IFNULL(my_date,'IS_NULL') my_date id IS_NULL NULL 1 0001-01-01 0001-01-01 2 @@ -1265,7 +1311,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_date`,_latin1'IS_NULL') AS `IFNULL(my_date,'IS_NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 131 OR select_id IS NULL); +WHERE select_id = 135 OR select_id IS NULL) order by id; IFNULL(my_date,'IS_NULL') my_date id IS_NULL NULL 1 0001-01-01 0001-01-01 2 @@ -1279,7 +1325,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_datetime,'IS_NULL'), my_datetime, id FROM t1_values; SELECT IFNULL(my_datetime,'IS_NULL'), my_datetime, id FROM t1_values -WHERE select_id = 130 OR select_id IS NULL; +WHERE select_id = 134 OR select_id IS NULL order by id; IFNULL(my_datetime,'IS_NULL') my_datetime id IS_NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -1291,7 +1337,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_datetime`,_latin1'IS_NULL') AS `IFNULL(my_datetime,'IS_NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 130 OR select_id IS NULL); +WHERE select_id = 134 OR select_id IS NULL) order by id; IFNULL(my_datetime,'IS_NULL') my_datetime id IS_NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -1305,7 +1351,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_double,'IS_NULL'), my_double, id FROM t1_values; SELECT IFNULL(my_double,'IS_NULL'), my_double, id FROM t1_values -WHERE select_id = 129 OR select_id IS NULL; +WHERE select_id = 133 OR select_id IS NULL order by id; IFNULL(my_double,'IS_NULL') my_double id IS_NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -1317,7 +1363,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_double`,_latin1'IS_NULL') AS `IFNULL(my_double,'IS_NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 129 OR select_id IS NULL); +WHERE select_id = 133 OR select_id IS NULL) order by id; IFNULL(my_double,'IS_NULL') my_double id IS_NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -1331,7 +1377,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_decimal,'IS_NULL'), my_decimal, id FROM t1_values; SELECT IFNULL(my_decimal,'IS_NULL'), my_decimal, id FROM t1_values -WHERE select_id = 128 OR select_id IS NULL; +WHERE select_id = 132 OR select_id IS NULL order by id; IFNULL(my_decimal,'IS_NULL') my_decimal id IS_NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -1343,7 +1389,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_decimal`,_latin1'IS_NULL') AS `IFNULL(my_decimal,'IS_NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 128 OR select_id IS NULL); +WHERE select_id = 132 OR select_id IS NULL) order by id; IFNULL(my_decimal,'IS_NULL') my_decimal id IS_NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -1357,7 +1403,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_bigint,'IS_NULL'), my_bigint, id FROM t1_values; SELECT IFNULL(my_bigint,'IS_NULL'), my_bigint, id FROM t1_values -WHERE select_id = 127 OR select_id IS NULL; +WHERE select_id = 131 OR select_id IS NULL order by id; IFNULL(my_bigint,'IS_NULL') my_bigint id IS_NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -1369,7 +1415,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_bigint`,_latin1'IS_NULL') AS `IFNULL(my_bigint,'IS_NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 127 OR select_id IS NULL); +WHERE select_id = 131 OR select_id IS NULL) order by id; IFNULL(my_bigint,'IS_NULL') my_bigint id IS_NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -1383,7 +1429,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_varbinary_1000,'IS_NULL'), my_varbinary_1000, id FROM t1_values; SELECT IFNULL(my_varbinary_1000,'IS_NULL'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 126 OR select_id IS NULL; +WHERE select_id = 130 OR select_id IS NULL order by id; IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id IS_NULL NULL 1 2 @@ -1395,7 +1441,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varbinary_1000`,_latin1'IS_NULL') AS `IFNULL(my_varbinary_1000,'IS_NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 126 OR select_id IS NULL); +WHERE select_id = 130 OR select_id IS NULL) order by id; IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id IS_NULL NULL 1 2 @@ -1409,19 +1455,19 @@ CREATE VIEW v1 AS SELECT IFNULL(my_binary_30,'IS_NULL'), my_binary_30, id FROM t1_values; SELECT IFNULL(my_binary_30,'IS_NULL'), my_binary_30, id FROM t1_values -WHERE select_id = 125 OR select_id IS NULL; +WHERE select_id = 129 OR select_id IS NULL order by id; IFNULL(my_binary_30,'IS_NULL') my_binary_30 id IS_NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_binary_30`,_latin1'IS_NULL') AS `IFNULL(my_binary_30,'IS_NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 125 OR select_id IS NULL); +WHERE select_id = 129 OR select_id IS NULL) order by id; IFNULL(my_binary_30,'IS_NULL') my_binary_30 id IS_NULL NULL 1 2 @@ -1435,7 +1481,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_varchar_1000,'IS_NULL'), my_varchar_1000, id FROM t1_values; SELECT IFNULL(my_varchar_1000,'IS_NULL'), my_varchar_1000, id FROM t1_values -WHERE select_id = 124 OR select_id IS NULL; +WHERE select_id = 128 OR select_id IS NULL order by id; IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id IS_NULL NULL 1 2 @@ -1447,7 +1493,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varchar_1000`,_latin1'IS_NULL') AS `IFNULL(my_varchar_1000,'IS_NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 124 OR select_id IS NULL); +WHERE select_id = 128 OR select_id IS NULL) order by id; IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id IS_NULL NULL 1 2 @@ -1461,7 +1507,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_char_30,'IS_NULL'), my_char_30, id FROM t1_values; SELECT IFNULL(my_char_30,'IS_NULL'), my_char_30, id FROM t1_values -WHERE select_id = 123 OR select_id IS NULL; +WHERE select_id = 127 OR select_id IS NULL order by id; IFNULL(my_char_30,'IS_NULL') my_char_30 id IS_NULL NULL 1 2 @@ -1473,7 +1519,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_char_30`,_latin1'IS_NULL') AS `IFNULL(my_char_30,'IS_NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 123 OR select_id IS NULL); +WHERE select_id = 127 OR select_id IS NULL) order by id; IFNULL(my_char_30,'IS_NULL') my_char_30 id IS_NULL NULL 1 2 @@ -1487,7 +1533,7 @@ CREATE VIEW v1 AS SELECT IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL'), my_year, id FROM t1_values; SELECT IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL'), my_year, id FROM t1_values -WHERE select_id = 122 OR select_id IS NULL; +WHERE select_id = 126 OR select_id IS NULL order by id; IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL') my_year id IS NULL NULL 1 @@ -1501,7 +1547,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 122 OR select_id IS NULL); +WHERE select_id = 126 OR select_id IS NULL) order by id; IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL') my_year id IS NULL NULL 1 @@ -1516,7 +1562,7 @@ CREATE VIEW v1 AS SELECT IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL'), my_time, id FROM t1_values; SELECT IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL'), my_time, id FROM t1_values -WHERE select_id = 121 OR select_id IS NULL; +WHERE select_id = 125 OR select_id IS NULL order by id; IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL') my_time id IS NULL NULL 1 @@ -1530,7 +1576,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 121 OR select_id IS NULL); +WHERE select_id = 125 OR select_id IS NULL) order by id; IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL') my_time id IS NULL NULL 1 @@ -1545,7 +1591,7 @@ CREATE VIEW v1 AS SELECT IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL'), my_timestamp, id FROM t1_values; SELECT IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL'), my_timestamp, id FROM t1_values -WHERE select_id = 120 OR select_id IS NULL; +WHERE select_id = 124 OR select_id IS NULL order by id; IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL') my_timestamp id IS NOT NULL 0000-00-00 00:00:00 1 @@ -1559,7 +1605,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 120 OR select_id IS NULL); +WHERE select_id = 124 OR select_id IS NULL) order by id; IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL') my_timestamp id IS NOT NULL 0000-00-00 00:00:00 1 @@ -1574,7 +1620,7 @@ CREATE VIEW v1 AS SELECT IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL'), my_date, id FROM t1_values; SELECT IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL'), my_date, id FROM t1_values -WHERE select_id = 119 OR select_id IS NULL; +WHERE select_id = 123 OR select_id IS NULL order by id; IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL') my_date id IS NULL NULL 1 @@ -1588,7 +1634,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 119 OR select_id IS NULL); +WHERE select_id = 123 OR select_id IS NULL) order by id; IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL') my_date id IS NULL NULL 1 @@ -1603,7 +1649,7 @@ CREATE VIEW v1 AS SELECT IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL'), my_datetime, id FROM t1_values; SELECT IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL'), my_datetime, id FROM t1_values -WHERE select_id = 118 OR select_id IS NULL; +WHERE select_id = 122 OR select_id IS NULL order by id; IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL') my_datetime id IS NULL NULL 1 @@ -1617,7 +1663,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 118 OR select_id IS NULL); +WHERE select_id = 122 OR select_id IS NULL) order by id; IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL') my_datetime id IS NULL NULL 1 @@ -1632,7 +1678,7 @@ CREATE VIEW v1 AS SELECT IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL'), my_double, id FROM t1_values; SELECT IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL'), my_double, id FROM t1_values -WHERE select_id = 117 OR select_id IS NULL; +WHERE select_id = 121 OR select_id IS NULL order by id; IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL') my_double id IS NULL NULL 1 @@ -1646,7 +1692,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 117 OR select_id IS NULL); +WHERE select_id = 121 OR select_id IS NULL) order by id; IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL') my_double id IS NULL NULL 1 @@ -1661,7 +1707,7 @@ CREATE VIEW v1 AS SELECT IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL'), my_decimal, id FROM t1_values; SELECT IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL'), my_decimal, id FROM t1_values -WHERE select_id = 116 OR select_id IS NULL; +WHERE select_id = 120 OR select_id IS NULL order by id; IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL') my_decimal id IS NULL NULL 1 @@ -1675,7 +1721,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 116 OR select_id IS NULL); +WHERE select_id = 120 OR select_id IS NULL) order by id; IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL') my_decimal id IS NULL NULL 1 @@ -1690,7 +1736,7 @@ CREATE VIEW v1 AS SELECT IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL'), my_bigint, id FROM t1_values; SELECT IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL'), my_bigint, id FROM t1_values -WHERE select_id = 115 OR select_id IS NULL; +WHERE select_id = 119 OR select_id IS NULL order by id; IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL') my_bigint id IS NULL NULL 1 @@ -1704,7 +1750,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 115 OR select_id IS NULL); +WHERE select_id = 119 OR select_id IS NULL) order by id; IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL') my_bigint id IS NULL NULL 1 @@ -1719,7 +1765,7 @@ CREATE VIEW v1 AS SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varbinary_1000, id FROM t1_values; SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 114 OR select_id IS NULL; +WHERE select_id = 118 OR select_id IS NULL order by id; IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varbinary_1000 id IS NULL NULL 1 @@ -1733,7 +1779,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 114 OR select_id IS NULL); +WHERE select_id = 118 OR select_id IS NULL) order by id; IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varbinary_1000 id IS NULL NULL 1 @@ -1748,21 +1794,21 @@ CREATE VIEW v1 AS SELECT IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_binary_30, id FROM t1_values; SELECT IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_binary_30, id FROM t1_values -WHERE select_id = 113 OR select_id IS NULL; +WHERE select_id = 117 OR select_id IS NULL order by id; IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_binary_30 id IS NULL NULL 1 -IS NOT NULL 2 +IS NOT NULL 2 IS NOT NULL <--------30 characters-------> 3 -IS NOT NULL ---äÖüß@µ*$-- 4 -IS NOT NULL -1 5 +IS NOT NULL ---äÖüß@µ*$-- 4 +IS NOT NULL -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_binary_30`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 113 OR select_id IS NULL); +WHERE select_id = 117 OR select_id IS NULL) order by id; IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_binary_30 id IS NULL NULL 1 @@ -1777,7 +1823,7 @@ CREATE VIEW v1 AS SELECT IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varchar_1000, id FROM t1_values; SELECT IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varchar_1000, id FROM t1_values -WHERE select_id = 112 OR select_id IS NULL; +WHERE select_id = 116 OR select_id IS NULL order by id; IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varchar_1000 id IS NULL NULL 1 @@ -1791,7 +1837,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 112 OR select_id IS NULL); +WHERE select_id = 116 OR select_id IS NULL) order by id; IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varchar_1000 id IS NULL NULL 1 @@ -1806,7 +1852,7 @@ CREATE VIEW v1 AS SELECT IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_char_30, id FROM t1_values; SELECT IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_char_30, id FROM t1_values -WHERE select_id = 111 OR select_id IS NULL; +WHERE select_id = 115 OR select_id IS NULL order by id; IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_char_30 id IS NULL NULL 1 @@ -1820,7 +1866,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 111 OR select_id IS NULL); +WHERE select_id = 115 OR select_id IS NULL) order by id; IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_char_30 id IS NULL NULL 1 @@ -1835,7 +1881,7 @@ CREATE VIEW v1 AS SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'), my_year, id FROM t1_values; SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'), my_year, id FROM t1_values -WHERE select_id = 110 OR select_id IS NULL; +WHERE select_id = 114 OR select_id IS NULL order by id; IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id IS NOT TRUE NULL 1 IS TRUE 1901 2 @@ -1847,7 +1893,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_year`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_year, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 110 OR select_id IS NULL); +WHERE select_id = 114 OR select_id IS NULL) order by id; IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id IS NOT TRUE NULL 1 IS TRUE 1901 2 @@ -1861,7 +1907,7 @@ CREATE VIEW v1 AS SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'), my_time, id FROM t1_values; SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'), my_time, id FROM t1_values -WHERE select_id = 109 OR select_id IS NULL; +WHERE select_id = 113 OR select_id IS NULL order by id; IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id IS NOT TRUE NULL 1 IS TRUE -838:59:59 2 @@ -1873,7 +1919,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_time`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_time, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 109 OR select_id IS NULL); +WHERE select_id = 113 OR select_id IS NULL) order by id; IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id IS NOT TRUE NULL 1 IS TRUE -838:59:59 2 @@ -1887,7 +1933,7 @@ CREATE VIEW v1 AS SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'), my_timestamp, id FROM t1_values; SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'), my_timestamp, id FROM t1_values -WHERE select_id = 108 OR select_id IS NULL; +WHERE select_id = 112 OR select_id IS NULL order by id; IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id IS NOT TRUE 0000-00-00 00:00:00 1 IS TRUE 1970-01-01 03:00:01 2 @@ -1899,7 +1945,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_timestamp`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 108 OR select_id IS NULL); +WHERE select_id = 112 OR select_id IS NULL) order by id; IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id IS NOT TRUE 0000-00-00 00:00:00 1 IS TRUE 1970-01-01 03:00:01 2 @@ -1913,7 +1959,7 @@ CREATE VIEW v1 AS SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'), my_date, id FROM t1_values; SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'), my_date, id FROM t1_values -WHERE select_id = 107 OR select_id IS NULL; +WHERE select_id = 111 OR select_id IS NULL order by id; IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 2 @@ -1925,7 +1971,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_date`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_date, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 107 OR select_id IS NULL); +WHERE select_id = 111 OR select_id IS NULL) order by id; IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 2 @@ -1939,7 +1985,7 @@ CREATE VIEW v1 AS SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'), my_datetime, id FROM t1_values; SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'), my_datetime, id FROM t1_values -WHERE select_id = 106 OR select_id IS NULL; +WHERE select_id = 110 OR select_id IS NULL order by id; IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 00:00:00 2 @@ -1951,7 +1997,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_datetime`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_datetime, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 106 OR select_id IS NULL); +WHERE select_id = 110 OR select_id IS NULL) order by id; IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 00:00:00 2 @@ -1965,7 +2011,7 @@ CREATE VIEW v1 AS SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'), my_double, id FROM t1_values; SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'), my_double, id FROM t1_values -WHERE select_id = 105 OR select_id IS NULL; +WHERE select_id = 109 OR select_id IS NULL order by id; IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id IS NOT TRUE NULL 1 IS TRUE -1.7976931348623e+308 2 @@ -1977,7 +2023,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_double`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_double, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 105 OR select_id IS NULL); +WHERE select_id = 109 OR select_id IS NULL) order by id; IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id IS NOT TRUE NULL 1 IS TRUE -1.7976931348623e+308 2 @@ -1991,7 +2037,7 @@ CREATE VIEW v1 AS SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'), my_decimal, id FROM t1_values; SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'), my_decimal, id FROM t1_values -WHERE select_id = 104 OR select_id IS NULL; +WHERE select_id = 108 OR select_id IS NULL order by id; IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id IS NOT TRUE NULL 1 IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2003,7 +2049,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_decimal`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_decimal, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 104 OR select_id IS NULL); +WHERE select_id = 108 OR select_id IS NULL) order by id; IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id IS NOT TRUE NULL 1 IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2017,7 +2063,7 @@ CREATE VIEW v1 AS SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'), my_bigint, id FROM t1_values; SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'), my_bigint, id FROM t1_values -WHERE select_id = 103 OR select_id IS NULL; +WHERE select_id = 107 OR select_id IS NULL order by id; IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id IS NOT TRUE NULL 1 IS TRUE -9223372036854775808 2 @@ -2029,7 +2075,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_bigint`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_bigint, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 103 OR select_id IS NULL); +WHERE select_id = 107 OR select_id IS NULL) order by id; IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id IS NOT TRUE NULL 1 IS TRUE -9223372036854775808 2 @@ -2043,7 +2089,7 @@ CREATE VIEW v1 AS SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'), my_varbinary_1000, id FROM t1_values; SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 102 OR select_id IS NULL; +WHERE select_id = 106 OR select_id IS NULL order by id; IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2055,7 +2101,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varbinary_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 102 OR select_id IS NULL); +WHERE select_id = 106 OR select_id IS NULL) order by id; IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2069,13 +2115,13 @@ CREATE VIEW v1 AS SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'), my_binary_30, id FROM t1_values; SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'), my_binary_30, id FROM t1_values -WHERE select_id = 101 OR select_id IS NULL; +WHERE select_id = 105 OR select_id IS NULL order by id; IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id IS NOT TRUE NULL 1 -IS NOT TRUE 2 +IS NOT TRUE 2 IS NOT TRUE <--------30 characters-------> 3 -IS NOT TRUE ---äÖüß@µ*$-- 4 -IS TRUE -1 5 +IS NOT TRUE ---äÖüß@µ*$-- 4 +IS TRUE -1 5 Warnings: Warning 1292 Truncated incorrect DOUBLE value: '' Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->' @@ -2086,7 +2132,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_binary_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 101 OR select_id IS NULL); +WHERE select_id = 105 OR select_id IS NULL) order by id; IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2105,7 +2151,7 @@ CREATE VIEW v1 AS SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'), my_varchar_1000, id FROM t1_values; SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'), my_varchar_1000, id FROM t1_values -WHERE select_id = 100 OR select_id IS NULL; +WHERE select_id = 104 OR select_id IS NULL order by id; IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2117,7 +2163,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varchar_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 100 OR select_id IS NULL); +WHERE select_id = 104 OR select_id IS NULL) order by id; IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2131,7 +2177,7 @@ CREATE VIEW v1 AS SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'), my_char_30, id FROM t1_values; SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'), my_char_30, id FROM t1_values -WHERE select_id = 99 OR select_id IS NULL; +WHERE select_id = 103 OR select_id IS NULL order by id; IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2146,7 +2192,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_char_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_char_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 99 OR select_id IS NULL); +WHERE select_id = 103 OR select_id IS NULL) order by id; IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2159,11 +2205,11 @@ Warning 1292 Truncated incorrect DOUBLE value: ' --- DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values; -SELECT CONVERT(my_varbinary_1000 USING koi8r), +SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values -WHERE select_id = 98 OR select_id IS NULL; +WHERE select_id = 102 OR select_id IS NULL order by id; CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id NULL NULL 1 2 @@ -2175,7 +2221,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using koi8r) AS `CONVERT(my_varbinary_1000 USING koi8r)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 98 OR select_id IS NULL); +WHERE select_id = 102 OR select_id IS NULL) order by id; CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id NULL NULL 1 2 @@ -2185,23 +2231,23 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values; -SELECT CONVERT(my_binary_30 USING koi8r), +SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values -WHERE select_id = 97 OR select_id IS NULL; +WHERE select_id = 101 OR select_id IS NULL order by id; CONVERT(my_binary_30 USING koi8r) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---???????@??*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---???????@??*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using koi8r) AS `CONVERT(my_binary_30 USING koi8r)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 97 OR select_id IS NULL); +WHERE select_id = 101 OR select_id IS NULL) order by id; CONVERT(my_binary_30 USING koi8r) my_binary_30 id NULL NULL 1 2 @@ -2211,11 +2257,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values; -SELECT CONVERT(my_varchar_1000 USING koi8r), +SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values -WHERE select_id = 96 OR select_id IS NULL; +WHERE select_id = 100 OR select_id IS NULL order by id; CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id NULL NULL 1 2 @@ -2227,7 +2273,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using koi8r) AS `CONVERT(my_varchar_1000 USING koi8r)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 96 OR select_id IS NULL); +WHERE select_id = 100 OR select_id IS NULL) order by id; CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id NULL NULL 1 2 @@ -2237,11 +2283,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values; -SELECT CONVERT(my_char_30 USING koi8r), +SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values -WHERE select_id = 95 OR select_id IS NULL; +WHERE select_id = 99 OR select_id IS NULL order by id; CONVERT(my_char_30 USING koi8r) my_char_30 id NULL NULL 1 2 @@ -2253,7 +2299,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using koi8r) AS `CONVERT(my_char_30 USING koi8r)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 95 OR select_id IS NULL); +WHERE select_id = 99 OR select_id IS NULL) order by id; CONVERT(my_char_30 USING koi8r) my_char_30 id NULL NULL 1 2 @@ -2263,11 +2309,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values; -SELECT CONVERT(my_varbinary_1000 USING utf8), +SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values -WHERE select_id = 94 OR select_id IS NULL; +WHERE select_id = 98 OR select_id IS NULL order by id; CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id NULL NULL 1 2 @@ -2279,7 +2325,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using utf8) AS `CONVERT(my_varbinary_1000 USING utf8)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 94 OR select_id IS NULL); +WHERE select_id = 98 OR select_id IS NULL) order by id; CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id NULL NULL 1 2 @@ -2289,23 +2335,23 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values; -SELECT CONVERT(my_binary_30 USING utf8), +SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values -WHERE select_id = 93 OR select_id IS NULL; +WHERE select_id = 97 OR select_id IS NULL order by id; CONVERT(my_binary_30 USING utf8) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---@*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---@*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using utf8) AS `CONVERT(my_binary_30 USING utf8)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 93 OR select_id IS NULL); +WHERE select_id = 97 OR select_id IS NULL) order by id; CONVERT(my_binary_30 USING utf8) my_binary_30 id NULL NULL 1 2 @@ -2315,11 +2361,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values; -SELECT CONVERT(my_varchar_1000 USING utf8), +SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values -WHERE select_id = 92 OR select_id IS NULL; +WHERE select_id = 96 OR select_id IS NULL order by id; CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id NULL NULL 1 2 @@ -2331,7 +2377,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using utf8) AS `CONVERT(my_varchar_1000 USING utf8)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 92 OR select_id IS NULL); +WHERE select_id = 96 OR select_id IS NULL) order by id; CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id NULL NULL 1 2 @@ -2341,11 +2387,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values; -SELECT CONVERT(my_char_30 USING utf8), +SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values -WHERE select_id = 91 OR select_id IS NULL; +WHERE select_id = 95 OR select_id IS NULL order by id; CONVERT(my_char_30 USING utf8) my_char_30 id NULL NULL 1 2 @@ -2357,7 +2403,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using utf8) AS `CONVERT(my_char_30 USING utf8)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 91 OR select_id IS NULL); +WHERE select_id = 95 OR select_id IS NULL) order by id; CONVERT(my_char_30 USING utf8) my_char_30 id NULL NULL 1 2 @@ -2371,7 +2417,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS UNSIGNED INTEGER), my_year, id FROM t1_values; SELECT CAST(my_year AS UNSIGNED INTEGER), my_year, id FROM t1_values -WHERE select_id = 90 OR select_id IS NULL; +WHERE select_id = 94 OR select_id IS NULL order by id; CAST(my_year AS UNSIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2383,7 +2429,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as unsigned) AS `CAST(my_year AS UNSIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 90 OR select_id IS NULL); +WHERE select_id = 94 OR select_id IS NULL) order by id; CAST(my_year AS UNSIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2397,7 +2443,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS UNSIGNED INTEGER), my_time, id FROM t1_values; SELECT CAST(my_time AS UNSIGNED INTEGER), my_time, id FROM t1_values -WHERE select_id = 89 OR select_id IS NULL; +WHERE select_id = 93 OR select_id IS NULL order by id; CAST(my_time AS UNSIGNED INTEGER) my_time id NULL NULL 1 18446744073701165657 -838:59:59 2 @@ -2409,7 +2455,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 89 OR select_id IS NULL); +WHERE select_id = 93 OR select_id IS NULL) order by id; CAST(my_time AS UNSIGNED INTEGER) my_time id NULL NULL 1 18446744073701165657 -838:59:59 2 @@ -2423,7 +2469,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS UNSIGNED INTEGER), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS UNSIGNED INTEGER), my_timestamp, id FROM t1_values -WHERE select_id = 88 OR select_id IS NULL; +WHERE select_id = 92 OR select_id IS NULL order by id; CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2435,7 +2481,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 88 OR select_id IS NULL); +WHERE select_id = 92 OR select_id IS NULL) order by id; CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2449,7 +2495,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS UNSIGNED INTEGER), my_date, id FROM t1_values; SELECT CAST(my_date AS UNSIGNED INTEGER), my_date, id FROM t1_values -WHERE select_id = 87 OR select_id IS NULL; +WHERE select_id = 91 OR select_id IS NULL order by id; CAST(my_date AS UNSIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2461,7 +2507,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 87 OR select_id IS NULL); +WHERE select_id = 91 OR select_id IS NULL) order by id; CAST(my_date AS UNSIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2475,7 +2521,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS UNSIGNED INTEGER), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS UNSIGNED INTEGER), my_datetime, id FROM t1_values -WHERE select_id = 86 OR select_id IS NULL; +WHERE select_id = 90 OR select_id IS NULL order by id; CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2487,7 +2533,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 86 OR select_id IS NULL); +WHERE select_id = 90 OR select_id IS NULL) order by id; CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2497,11 +2543,43 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS UNSIGNED INTEGER), +my_double, id FROM t1_values; +SELECT CAST(my_double AS UNSIGNED INTEGER), +my_double, id FROM t1_values +WHERE select_id = 89 OR select_id IS NULL order by id; +CAST(my_double AS UNSIGNED INTEGER) my_double id +NULL NULL 1 +9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +18446744073709551615 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as unsigned) AS `CAST(my_double AS UNSIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 89 OR select_id IS NULL) order by id; +CAST(my_double AS UNSIGNED INTEGER) my_double id +NULL NULL 1 +9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +18446744073709551615 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS UNSIGNED INTEGER), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS UNSIGNED INTEGER), my_decimal, id FROM t1_values -WHERE select_id = 85 OR select_id IS NULL; +WHERE select_id = 88 OR select_id IS NULL order by id; CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id NULL NULL 1 0 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2517,7 +2595,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as unsigned) AS `CAST(my_decimal AS UNSIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 85 OR select_id IS NULL); +WHERE select_id = 88 OR select_id IS NULL) order by id; CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id NULL NULL 1 0 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2535,7 +2613,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS UNSIGNED INTEGER), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS UNSIGNED INTEGER), my_bigint, id FROM t1_values -WHERE select_id = 84 OR select_id IS NULL; +WHERE select_id = 87 OR select_id IS NULL order by id; CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id NULL NULL 1 9223372036854775808 -9223372036854775808 2 @@ -2547,7 +2625,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as unsigned) AS `CAST(my_bigint AS UNSIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 84 OR select_id IS NULL); +WHERE select_id = 87 OR select_id IS NULL) order by id; CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id NULL NULL 1 9223372036854775808 -9223372036854775808 2 @@ -2561,7 +2639,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER), my_varbinary_1000, id FROM t1_values -WHERE select_id = 83 OR select_id IS NULL; +WHERE select_id = 86 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2578,7 +2656,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as unsigned) AS `CAST(my_varbinary_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 83 OR select_id IS NULL); +WHERE select_id = 86 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2597,13 +2675,13 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS UNSIGNED INTEGER), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS UNSIGNED INTEGER), my_binary_30, id FROM t1_values -WHERE select_id = 82 OR select_id IS NULL; +WHERE select_id = 85 OR select_id IS NULL order by id; CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id NULL NULL 1 -0 2 +0 2 0 <--------30 characters-------> 3 -0 ---äÖüß@µ*$-- 4 -18446744073709551615 -1 5 +0 ---äÖüß@µ*$-- 4 +18446744073709551615 -1 5 Warnings: Warning 1292 Truncated incorrect INTEGER value: '' Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->' @@ -2615,7 +2693,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as unsigned) AS `CAST(my_binary_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 82 OR select_id IS NULL); +WHERE select_id = 85 OR select_id IS NULL) order by id; CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id NULL NULL 1 0 2 @@ -2635,7 +2713,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER), my_varchar_1000, id FROM t1_values -WHERE select_id = 81 OR select_id IS NULL; +WHERE select_id = 84 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2652,7 +2730,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as unsigned) AS `CAST(my_varchar_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 81 OR select_id IS NULL); +WHERE select_id = 84 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2671,7 +2749,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS UNSIGNED INTEGER), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS UNSIGNED INTEGER), my_char_30, id FROM t1_values -WHERE select_id = 80 OR select_id IS NULL; +WHERE select_id = 83 OR select_id IS NULL order by id; CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -2688,7 +2766,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as unsigned) AS `CAST(my_char_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 80 OR select_id IS NULL); +WHERE select_id = 83 OR select_id IS NULL) order by id; CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -2707,7 +2785,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS SIGNED INTEGER), my_year, id FROM t1_values; SELECT CAST(my_year AS SIGNED INTEGER), my_year, id FROM t1_values -WHERE select_id = 79 OR select_id IS NULL; +WHERE select_id = 82 OR select_id IS NULL order by id; CAST(my_year AS SIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2719,7 +2797,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as signed) AS `CAST(my_year AS SIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 79 OR select_id IS NULL); +WHERE select_id = 82 OR select_id IS NULL) order by id; CAST(my_year AS SIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2733,7 +2811,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS SIGNED INTEGER), my_time, id FROM t1_values; SELECT CAST(my_time AS SIGNED INTEGER), my_time, id FROM t1_values -WHERE select_id = 78 OR select_id IS NULL; +WHERE select_id = 81 OR select_id IS NULL order by id; CAST(my_time AS SIGNED INTEGER) my_time id NULL NULL 1 -8385959 -838:59:59 2 @@ -2745,7 +2823,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 78 OR select_id IS NULL); +WHERE select_id = 81 OR select_id IS NULL) order by id; CAST(my_time AS SIGNED INTEGER) my_time id NULL NULL 1 -8385959 -838:59:59 2 @@ -2759,7 +2837,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS SIGNED INTEGER), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS SIGNED INTEGER), my_timestamp, id FROM t1_values -WHERE select_id = 77 OR select_id IS NULL; +WHERE select_id = 80 OR select_id IS NULL order by id; CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2771,7 +2849,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 77 OR select_id IS NULL); +WHERE select_id = 80 OR select_id IS NULL) order by id; CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2785,7 +2863,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS SIGNED INTEGER), my_date, id FROM t1_values; SELECT CAST(my_date AS SIGNED INTEGER), my_date, id FROM t1_values -WHERE select_id = 76 OR select_id IS NULL; +WHERE select_id = 79 OR select_id IS NULL order by id; CAST(my_date AS SIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2797,7 +2875,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 76 OR select_id IS NULL); +WHERE select_id = 79 OR select_id IS NULL) order by id; CAST(my_date AS SIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2811,7 +2889,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS SIGNED INTEGER), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS SIGNED INTEGER), my_datetime, id FROM t1_values -WHERE select_id = 75 OR select_id IS NULL; +WHERE select_id = 78 OR select_id IS NULL order by id; CAST(my_datetime AS SIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2823,7 +2901,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 75 OR select_id IS NULL); +WHERE select_id = 78 OR select_id IS NULL) order by id; CAST(my_datetime AS SIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2833,11 +2911,43 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS SIGNED INTEGER), +my_double, id FROM t1_values; +SELECT CAST(my_double AS SIGNED INTEGER), +my_double, id FROM t1_values +WHERE select_id = 77 OR select_id IS NULL order by id; +CAST(my_double AS SIGNED INTEGER) my_double id +NULL NULL 1 +-9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +-1 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as signed) AS `CAST(my_double AS SIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 77 OR select_id IS NULL) order by id; +CAST(my_double AS SIGNED INTEGER) my_double id +NULL NULL 1 +-9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +-1 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS SIGNED INTEGER), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS SIGNED INTEGER), my_decimal, id FROM t1_values -WHERE select_id = 74 OR select_id IS NULL; +WHERE select_id = 76 OR select_id IS NULL order by id; CAST(my_decimal AS SIGNED INTEGER) my_decimal id NULL NULL 1 -9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2852,7 +2962,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as signed) AS `CAST(my_decimal AS SIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 74 OR select_id IS NULL); +WHERE select_id = 76 OR select_id IS NULL) order by id; CAST(my_decimal AS SIGNED INTEGER) my_decimal id NULL NULL 1 -9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2869,7 +2979,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS SIGNED INTEGER), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS SIGNED INTEGER), my_bigint, id FROM t1_values -WHERE select_id = 73 OR select_id IS NULL; +WHERE select_id = 75 OR select_id IS NULL order by id; CAST(my_bigint AS SIGNED INTEGER) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -2881,7 +2991,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as signed) AS `CAST(my_bigint AS SIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 73 OR select_id IS NULL); +WHERE select_id = 75 OR select_id IS NULL) order by id; CAST(my_bigint AS SIGNED INTEGER) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -2895,7 +3005,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER), my_varbinary_1000, id FROM t1_values -WHERE select_id = 72 OR select_id IS NULL; +WHERE select_id = 74 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2911,7 +3021,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as signed) AS `CAST(my_varbinary_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 72 OR select_id IS NULL); +WHERE select_id = 74 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2929,13 +3039,13 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS SIGNED INTEGER), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS SIGNED INTEGER), my_binary_30, id FROM t1_values -WHERE select_id = 71 OR select_id IS NULL; +WHERE select_id = 73 OR select_id IS NULL order by id; CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id NULL NULL 1 -0 2 +0 2 0 <--------30 characters-------> 3 -0 ---äÖüß@µ*$-- 4 --1 -1 5 +0 ---äÖüß@µ*$-- 4 +-1 -1 5 Warnings: Warning 1292 Truncated incorrect INTEGER value: '' Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->' @@ -2946,7 +3056,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as signed) AS `CAST(my_binary_30 AS SIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 71 OR select_id IS NULL); +WHERE select_id = 73 OR select_id IS NULL) order by id; CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id NULL NULL 1 0 2 @@ -2965,7 +3075,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS SIGNED INTEGER), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS SIGNED INTEGER), my_varchar_1000, id FROM t1_values -WHERE select_id = 70 OR select_id IS NULL; +WHERE select_id = 72 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2981,7 +3091,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as signed) AS `CAST(my_varchar_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 70 OR select_id IS NULL); +WHERE select_id = 72 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2999,7 +3109,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS SIGNED INTEGER), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS SIGNED INTEGER), my_char_30, id FROM t1_values -WHERE select_id = 69 OR select_id IS NULL; +WHERE select_id = 71 OR select_id IS NULL order by id; CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -3015,7 +3125,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as signed) AS `CAST(my_char_30 AS SIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 69 OR select_id IS NULL); +WHERE select_id = 71 OR select_id IS NULL) order by id; CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -3033,7 +3143,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)), my_year, id FROM t1_values; SELECT CAST(my_year AS DECIMAL(37,2)), my_year, id FROM t1_values -WHERE select_id = 68 OR select_id IS NULL; +WHERE select_id = 70 OR select_id IS NULL order by id; CAST(my_year AS DECIMAL(37,2)) my_year id NULL NULL 1 1901.00 1901 2 @@ -3045,7 +3155,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal(37,2)) AS `CAST(my_year AS DECIMAL(37,2))`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 68 OR select_id IS NULL); +WHERE select_id = 70 OR select_id IS NULL) order by id; CAST(my_year AS DECIMAL(37,2)) my_year id NULL NULL 1 1901.00 1901 2 @@ -3059,7 +3169,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL(37,2)), my_time, id FROM t1_values; SELECT CAST(my_time AS DECIMAL(37,2)), my_time, id FROM t1_values -WHERE select_id = 67 OR select_id IS NULL; +WHERE select_id = 69 OR select_id IS NULL order by id; CAST(my_time AS DECIMAL(37,2)) my_time id NULL NULL 1 -8385959.00 -838:59:59 2 @@ -3071,7 +3181,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal(37,2)) AS `CAST(my_time AS DECIMAL(37,2))`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 67 OR select_id IS NULL); +WHERE select_id = 69 OR select_id IS NULL) order by id; CAST(my_time AS DECIMAL(37,2)) my_time id NULL NULL 1 -8385959.00 -838:59:59 2 @@ -3085,7 +3195,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL(37,2)), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DECIMAL(37,2)), my_timestamp, id FROM t1_values -WHERE select_id = 66 OR select_id IS NULL; +WHERE select_id = 68 OR select_id IS NULL order by id; CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id 0.00 0000-00-00 00:00:00 1 19700101030001.00 1970-01-01 03:00:01 2 @@ -3097,7 +3207,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal(37,2)) AS `CAST(my_timestamp AS DECIMAL(37,2))`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 66 OR select_id IS NULL); +WHERE select_id = 68 OR select_id IS NULL) order by id; CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id 0.00 0000-00-00 00:00:00 1 19700101030001.00 1970-01-01 03:00:01 2 @@ -3111,7 +3221,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL(37,2)), my_date, id FROM t1_values; SELECT CAST(my_date AS DECIMAL(37,2)), my_date, id FROM t1_values -WHERE select_id = 65 OR select_id IS NULL; +WHERE select_id = 67 OR select_id IS NULL order by id; CAST(my_date AS DECIMAL(37,2)) my_date id NULL NULL 1 10101.00 0001-01-01 2 @@ -3123,7 +3233,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal(37,2)) AS `CAST(my_date AS DECIMAL(37,2))`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 65 OR select_id IS NULL); +WHERE select_id = 67 OR select_id IS NULL) order by id; CAST(my_date AS DECIMAL(37,2)) my_date id NULL NULL 1 10101.00 0001-01-01 2 @@ -3137,7 +3247,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL(37,2)), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DECIMAL(37,2)), my_datetime, id FROM t1_values -WHERE select_id = 64 OR select_id IS NULL; +WHERE select_id = 66 OR select_id IS NULL order by id; CAST(my_datetime AS DECIMAL(37,2)) my_datetime id NULL NULL 1 10101000000.00 0001-01-01 00:00:00 2 @@ -3149,7 +3259,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal(37,2)) AS `CAST(my_datetime AS DECIMAL(37,2))`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 64 OR select_id IS NULL); +WHERE select_id = 66 OR select_id IS NULL) order by id; CAST(my_datetime AS DECIMAL(37,2)) my_datetime id NULL NULL 1 10101000000.00 0001-01-01 00:00:00 2 @@ -3159,11 +3269,49 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS DECIMAL(37,2)), +my_double, id FROM t1_values; +SELECT CAST(my_double AS DECIMAL(37,2)), +my_double, id FROM t1_values +WHERE select_id = 65 OR select_id IS NULL order by id; +CAST(my_double AS DECIMAL(37,2)) my_double id +NULL NULL 1 +-99999999999999999999999999999999999.99 -1.7976931348623e+308 2 +99999999999999999999999999999999999.99 1.7976931348623e+308 3 +0.00 0 4 +-1.00 -1 5 +-3333.33 -3333.3333 30 +Warnings: +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as decimal(37,2)) AS `CAST(my_double AS DECIMAL(37,2))`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 65 OR select_id IS NULL) order by id; +CAST(my_double AS DECIMAL(37,2)) my_double id +NULL NULL 1 +-99999999999999999999999999999999999.99 -1.7976931348623e+308 2 +99999999999999999999999999999999999.99 1.7976931348623e+308 3 +0.00 0 4 +-1.00 -1 5 +-3333.33 -3333.3333 30 +Warnings: +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL(37,2)), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS DECIMAL(37,2)), my_decimal, id FROM t1_values -WHERE select_id = 63 OR select_id IS NULL; +WHERE select_id = 64 OR select_id IS NULL order by id; CAST(my_decimal AS DECIMAL(37,2)) my_decimal id NULL NULL 1 -10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -3175,7 +3323,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal(37,2)) AS `CAST(my_decimal AS DECIMAL(37,2))`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 63 OR select_id IS NULL); +WHERE select_id = 64 OR select_id IS NULL) order by id; CAST(my_decimal AS DECIMAL(37,2)) my_decimal id NULL NULL 1 -10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -3189,7 +3337,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL(37,2)), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DECIMAL(37,2)), my_bigint, id FROM t1_values -WHERE select_id = 62 OR select_id IS NULL; +WHERE select_id = 63 OR select_id IS NULL order by id; CAST(my_bigint AS DECIMAL(37,2)) my_bigint id NULL NULL 1 -9223372036854775808.00 -9223372036854775808 2 @@ -3201,7 +3349,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal(37,2)) AS `CAST(my_bigint AS DECIMAL(37,2))`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 62 OR select_id IS NULL); +WHERE select_id = 63 OR select_id IS NULL) order by id; CAST(my_bigint AS DECIMAL(37,2)) my_bigint id NULL NULL 1 -9223372036854775808.00 -9223372036854775808 2 @@ -3215,14 +3363,14 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)), my_varbinary_1000, id FROM t1_values -WHERE select_id = 61 OR select_id IS NULL; +WHERE select_id = 62 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 28 +-3333.33 -3333.3333 29 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3232,14 +3380,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal(37,2)) AS `CAST(my_varbinary_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 61 OR select_id IS NULL); +WHERE select_id = 62 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 28 +-3333.33 -3333.3333 29 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3251,14 +3399,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL(37,2)), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DECIMAL(37,2)), my_binary_30, id FROM t1_values -WHERE select_id = 60 OR select_id IS NULL; +WHERE select_id = 61 OR select_id IS NULL order by id; CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id NULL NULL 1 -0.00 2 +0.00 2 0.00 <--------30 characters-------> 3 -0.00 ---äÖüß@µ*$-- 4 --1.00 -1 5 --3333.33 -3333.3333 27 +0.00 ---äÖüß@µ*$-- 4 +-1.00 -1 5 +-3333.33 -3333.3333 28 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: '' @@ -3273,14 +3421,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal(37,2)) AS `CAST(my_binary_30 AS DECIMAL(37,2))`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 60 OR select_id IS NULL); +WHERE select_id = 61 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 27 +-3333.33 -3333.3333 28 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: '' @@ -3297,14 +3445,14 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)), my_varchar_1000, id FROM t1_values -WHERE select_id = 59 OR select_id IS NULL; +WHERE select_id = 60 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 26 +-3333.33 -3333.3333 27 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3314,14 +3462,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal(37,2)) AS `CAST(my_varchar_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 59 OR select_id IS NULL); +WHERE select_id = 60 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 26 +-3333.33 -3333.3333 27 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3333,14 +3481,14 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL(37,2)), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DECIMAL(37,2)), my_char_30, id FROM t1_values -WHERE select_id = 58 OR select_id IS NULL; +WHERE select_id = 59 OR select_id IS NULL order by id; CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 25 +-3333.33 -3333.3333 26 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: ' ' @@ -3353,14 +3501,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal(37,2)) AS `CAST(my_char_30 AS DECIMAL(37,2))`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 58 OR select_id IS NULL); +WHERE select_id = 59 OR select_id IS NULL) order by id; CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 25 +-3333.33 -3333.3333 26 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: ' ' @@ -3375,7 +3523,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS TIME), my_year, id FROM t1_values; SELECT CAST(my_year AS TIME), my_year, id FROM t1_values -WHERE select_id = 57 OR select_id IS NULL; +WHERE select_id = 58 OR select_id IS NULL order by id; CAST(my_year AS TIME) my_year id NULL NULL 1 00:19:01 1901 2 @@ -3387,7 +3535,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as time) AS `CAST(my_year AS TIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 57 OR select_id IS NULL); +WHERE select_id = 58 OR select_id IS NULL) order by id; CAST(my_year AS TIME) my_year id NULL NULL 1 00:19:01 1901 2 @@ -3401,7 +3549,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS TIME), my_time, id FROM t1_values; SELECT CAST(my_time AS TIME), my_time, id FROM t1_values -WHERE select_id = 56 OR select_id IS NULL; +WHERE select_id = 57 OR select_id IS NULL order by id; CAST(my_time AS TIME) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -3413,7 +3561,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as time) AS `CAST(my_time AS TIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 56 OR select_id IS NULL); +WHERE select_id = 57 OR select_id IS NULL) order by id; CAST(my_time AS TIME) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -3427,7 +3575,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS TIME), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS TIME), my_timestamp, id FROM t1_values -WHERE select_id = 55 OR select_id IS NULL; +WHERE select_id = 56 OR select_id IS NULL order by id; CAST(my_timestamp AS TIME) my_timestamp id 00:00:00 0000-00-00 00:00:00 1 03:00:01 1970-01-01 03:00:01 2 @@ -3439,7 +3587,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as time) AS `CAST(my_timestamp AS TIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 55 OR select_id IS NULL); +WHERE select_id = 56 OR select_id IS NULL) order by id; CAST(my_timestamp AS TIME) my_timestamp id 00:00:00 0000-00-00 00:00:00 1 03:00:01 1970-01-01 03:00:01 2 @@ -3453,7 +3601,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS TIME), my_date, id FROM t1_values; SELECT CAST(my_date AS TIME), my_date, id FROM t1_values -WHERE select_id = 54 OR select_id IS NULL; +WHERE select_id = 55 OR select_id IS NULL order by id; CAST(my_date AS TIME) my_date id NULL NULL 1 00:00:00 0001-01-01 2 @@ -3465,7 +3613,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as time) AS `CAST(my_date AS TIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 54 OR select_id IS NULL); +WHERE select_id = 55 OR select_id IS NULL) order by id; CAST(my_date AS TIME) my_date id NULL NULL 1 00:00:00 0001-01-01 2 @@ -3479,7 +3627,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS TIME), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS TIME), my_datetime, id FROM t1_values -WHERE select_id = 53 OR select_id IS NULL; +WHERE select_id = 54 OR select_id IS NULL order by id; CAST(my_datetime AS TIME) my_datetime id NULL NULL 1 00:00:00 0001-01-01 00:00:00 2 @@ -3491,7 +3639,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as time) AS `CAST(my_datetime AS TIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 53 OR select_id IS NULL); +WHERE select_id = 54 OR select_id IS NULL) order by id; CAST(my_datetime AS TIME) my_datetime id NULL NULL 1 00:00:00 0001-01-01 00:00:00 2 @@ -3501,11 +3649,45 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS TIME), +my_double, id FROM t1_values; +SELECT CAST(my_double AS TIME), +my_double, id FROM t1_values +WHERE select_id = 53 OR select_id IS NULL order by id; +CAST(my_double AS TIME) my_double id +NULL NULL 1 +NULL -1.7976931348623e+308 2 +NULL 1.7976931348623e+308 3 +00:00:00 0 4 +-00:00:01 -1 5 +00:17:58 1758 25 +Warnings: +Warning 1292 Truncated incorrect time value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect time value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as time) AS `CAST(my_double AS TIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 53 OR select_id IS NULL) order by id; +CAST(my_double AS TIME) my_double id +NULL NULL 1 +NULL -1.7976931348623e+308 2 +NULL 1.7976931348623e+308 3 +00:00:00 0 4 +-00:00:01 -1 5 +00:17:58 1758 25 +Warnings: +Warning 1292 Truncated incorrect time value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect time value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_bigint AS TIME), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS TIME), my_bigint, id FROM t1_values -WHERE select_id = 52 OR select_id IS NULL; +WHERE select_id = 52 OR select_id IS NULL order by id; CAST(my_bigint AS TIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3521,7 +3703,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as time) AS `CAST(my_bigint AS TIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 52 OR select_id IS NULL); +WHERE select_id = 52 OR select_id IS NULL) order by id; CAST(my_bigint AS TIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3539,7 +3721,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS TIME), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS TIME), my_varbinary_1000, id FROM t1_values -WHERE select_id = 51 OR select_id IS NULL; +WHERE select_id = 51 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3556,7 +3738,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as time) AS `CAST(my_varbinary_1000 AS TIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 51 OR select_id IS NULL); +WHERE select_id = 51 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3575,14 +3757,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS TIME), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS TIME), my_binary_30, id FROM t1_values -WHERE select_id = 50 OR select_id IS NULL; +WHERE select_id = 50 OR select_id IS NULL order by id; CAST(my_binary_30 AS TIME) my_binary_30 id NULL NULL 1 -00:00:00 2 +00:00:00 2 00:00:00 <--------30 characters-------> 3 --00:00:00 ---äÖüß@µ*$-- 4 -NULL -1 5 -41:58:00 1 17:58 22 +-00:00:00 ---äÖüß@µ*$-- 4 +NULL -1 5 +41:58:00 1 17:58 22 Warnings: Warning 1292 Truncated incorrect time value: '' Warning 1292 Truncated incorrect time value: '<--------30 characters------->' @@ -3594,7 +3776,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as time) AS `CAST(my_binary_30 AS TIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 50 OR select_id IS NULL); +WHERE select_id = 50 OR select_id IS NULL) order by id; CAST(my_binary_30 AS TIME) my_binary_30 id NULL NULL 1 00:00:00 2 @@ -3615,7 +3797,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS TIME), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS TIME), my_varchar_1000, id FROM t1_values -WHERE select_id = 49 OR select_id IS NULL; +WHERE select_id = 49 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS TIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -3632,7 +3814,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as time) AS `CAST(my_varchar_1000 AS TIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 49 OR select_id IS NULL); +WHERE select_id = 49 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS TIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -3651,7 +3833,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS TIME), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS TIME), my_char_30, id FROM t1_values -WHERE select_id = 48 OR select_id IS NULL; +WHERE select_id = 48 OR select_id IS NULL order by id; CAST(my_char_30 AS TIME) my_char_30 id NULL NULL 1 NULL 2 @@ -3668,7 +3850,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as time) AS `CAST(my_char_30 AS TIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 48 OR select_id IS NULL); +WHERE select_id = 48 OR select_id IS NULL) order by id; CAST(my_char_30 AS TIME) my_char_30 id NULL NULL 1 NULL 2 @@ -3687,7 +3869,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DATETIME), my_year, id FROM t1_values; SELECT CAST(my_year AS DATETIME), my_year, id FROM t1_values -WHERE select_id = 47 OR select_id IS NULL; +WHERE select_id = 47 OR select_id IS NULL order by id; CAST(my_year AS DATETIME) my_year id NULL NULL 1 NULL 1901 2 @@ -3704,7 +3886,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as datetime) AS `CAST(my_year AS DATETIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 47 OR select_id IS NULL); +WHERE select_id = 47 OR select_id IS NULL) order by id; CAST(my_year AS DATETIME) my_year id NULL NULL 1 NULL 1901 2 @@ -3723,7 +3905,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DATETIME), my_time, id FROM t1_values; SELECT CAST(my_time AS DATETIME), my_time, id FROM t1_values -WHERE select_id = 46 OR select_id IS NULL; +WHERE select_id = 46 OR select_id IS NULL order by id; CAST(my_time AS DATETIME) my_time id NULL NULL 1 0000-00-00 00:00:00 -838:59:59 2 @@ -3738,7 +3920,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 46 OR select_id IS NULL); +WHERE select_id = 46 OR select_id IS NULL) order by id; CAST(my_time AS DATETIME) my_time id NULL NULL 1 0000-00-00 00:00:00 -838:59:59 2 @@ -3755,7 +3937,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATETIME), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DATETIME), my_timestamp, id FROM t1_values -WHERE select_id = 45 OR select_id IS NULL; +WHERE select_id = 45 OR select_id IS NULL order by id; CAST(my_timestamp AS DATETIME) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -3767,7 +3949,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as datetime) AS `CAST(my_timestamp AS DATETIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 45 OR select_id IS NULL); +WHERE select_id = 45 OR select_id IS NULL) order by id; CAST(my_timestamp AS DATETIME) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -3781,7 +3963,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DATETIME), my_date, id FROM t1_values; SELECT CAST(my_date AS DATETIME), my_date, id FROM t1_values -WHERE select_id = 44 OR select_id IS NULL; +WHERE select_id = 44 OR select_id IS NULL order by id; CAST(my_date AS DATETIME) my_date id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 2 @@ -3793,7 +3975,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as datetime) AS `CAST(my_date AS DATETIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 44 OR select_id IS NULL); +WHERE select_id = 44 OR select_id IS NULL) order by id; CAST(my_date AS DATETIME) my_date id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 2 @@ -3807,7 +3989,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATETIME), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DATETIME), my_datetime, id FROM t1_values -WHERE select_id = 43 OR select_id IS NULL; +WHERE select_id = 43 OR select_id IS NULL order by id; CAST(my_datetime AS DATETIME) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -3819,7 +4001,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as datetime) AS `CAST(my_datetime AS DATETIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 43 OR select_id IS NULL); +WHERE select_id = 43 OR select_id IS NULL) order by id; CAST(my_datetime AS DATETIME) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -3833,7 +4015,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS DATETIME), my_double, id FROM t1_values; SELECT CAST(my_double AS DATETIME), my_double, id FROM t1_values -WHERE select_id = 42 OR select_id IS NULL; +WHERE select_id = 42 OR select_id IS NULL order by id; CAST(my_double AS DATETIME) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -3852,7 +4034,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as datetime) AS `CAST(my_double AS DATETIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 42 OR select_id IS NULL); +WHERE select_id = 42 OR select_id IS NULL) order by id; CAST(my_double AS DATETIME) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -3873,7 +4055,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATETIME), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DATETIME), my_bigint, id FROM t1_values -WHERE select_id = 41 OR select_id IS NULL; +WHERE select_id = 41 OR select_id IS NULL order by id; CAST(my_bigint AS DATETIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3892,7 +4074,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as datetime) AS `CAST(my_bigint AS DATETIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 41 OR select_id IS NULL); +WHERE select_id = 41 OR select_id IS NULL) order by id; CAST(my_bigint AS DATETIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3913,7 +4095,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATETIME), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DATETIME), my_varbinary_1000, id FROM t1_values -WHERE select_id = 40 OR select_id IS NULL; +WHERE select_id = 40 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3931,7 +4113,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as datetime) AS `CAST(my_varbinary_1000 AS DATETIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 40 OR select_id IS NULL); +WHERE select_id = 40 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3951,14 +4133,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATETIME), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DATETIME), my_binary_30, id FROM t1_values -WHERE select_id = 39 OR select_id IS NULL; +WHERE select_id = 39 OR select_id IS NULL order by id; CAST(my_binary_30 AS DATETIME) my_binary_30 id NULL NULL 1 -NULL 2 +NULL 2 NULL <--------30 characters-------> 3 -NULL ---äÖüß@µ*$-- 4 -NULL -1 5 -2005-06-27 17:58:00 2005-06-27 17:58 16 +NULL ---äÖüß@µ*$-- 4 +NULL -1 5 +2005-06-27 17:58:00 2005-06-27 17:58 16 Warnings: Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->' @@ -3970,7 +4152,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as datetime) AS `CAST(my_binary_30 AS DATETIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 39 OR select_id IS NULL); +WHERE select_id = 39 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DATETIME) my_binary_30 id NULL NULL 1 NULL 2 @@ -3991,7 +4173,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATETIME), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DATETIME), my_varchar_1000, id FROM t1_values -WHERE select_id = 38 OR select_id IS NULL; +WHERE select_id = 38 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4009,7 +4191,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as datetime) AS `CAST(my_varchar_1000 AS DATETIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 38 OR select_id IS NULL); +WHERE select_id = 38 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4029,7 +4211,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATETIME), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DATETIME), my_char_30, id FROM t1_values -WHERE select_id = 37 OR select_id IS NULL; +WHERE select_id = 37 OR select_id IS NULL order by id; CAST(my_char_30 AS DATETIME) my_char_30 id NULL NULL 1 NULL 2 @@ -4047,7 +4229,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as datetime) AS `CAST(my_char_30 AS DATETIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 37 OR select_id IS NULL); +WHERE select_id = 37 OR select_id IS NULL) order by id; CAST(my_char_30 AS DATETIME) my_char_30 id NULL NULL 1 NULL 2 @@ -4067,7 +4249,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DATE), my_year, id FROM t1_values; SELECT CAST(my_year AS DATE), my_year, id FROM t1_values -WHERE select_id = 36 OR select_id IS NULL; +WHERE select_id = 36 OR select_id IS NULL order by id; CAST(my_year AS DATE) my_year id NULL NULL 1 NULL 1901 2 @@ -4084,7 +4266,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as date) AS `CAST(my_year AS DATE)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 36 OR select_id IS NULL); +WHERE select_id = 36 OR select_id IS NULL) order by id; CAST(my_year AS DATE) my_year id NULL NULL 1 NULL 1901 2 @@ -4103,7 +4285,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DATE), my_time, id FROM t1_values; SELECT CAST(my_time AS DATE), my_time, id FROM t1_values -WHERE select_id = 35 OR select_id IS NULL; +WHERE select_id = 35 OR select_id IS NULL order by id; CAST(my_time AS DATE) my_time id NULL NULL 1 0000-00-00 -838:59:59 2 @@ -4115,7 +4297,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as date) AS `CAST(my_time AS DATE)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 35 OR select_id IS NULL); +WHERE select_id = 35 OR select_id IS NULL) order by id; CAST(my_time AS DATE) my_time id NULL NULL 1 0000-00-00 -838:59:59 2 @@ -4129,7 +4311,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATE), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DATE), my_timestamp, id FROM t1_values -WHERE select_id = 34 OR select_id IS NULL; +WHERE select_id = 34 OR select_id IS NULL order by id; CAST(my_timestamp AS DATE) my_timestamp id 0000-00-00 0000-00-00 00:00:00 1 1970-01-01 1970-01-01 03:00:01 2 @@ -4141,7 +4323,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as date) AS `CAST(my_timestamp AS DATE)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 34 OR select_id IS NULL); +WHERE select_id = 34 OR select_id IS NULL) order by id; CAST(my_timestamp AS DATE) my_timestamp id 0000-00-00 0000-00-00 00:00:00 1 1970-01-01 1970-01-01 03:00:01 2 @@ -4155,7 +4337,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DATE), my_date, id FROM t1_values; SELECT CAST(my_date AS DATE), my_date, id FROM t1_values -WHERE select_id = 33 OR select_id IS NULL; +WHERE select_id = 33 OR select_id IS NULL order by id; CAST(my_date AS DATE) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4167,7 +4349,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as date) AS `CAST(my_date AS DATE)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 33 OR select_id IS NULL); +WHERE select_id = 33 OR select_id IS NULL) order by id; CAST(my_date AS DATE) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4181,7 +4363,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATE), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DATE), my_datetime, id FROM t1_values -WHERE select_id = 32 OR select_id IS NULL; +WHERE select_id = 32 OR select_id IS NULL order by id; CAST(my_datetime AS DATE) my_datetime id NULL NULL 1 0001-01-01 0001-01-01 00:00:00 2 @@ -4193,7 +4375,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as date) AS `CAST(my_datetime AS DATE)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 32 OR select_id IS NULL); +WHERE select_id = 32 OR select_id IS NULL) order by id; CAST(my_datetime AS DATE) my_datetime id NULL NULL 1 0001-01-01 0001-01-01 00:00:00 2 @@ -4207,7 +4389,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS DATE), my_double, id FROM t1_values; SELECT CAST(my_double AS DATE), my_double, id FROM t1_values -WHERE select_id = 31 OR select_id IS NULL; +WHERE select_id = 31 OR select_id IS NULL order by id; CAST(my_double AS DATE) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -4225,7 +4407,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as date) AS `CAST(my_double AS DATE)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 31 OR select_id IS NULL); +WHERE select_id = 31 OR select_id IS NULL) order by id; CAST(my_double AS DATE) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -4245,7 +4427,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATE), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DATE), my_bigint, id FROM t1_values -WHERE select_id = 30 OR select_id IS NULL; +WHERE select_id = 30 OR select_id IS NULL order by id; CAST(my_bigint AS DATE) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -4263,7 +4445,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as date) AS `CAST(my_bigint AS DATE)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 30 OR select_id IS NULL); +WHERE select_id = 30 OR select_id IS NULL) order by id; CAST(my_bigint AS DATE) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -4283,7 +4465,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATE), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DATE), my_varbinary_1000, id FROM t1_values -WHERE select_id = 29 OR select_id IS NULL; +WHERE select_id = 29 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -4301,7 +4483,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as date) AS `CAST(my_varbinary_1000 AS DATE)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 29 OR select_id IS NULL); +WHERE select_id = 29 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -4321,14 +4503,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATE), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DATE), my_binary_30, id FROM t1_values -WHERE select_id = 28 OR select_id IS NULL; +WHERE select_id = 28 OR select_id IS NULL order by id; CAST(my_binary_30 AS DATE) my_binary_30 id NULL NULL 1 -NULL 2 +NULL 2 NULL <--------30 characters-------> 3 -NULL ---äÖüß@µ*$-- 4 -NULL -1 5 -2005-06-27 2005-06-27 10 +NULL ---äÖüß@µ*$-- 4 +NULL -1 5 +2005-06-27 2005-06-27 10 Warnings: Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->' @@ -4340,7 +4522,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as date) AS `CAST(my_binary_30 AS DATE)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 28 OR select_id IS NULL); +WHERE select_id = 28 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DATE) my_binary_30 id NULL NULL 1 NULL 2 @@ -4361,7 +4543,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATE), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DATE), my_varchar_1000, id FROM t1_values -WHERE select_id = 27 OR select_id IS NULL; +WHERE select_id = 27 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DATE) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4379,7 +4561,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as date) AS `CAST(my_varchar_1000 AS DATE)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 27 OR select_id IS NULL); +WHERE select_id = 27 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DATE) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4399,7 +4581,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATE), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DATE), my_char_30, id FROM t1_values -WHERE select_id = 26 OR select_id IS NULL; +WHERE select_id = 26 OR select_id IS NULL order by id; CAST(my_char_30 AS DATE) my_char_30 id NULL NULL 1 NULL 2 @@ -4417,7 +4599,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as date) AS `CAST(my_char_30 AS DATE)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 26 OR select_id IS NULL); +WHERE select_id = 26 OR select_id IS NULL) order by id; CAST(my_char_30 AS DATE) my_char_30 id NULL NULL 1 NULL 2 @@ -4437,7 +4619,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS CHAR), my_year, id FROM t1_values; SELECT CAST(my_year AS CHAR), my_year, id FROM t1_values -WHERE select_id = 25 OR select_id IS NULL; +WHERE select_id = 25 OR select_id IS NULL order by id; CAST(my_year AS CHAR) my_year id NULL NULL 1 1901 1901 2 @@ -4449,7 +4631,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset latin1) AS `CAST(my_year AS CHAR)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 25 OR select_id IS NULL); +WHERE select_id = 25 OR select_id IS NULL) order by id; CAST(my_year AS CHAR) my_year id NULL NULL 1 1901 1901 2 @@ -4463,7 +4645,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS CHAR), my_time, id FROM t1_values; SELECT CAST(my_time AS CHAR), my_time, id FROM t1_values -WHERE select_id = 24 OR select_id IS NULL; +WHERE select_id = 24 OR select_id IS NULL order by id; CAST(my_time AS CHAR) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4475,7 +4657,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset latin1) AS `CAST(my_time AS CHAR)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 24 OR select_id IS NULL); +WHERE select_id = 24 OR select_id IS NULL) order by id; CAST(my_time AS CHAR) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4489,7 +4671,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS CHAR), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS CHAR), my_timestamp, id FROM t1_values -WHERE select_id = 23 OR select_id IS NULL; +WHERE select_id = 23 OR select_id IS NULL order by id; CAST(my_timestamp AS CHAR) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4501,7 +4683,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset latin1) AS `CAST(my_timestamp AS CHAR)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 23 OR select_id IS NULL); +WHERE select_id = 23 OR select_id IS NULL) order by id; CAST(my_timestamp AS CHAR) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4515,7 +4697,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS CHAR), my_date, id FROM t1_values; SELECT CAST(my_date AS CHAR), my_date, id FROM t1_values -WHERE select_id = 22 OR select_id IS NULL; +WHERE select_id = 22 OR select_id IS NULL order by id; CAST(my_date AS CHAR) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4527,7 +4709,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset latin1) AS `CAST(my_date AS CHAR)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 22 OR select_id IS NULL); +WHERE select_id = 22 OR select_id IS NULL) order by id; CAST(my_date AS CHAR) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4541,7 +4723,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS CHAR), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS CHAR), my_datetime, id FROM t1_values -WHERE select_id = 21 OR select_id IS NULL; +WHERE select_id = 21 OR select_id IS NULL order by id; CAST(my_datetime AS CHAR) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4553,7 +4735,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset latin1) AS `CAST(my_datetime AS CHAR)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 21 OR select_id IS NULL); +WHERE select_id = 21 OR select_id IS NULL) order by id; CAST(my_datetime AS CHAR) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4567,7 +4749,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS CHAR), my_double, id FROM t1_values; SELECT CAST(my_double AS CHAR), my_double, id FROM t1_values -WHERE select_id = 20 OR select_id IS NULL; +WHERE select_id = 20 OR select_id IS NULL order by id; CAST(my_double AS CHAR) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4579,7 +4761,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset latin1) AS `CAST(my_double AS CHAR)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 20 OR select_id IS NULL); +WHERE select_id = 20 OR select_id IS NULL) order by id; CAST(my_double AS CHAR) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4593,7 +4775,7 @@ CREATE VIEW v1 AS SELECT CAST(my_decimal AS CHAR), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS CHAR), my_decimal, id FROM t1_values -WHERE select_id = 19 OR select_id IS NULL; +WHERE select_id = 19 OR select_id IS NULL order by id; CAST(my_decimal AS CHAR) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4605,7 +4787,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset latin1) AS `CAST(my_decimal AS CHAR)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 19 OR select_id IS NULL); +WHERE select_id = 19 OR select_id IS NULL) order by id; CAST(my_decimal AS CHAR) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4619,7 +4801,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS CHAR), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS CHAR), my_bigint, id FROM t1_values -WHERE select_id = 18 OR select_id IS NULL; +WHERE select_id = 18 OR select_id IS NULL order by id; CAST(my_bigint AS CHAR) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4631,7 +4813,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset latin1) AS `CAST(my_bigint AS CHAR)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 18 OR select_id IS NULL); +WHERE select_id = 18 OR select_id IS NULL) order by id; CAST(my_bigint AS CHAR) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4645,7 +4827,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS CHAR), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS CHAR), my_varbinary_1000, id FROM t1_values -WHERE select_id = 17 OR select_id IS NULL; +WHERE select_id = 17 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id NULL NULL 1 2 @@ -4657,7 +4839,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset latin1) AS `CAST(my_varbinary_1000 AS CHAR)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 17 OR select_id IS NULL); +WHERE select_id = 17 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id NULL NULL 1 2 @@ -4671,19 +4853,19 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS CHAR), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS CHAR), my_binary_30, id FROM t1_values -WHERE select_id = 16 OR select_id IS NULL; +WHERE select_id = 16 OR select_id IS NULL order by id; CAST(my_binary_30 AS CHAR) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset latin1) AS `CAST(my_binary_30 AS CHAR)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 16 OR select_id IS NULL); +WHERE select_id = 16 OR select_id IS NULL) order by id; CAST(my_binary_30 AS CHAR) my_binary_30 id NULL NULL 1 2 @@ -4697,7 +4879,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS CHAR), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS CHAR), my_varchar_1000, id FROM t1_values -WHERE select_id = 15 OR select_id IS NULL; +WHERE select_id = 15 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id NULL NULL 1 2 @@ -4709,7 +4891,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset latin1) AS `CAST(my_varchar_1000 AS CHAR)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 15 OR select_id IS NULL); +WHERE select_id = 15 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id NULL NULL 1 2 @@ -4723,7 +4905,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS CHAR), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS CHAR), my_char_30, id FROM t1_values -WHERE select_id = 14 OR select_id IS NULL; +WHERE select_id = 14 OR select_id IS NULL order by id; CAST(my_char_30 AS CHAR) my_char_30 id NULL NULL 1 2 @@ -4735,7 +4917,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset latin1) AS `CAST(my_char_30 AS CHAR)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 14 OR select_id IS NULL); +WHERE select_id = 14 OR select_id IS NULL) order by id; CAST(my_char_30 AS CHAR) my_char_30 id NULL NULL 1 2 @@ -4749,7 +4931,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS BINARY), my_year, id FROM t1_values; SELECT CAST(my_year AS BINARY), my_year, id FROM t1_values -WHERE select_id = 13 OR select_id IS NULL; +WHERE select_id = 13 OR select_id IS NULL order by id; CAST(my_year AS BINARY) my_year id NULL NULL 1 1901 1901 2 @@ -4761,7 +4943,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset binary) AS `CAST(my_year AS BINARY)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 13 OR select_id IS NULL); +WHERE select_id = 13 OR select_id IS NULL) order by id; CAST(my_year AS BINARY) my_year id NULL NULL 1 1901 1901 2 @@ -4775,7 +4957,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS BINARY), my_time, id FROM t1_values; SELECT CAST(my_time AS BINARY), my_time, id FROM t1_values -WHERE select_id = 12 OR select_id IS NULL; +WHERE select_id = 12 OR select_id IS NULL order by id; CAST(my_time AS BINARY) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4787,7 +4969,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset binary) AS `CAST(my_time AS BINARY)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 12 OR select_id IS NULL); +WHERE select_id = 12 OR select_id IS NULL) order by id; CAST(my_time AS BINARY) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4801,7 +4983,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS BINARY), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS BINARY), my_timestamp, id FROM t1_values -WHERE select_id = 11 OR select_id IS NULL; +WHERE select_id = 11 OR select_id IS NULL order by id; CAST(my_timestamp AS BINARY) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4813,7 +4995,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset binary) AS `CAST(my_timestamp AS BINARY)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 11 OR select_id IS NULL); +WHERE select_id = 11 OR select_id IS NULL) order by id; CAST(my_timestamp AS BINARY) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4827,7 +5009,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS BINARY), my_date, id FROM t1_values; SELECT CAST(my_date AS BINARY), my_date, id FROM t1_values -WHERE select_id = 10 OR select_id IS NULL; +WHERE select_id = 10 OR select_id IS NULL order by id; CAST(my_date AS BINARY) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4839,7 +5021,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset binary) AS `CAST(my_date AS BINARY)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 10 OR select_id IS NULL); +WHERE select_id = 10 OR select_id IS NULL) order by id; CAST(my_date AS BINARY) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4853,7 +5035,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS BINARY), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS BINARY), my_datetime, id FROM t1_values -WHERE select_id = 9 OR select_id IS NULL; +WHERE select_id = 9 OR select_id IS NULL order by id; CAST(my_datetime AS BINARY) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4865,7 +5047,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset binary) AS `CAST(my_datetime AS BINARY)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 9 OR select_id IS NULL); +WHERE select_id = 9 OR select_id IS NULL) order by id; CAST(my_datetime AS BINARY) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4879,7 +5061,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS BINARY), my_double, id FROM t1_values; SELECT CAST(my_double AS BINARY), my_double, id FROM t1_values -WHERE select_id = 8 OR select_id IS NULL; +WHERE select_id = 8 OR select_id IS NULL order by id; CAST(my_double AS BINARY) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4891,7 +5073,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset binary) AS `CAST(my_double AS BINARY)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 8 OR select_id IS NULL); +WHERE select_id = 8 OR select_id IS NULL) order by id; CAST(my_double AS BINARY) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4905,7 +5087,7 @@ CREATE VIEW v1 AS SELECT CAST(my_decimal AS BINARY), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS BINARY), my_decimal, id FROM t1_values -WHERE select_id = 7 OR select_id IS NULL; +WHERE select_id = 7 OR select_id IS NULL order by id; CAST(my_decimal AS BINARY) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4917,7 +5099,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset binary) AS `CAST(my_decimal AS BINARY)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 7 OR select_id IS NULL); +WHERE select_id = 7 OR select_id IS NULL) order by id; CAST(my_decimal AS BINARY) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4931,7 +5113,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS BINARY), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS BINARY), my_bigint, id FROM t1_values -WHERE select_id = 6 OR select_id IS NULL; +WHERE select_id = 6 OR select_id IS NULL order by id; CAST(my_bigint AS BINARY) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4943,7 +5125,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset binary) AS `CAST(my_bigint AS BINARY)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 6 OR select_id IS NULL); +WHERE select_id = 6 OR select_id IS NULL) order by id; CAST(my_bigint AS BINARY) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4957,7 +5139,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS BINARY), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS BINARY), my_varbinary_1000, id FROM t1_values -WHERE select_id = 5 OR select_id IS NULL; +WHERE select_id = 5 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id NULL NULL 1 2 @@ -4969,7 +5151,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset binary) AS `CAST(my_varbinary_1000 AS BINARY)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 5 OR select_id IS NULL); +WHERE select_id = 5 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id NULL NULL 1 2 @@ -4983,19 +5165,19 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS BINARY), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS BINARY), my_binary_30, id FROM t1_values -WHERE select_id = 4 OR select_id IS NULL; +WHERE select_id = 4 OR select_id IS NULL order by id; CAST(my_binary_30 AS BINARY) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset binary) AS `CAST(my_binary_30 AS BINARY)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 4 OR select_id IS NULL); +WHERE select_id = 4 OR select_id IS NULL) order by id; CAST(my_binary_30 AS BINARY) my_binary_30 id NULL NULL 1 2 @@ -5009,7 +5191,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS BINARY), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS BINARY), my_varchar_1000, id FROM t1_values -WHERE select_id = 3 OR select_id IS NULL; +WHERE select_id = 3 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id NULL NULL 1 2 @@ -5021,7 +5203,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset binary) AS `CAST(my_varchar_1000 AS BINARY)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 3 OR select_id IS NULL); +WHERE select_id = 3 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id NULL NULL 1 2 @@ -5035,7 +5217,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS BINARY), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS BINARY), my_char_30, id FROM t1_values -WHERE select_id = 2 OR select_id IS NULL; +WHERE select_id = 2 OR select_id IS NULL order by id; CAST(my_char_30 AS BINARY) my_char_30 id NULL NULL 1 2 @@ -5047,7 +5229,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset binary) AS `CAST(my_char_30 AS BINARY)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 2 OR select_id IS NULL); +WHERE select_id = 2 OR select_id IS NULL) order by id; CAST(my_char_30 AS BINARY) my_char_30 id NULL NULL 1 2 @@ -5059,7 +5241,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT sqrt(my_bigint), my_bigint, id FROM t1_values; SELECT sqrt(my_bigint), my_bigint, id FROM t1_values -WHERE select_id = 1 OR select_id IS NULL; +WHERE select_id = 1 OR select_id IS NULL order by id; sqrt(my_bigint) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -5073,7 +5255,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sqrt(`t1_values`.`my_bigint`) AS `sqrt(my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 1 OR select_id IS NULL); +WHERE select_id = 1 OR select_id IS NULL) order by id; sqrt(my_bigint) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result index 9081c6da3f7..6ba95c9fa63 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_02.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.2 - Syntax checks for the stored procedure-specific programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE: @@ -164,7 +172,7 @@ declare y integer default 1; set @x = x; set @y = y; set @z = 234; -SELECT f1, f2 into @x, @y from t2 limit 1; +SELECT f1, f2 into @x, @y from t2 where f1='a`' and f2='a`' limit 1; SELECT @x, @y, @z, invar; BEGIN set @x = 2; @@ -207,7 +215,7 @@ BEGIN declare x integer; declare y integer; set @x=x; set @y=y; -SELECT f4, f3 into @x, @y from t2 limit 1; +SELECT f4, f3 into @x, @y from t2 where f4=-5000 and f3='1000-01-01' limit 1; SELECT @x, @y; END// CALL sp1(); @@ -695,7 +703,7 @@ Testcase 3.1.2.54: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -01 is always exactly equivalent in action to a handler with an SQLWARNING +“01“ is always exactly equivalent in action to a handler with an SQLWARNING condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -794,7 +802,7 @@ Testcase 3.1.2.56: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -02 is always exactly equivalent in action to a handler with a NOT FOUND +“02“ is always exactly equivalent in action to a handler with a NOT FOUND condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -902,7 +910,7 @@ Testcase 3.1.2.58: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -anything other that 01 or 02 is always exactly equivalent in action to a +anything other that “01“ or “02“ is always exactly equivalent in action to a handler with an SQLEXCEPTION condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -1082,7 +1090,8 @@ declare f2_value char(20); declare f5_value char(20); declare f4_value integer; declare f6_value integer; -declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3; +declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 +where f4 >=-5000 order by f4 limit 3; open cur1; while proceed do SELECT count AS 'loop'; @@ -1165,7 +1174,7 @@ of a compound statement ends. DROP TABLE IF EXISTS temp1; DROP PROCEDURE IF EXISTS sp1; create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) ); -SELECT f1, f2, f4, f5 from t2; +SELECT f1, f2, f4, f5 from t2 order by f4; f1 f2 f4 f5 a` a` -5000 a` aaa aaa -4999 aaa @@ -1185,8 +1194,8 @@ declare newf1 char(20); declare newf2 char(20); declare newf5 char(20); declare newf4 integer; -declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; -declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; +declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; +declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; open cur1; open cur2; BEGIN @@ -1268,8 +1277,10 @@ declare i_newf11 char(20); declare i_newf12 char(20); declare i_newf13 date; declare i_newf14 integer; -declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4; -declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3; +declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 +where f4>=-5000 order by f4 limit 4; +declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 +where f4>=-5000 order by f4 limit 3; declare continue handler for sqlstate '02000' set proceed=0; open cur1; open cur2; @@ -1300,8 +1311,10 @@ DECLARE o_newf11 CHAR(20); DECLARE o_newf12 CHAR(20); DECLARE o_newf13 DATE; DECLARE o_newf14 INTEGER; -DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; -DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; +DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 +WHERE f4>=-5000 ORDER BY f4 LIMIT 5; +DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 +WHERE f4>=-5000 ORDER BY f4 LIMIT 5; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0; OPEN cur1; OPEN cur2; diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result index faf598b090b..53e25441e2e 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_03.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.3 - Syntax checks for the stored procedure-specific flow control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE: diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result index 639e8cdb48b..88bddf68e24 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_06.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.6 - Privilege Checks: -------------------------------------------------------------------------------- @@ -79,6 +87,7 @@ BEGIN SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz'; END// ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1' +USE db_storedproc_1; root@localhost db_storedproc_1 GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost'; @@ -90,6 +99,7 @@ CREATE PROCEDURE sp1(v1 char(20)) BEGIN SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz'; END// +USE db_storedproc_1; root@localhost db_storedproc_1 DROP USER 'user_1'@'localhost'; @@ -115,6 +125,7 @@ CREATE FUNCTION fn1(v1 int) returns int BEGIN return v1; END// +USE db_storedproc_1; root@localhost db_storedproc_1 drop user 'user_1'@'localhost'; diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result index d0b9d8ae806..cbe0a18435a 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_07.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.7 - SQL mode checks: -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result index 68e32626425..40ebc1e51e4 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_08.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.8 - SHOW statement checks: -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result index f2c47342019..163bae36bed 100644 --- a/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/innodb_storedproc_10.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.10 - CALL checks: -------------------------------------------------------------------------------- @@ -78,7 +86,7 @@ connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK); user_1@localhost db_storedproc CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER BEGIN -SELECT * FROM db_storedproc.t1 LIMIT 1; +SELECT * FROM db_storedproc.t1 WHERE f4=-5000 LIMIT 1; END// CREATE FUNCTION fn31105(n INT) RETURNS INT BEGIN @@ -93,6 +101,8 @@ CALL sp31102(); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102' SELECT fn31105( 9 ); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105' +connection default; +USE db_storedproc; root@localhost db_storedproc CALL sp31102(); @@ -112,6 +122,8 @@ a` a` 1000-01-01 -5000 a` -5000 SELECT fn31105( 9 ); fn31105( 9 ) 81 +connection default; +USE db_storedproc; root@localhost db_storedproc REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost'; @@ -129,6 +141,7 @@ CALL sp31102(); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102' SELECT fn31105( 9 ); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105' +USE db_storedproc; root@localhost db_storedproc DROP PROCEDURE sp31102; @@ -176,6 +189,8 @@ DROP PROCEDURE IF EXISTS sp_ins_1; DROP PROCEDURE IF EXISTS sp_ins_3; DROP PROCEDURE IF EXISTS sp_upd; DROP PROCEDURE IF EXISTS sp_ins_upd; +DROP PROCEDURE IF EXISTS sp_del; +DROP PROCEDURE IF EXISTS sp_with_rowcount; CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT); INSERT INTO temp SELECT * FROM t10; CREATE PROCEDURE sp_ins_1() @@ -203,49 +218,72 @@ END; SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1; UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc'; END// +CREATE PROCEDURE sp_del() +BEGIN +DELETE FROM temp WHERE temp.f1 ='qwe' OR temp.f1 = 'updated_2'; +END// +CREATE PROCEDURE sp_with_rowcount() +BEGIN +BEGIN +INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000), +('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000), +('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000), +('qwe', 'xyz', '2005-11-07', 100, 'uvw', 1000); +END; +SELECT row_count() AS 'row_count() after insert'; +SELECT row_count() AS 'row_count() after select row_count()'; +SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; +UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f2 = 'abc'; +SELECT row_count() AS 'row_count() after update'; +SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; +DELETE FROM temp WHERE temp.f1 = 'updated_2'; +SELECT row_count() AS 'row_count() after delete'; +END// CALL sp_ins_1(); SELECT row_count(); row_count() 1 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 +abc abc 2005-10-03 100 uvw 1000 acaaa acaaa 1000-01-04 -4997 acaaa -4997 adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 -abc abc 2005-10-03 100 uvw 1000 CALL sp_ins_3(); SELECT row_count(); row_count() 1 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 +abc abc 2005-10-03 100 uvw 1000 +abc xyz 1949-05-23 100 uvw 1000 +abc xyz 1989-11-09 100 uvw 1000 +abc xyz 2005-10-24 100 uvw 1000 acaaa acaaa 1000-01-04 -4997 acaaa -4997 adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 -abc abc 2005-10-03 100 uvw 1000 -abc xyz 1949-05-23 100 uvw 1000 -abc xyz 1989-11-09 100 uvw 1000 -abc xyz 2005-10-24 100 uvw 1000 CALL sp_upd(); SELECT row_count(); row_count() 4 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 @@ -254,8 +292,6 @@ adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 updated abc 2005-10-03 100 uvw 1000 updated xyz 1949-05-23 100 uvw 1000 updated xyz 1989-11-09 100 uvw 1000 @@ -279,6 +315,8 @@ row_count() 3 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 @@ -287,26 +325,73 @@ adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 +qwe xyz 1998-03-26 100 uvw 1000 updated abc 2005-10-03 100 uvw 1000 updated xyz 1949-05-23 100 uvw 1000 updated xyz 1989-11-09 100 uvw 1000 updated xyz 2005-10-24 100 uvw 1000 updated_2 abc 1989-11-09 100 uvw 1000 -qwe xyz 1998-03-26 100 uvw 1000 updated_2 abc 2000-11-09 100 uvw 1000 updated_2 abc 2005-11-07 100 uvw 1000 +CALL sp_del(); +SELECT row_count(); +row_count() +4 +SELECT * FROM temp; +f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 +a` a` 1000-01-01 -5000 a` -5000 +aaa aaa 1000-01-02 -4999 aaa -4999 +abaa abaa 1000-01-03 -4998 abaa -4998 +acaaa acaaa 1000-01-04 -4997 acaaa -4997 +adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 +aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 +afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 +agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 +updated abc 2005-10-03 100 uvw 1000 +updated xyz 1949-05-23 100 uvw 1000 +updated xyz 1989-11-09 100 uvw 1000 +updated xyz 2005-10-24 100 uvw 1000 +DELETE FROM temp; +CALL sp_with_rowcount(); +row_count() after insert +4 +row_count() after select row_count() +-1 +f1 f2 f3 +qwe abc 1989-11-09 +qwe abc 2000-11-09 +qwe xyz 1998-03-26 +qwe xyz 2005-11-07 +row_count() after update +2 +f1 f2 f3 +qwe xyz 1998-03-26 +qwe xyz 2005-11-07 +updated_2 abc 1989-11-09 +updated_2 abc 2000-11-09 +row_count() after delete +2 +SELECT row_count(); +row_count() +-1 +SELECT * FROM temp; +f1 f2 f3 f4 f5 f6 +qwe xyz 1998-03-26 100 uvw 1000 +qwe xyz 2005-11-07 100 uvw 1000 DROP PROCEDURE sp_ins_1; DROP PROCEDURE sp_ins_3; DROP PROCEDURE sp_upd; DROP PROCEDURE sp_ins_upd; +DROP PROCEDURE sp_del; +DROP PROCEDURE sp_with_rowcount; DROP TABLE temp; Testcase 3.1.10.8: ------------------ -Ensure that the mysql_affected_rows() C API function always returns the correct +Ensure that the mysql_affected_rows() C API function always returns the correct number of rows affected by the execution of a stored procedure. -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_0102.result b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result index 9c2c2a38a4d..ff1836f1313 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_0102.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_0102.result @@ -1,96 +1,97 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; Testcase: 3.5.1.1: ------------------ use test; -Create trigger trg1_1 BEFORE INSERT +Create trigger trg1_1 BEFORE INSERT on tb3 for each row set @test_before = 2, new.f142 = @test_before; -Create trigger trg1_2 AFTER INSERT +Create trigger trg1_2 AFTER INSERT on tb3 for each row set @test_after = 6; -Create trigger trg1_4 BEFORE UPDATE -on tb3 for each row set @test_before = 27, -new.f142 = @test_before, +Create trigger trg1_4 BEFORE UPDATE +on tb3 for each row set @test_before = 27, +new.f142 = @test_before, new.f122 = 'Before Update Trigger'; -Create trigger trg1_3 AFTER UPDATE +Create trigger trg1_3 AFTER UPDATE on tb3 for each row set @test_after = '15'; -Create trigger trg1_5 BEFORE DELETE on tb3 for each row -select count(*) into @test_before from tb3 as tr_tb3 +Create trigger trg1_5 BEFORE DELETE on tb3 for each row +select count(*) into @test_before from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; -Create trigger trg1_6 AFTER DELETE on tb3 for each row -select count(*) into @test_after from tb3 as tr_tb3 +Create trigger trg1_6 AFTER DELETE on tb3 for each row +select count(*) into @test_after from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; set @test_before = 1; set @test_after = 5; select @test_before, @test_after; @test_before @test_after 1 5 -Insert into tb3 (f121, f122, f142, f144, f134) +Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; f121 f122 f142 f144 f134 @@ -103,9 +104,9 @@ set @test_after = 8; select @test_before, @test_after; @test_before @test_after 18 8 -Update tb3 set tb3.f122 = 'Update', -tb3.f142 = @test_before, -tb3.f144 = @test_after +Update tb3 set tb3.f122 = 'Update', +tb3.f142 = @test_before, +tb3.f144 = @test_after where tb3.f121 = 'Test 3.5.1.1'; select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; f121 f122 f142 f144 f134 @@ -113,7 +114,7 @@ Test 3.5.1.1 Before Update Trigger 27 0000000008 1 select @test_before, @test_after; @test_before @test_after 27 15 -Insert into tb3 (f121, f122, f142, f144, f134) +Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); set @test_before = 0; set @test_after = 0; @@ -141,7 +142,7 @@ delete from tb3 where f121='Test 3.5.1.1'; Testcase: 3.5.1.2: ------------------ -Create trigger trg_1 after insert +Create trigger trg_1 after insert on tb3 for each statement set @x= 1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statement set @x= 1' at line 2 drop trigger trg_1; @@ -194,7 +195,7 @@ drop table if exists t1; Warnings: Note 1051 Unknown table 't1' create table t1 (f1 int, f2 char(25),f3 int) engine=innodb; -CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 +CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 for each row set new.f3 = '14'; CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; @@ -206,7 +207,7 @@ update t1 set f2='update 3.5.1.7'; select * from t1; f1 f2 f3 NULL update 3.5.1.7 42 -select trigger_name from information_schema.triggers; +select trigger_name from information_schema.triggers order by trigger_name; trigger_name trg5_1 trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX @@ -226,7 +227,7 @@ CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1 CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@name before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 +CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 for each row set new.f120 ='X'; ERROR HY000: Trigger in wrong schema drop database if exists trig_db; @@ -234,11 +235,11 @@ create database trig_db; use trig_db; create table t1 (f1 integer) engine = innodb; use test; -CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 +CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 for each row set @ret_trg6_2 = 5; ERROR 42S02: Table 'trig_db.tb3' doesn't exist use trig_db; -CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 +CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 for each row set @ret_trg6_3 = 18; ERROR HY000: Trigger in wrong schema use test; @@ -262,9 +263,9 @@ drop table if exists t1; drop table if exists t2; create table t1 (f1 char(50), f2 integer) engine = innodb; create table t2 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig t1'; -create trigger trig before update on t2 +create trigger trig before update on t2 for each row set new.f1 ='trig t2'; ERROR HY000: Trigger already exists insert into t1 value ('insert to t1',1); @@ -294,15 +295,15 @@ create database trig_db2; create database trig_db3; use trig_db1; create table t1 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig1', @test_var1='trig1'; use trig_db2; create table t2 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t2 +create trigger trig before insert on t2 for each row set new.f1 ='trig2', @test_var2='trig2'; use trig_db3; create table t1 (f1 char(50), f2 integer) engine = innodb; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig3', @test_var3='trig3'; set @test_var1= '', @test_var2= '', @test_var3= ''; use trig_db1; @@ -313,7 +314,7 @@ insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); select @test_var1, @test_var2, @test_var3; @test_var1 @test_var2 @test_var3 trig1 trig2 trig3 -select * from t1; +select * from t1 order by f2; f1 f2 trig1 1 trig1 2 @@ -323,7 +324,7 @@ trig2 3 select * from trig_db3.t1; f1 f2 trig3 4 -select * from t1; +select * from t1 order by f2; f1 f2 trig1 1 trig1 2 @@ -341,17 +342,17 @@ create database trig_db2; use trig_db1; create table t1 (f1 char(50), f2 integer) engine = innodb; create table trig_db2.t1 (f1 char(50), f2 integer) engine = innodb; -create trigger trig1_b before insert on t1 +create trigger trig1_b before insert on t1 for each row set @test_var1='trig1_b'; -create trigger trig_db1.trig1_a after insert on t1 +create trigger trig_db1.trig1_a after insert on t1 for each row set @test_var2='trig1_a'; -create trigger trig_db2.trig2 before insert on trig_db2.t1 +create trigger trig_db2.trig2 before insert on trig_db2.t1 for each row set @test_var3='trig2'; select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; +from information_schema.triggers order by trigger_name; trigger_schema trigger_name event_object_table -trig_db1 trig1_b t1 trig_db1 trig1_a t1 +trig_db1 trig1_b t1 trig_db2 trig2 t1 set @test_var1= '', @test_var2= '', @test_var3= ''; insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_03.result b/mysql-test/suite/funcs_1/r/innodb_trig_03.result index 4e6b4523f1d..e45115cdfab 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_03.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_03.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; Testcase 3.5.3: --------------- @@ -106,7 +107,7 @@ set new.f1 = 'trig 3.5.3.2_1-no'; ERROR 42000: Access denied; you need the SUPER privilege for this operation use priv_db; insert into t1 (f1) values ('insert 3.5.3.2-no'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no select current_user; @@ -121,15 +122,12 @@ root@localhost use priv_db; insert into t1 (f1) values ('insert 3.5.3.2-yes'); ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for column 'f1' in table 't1' -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no grant UPDATE on priv_db.t1 to test_yesprivs@localhost; - -note: once 15166 is fixed a similar case for SELECT needs to be added ---------------------------------------------------------------------- insert into t1 (f1) values ('insert 3.5.3.2-yes'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no trig 3.5.3.2_2-yes @@ -141,7 +139,7 @@ drop trigger trg1_2; ERROR 42000: Access denied; you need the SUPER privilege for this operation use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-yes'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no trig 3.5.3.2_2-yes @@ -150,12 +148,12 @@ use priv_db; drop trigger trg1_2; use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-no'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes drop trigger trg1_2; Testcase 3.5.3.7a: @@ -180,23 +178,22 @@ use priv_db; show grants; Grants for test_noprivs@localhost GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +create trigger trg4a_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1a'; insert into t1 (f1) values ('insert 3.5.3.7-1a'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes drop trigger trg4a_1; use priv_db; select current_user; @@ -207,18 +204,13 @@ Grants for test_yesprivs@localhost GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' create trigger trg4a_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2a'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on *.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a drop trigger trg4a_2; @@ -245,30 +237,29 @@ Grants for test_noprivs@localhost GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4b_1 before UPDATE on t1 for each row +set new.f1 = 'trig 3.5.3.7-1b'; +ERROR 42000: Access denied; you need the SUPER privilege for this operation insert into t1 (f1) values ('insert 3.5.3.7-1b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a insert 3.5.3.7-1b +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +trig 3.5.3.7-2a update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a update 3.5.3.7-1b drop trigger trg4b_1; +ERROR HY000: Trigger does not exist show grants; Grants for test_yesprivs@localhost GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' @@ -276,32 +267,26 @@ GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4b_2 before UPDATE on t1 for each row set new.f1 = 'trig 3.5.3.7-2b'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on priv_db.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b insert 3.5.3.7-2b -update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; -select f1 from t1; -f1 -insert 3.5.3.2-no trig 3.5.3.2_2-yes trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a trig 3.5.3.7-2a update 3.5.3.7-1b +update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; +select f1 from t1 order by f1; +f1 +insert 3.5.3.2-no +insert 3.5.3.6-no +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +trig 3.5.3.7-2a trig 3.5.3.7-2b +update 3.5.3.7-1b drop trigger trg4b_2; Testcase 3.5.3.7c @@ -327,21 +312,19 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4c_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1c'; insert into t1 (f1) values ('insert 3.5.3.7-1c'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c +update 3.5.3.7-1b drop trigger trg4c_1; show grants; Grants for test_yesprivs@localhost @@ -350,23 +333,17 @@ GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4c_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2c'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2c'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c +update 3.5.3.7-1b drop trigger trg4c_2; Testcase 3.5.3.7d: @@ -390,23 +367,20 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4d_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1d'; insert into t1 (f1) values ('insert 3.5.3.7-1d'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c -insert 3.5.3.7-1d +update 3.5.3.7-1b drop trigger trg4d_1; show grants; Grants for test_yesprivs@localhost @@ -415,25 +389,18 @@ GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4d_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2d'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2d'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c -insert 3.5.3.7-1d trig 3.5.3.7-2d +update 3.5.3.7-1b drop trigger trg4d_2; Testcase 3.5.3.8a: @@ -458,14 +425,14 @@ use priv_db; show grants; Grants for test_noprivs@localhost GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5a_1 before INSERT on t1 for each row +set @test_var = new.f1; set @test_var = 'before trig 3.5.3.8-1a'; select @test_var; @test_var before trig 3.5.3.8-1a insert into t1 (f1) values ('insert 3.5.3.8-1a'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1a @@ -483,10 +450,6 @@ set @test_var= 'before trig 3.5.3.8-2a'; select @test_var; @test_var before trig 3.5.3.8-2a - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on *.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2a'); select @test_var; @test_var @@ -517,15 +480,15 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5b_1 before UPDATE on t1 for each row +set @test_var= new.f1; set @test_var= 'before trig 3.5.3.8-1b'; insert into t1 (f1) values ('insert 3.5.3.8-1b'); select @test_var; @test_var before trig 3.5.3.8-1b update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1b @@ -542,10 +505,6 @@ insert into t1 (f1) values ('insert 3.5.3.8-2b'); select @test_var; @test_var before trig 3.5.3.8-2b - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on priv_db.* to test_yesprivs@localhost; update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; select @test_var; @test_var @@ -576,11 +535,11 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5c_1 before INSERT on t1 for each row +set @test_var= new.f1; set @test_var= 'before trig 3.5.3.8-1c'; insert into t1 (f1) values ('insert 3.5.3.8-1c'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1c @@ -593,10 +552,6 @@ use priv_db; create trigger trg5c_2 before INSERT on t1 for each row set @test_var= new.f1; set @test_var='before trig 3.5.3.8-2c'; - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2c'); select @test_var; @test_var @@ -626,11 +581,11 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5d_1 before INSERT on t1 for each row +set @test_var= new.f1; set @test_var='before trig 3.5.3.8-1d'; insert into t1 (f1) values ('insert 3.5.3.8-1d'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1d @@ -643,10 +598,6 @@ use priv_db; create trigger trg5d_2 before INSERT on t1 for each row set @test_var= new.f1; set @test_var='before trig 3.5.3.8-2d'; - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2d'); select @test_var; @test_var @@ -682,10 +633,10 @@ ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (4); -select f1 from t1; +select f1 from t1 order by f1; f1 4 -select f2 from t2; +select f2 from t2 order by f2; f2 4 use priv_db; @@ -698,11 +649,11 @@ ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table revoke INSERT on priv_db.t2 from test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (2); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 2 -select f2 from t2; +4 +select f2 from t2 order by f2; f2 1 use priv_db; @@ -715,12 +666,12 @@ ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 -2 1 -select f2 from t2; +2 +4 +select f2 from t2 order by f2; f2 1 select @aaa; @@ -736,13 +687,13 @@ ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 +1 +1 2 -1 -1 -select f2 from t2; +4 +select f2 from t2 order by f2; f2 drop database if exists priv_db; drop user test_yesprivs@localhost; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_0407.result b/mysql-test/suite/funcs_1/r/innodb_trig_0407.result index e7f2b374845..bd190c7ed2f 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_0407.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_0407.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; Testcase: 3.5: -------------- @@ -88,22 +89,22 @@ Use db_drop; create table t1 (f1 char(30)) engine=innodb; grant INSERT, SELECT on db_drop.t1 to test_general; Use db_drop; -Create trigger trg1 BEFORE INSERT on t1 +Create trigger trg1 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.1'; Use db_drop; Insert into t1 values ('Insert error 3.5.4.1'); -Select * from t1; +Select * from t1 order by f1; f1 Trigger 3.5.4.1 drop trigger trg1; select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; +from information_schema.triggers order by trigger_name; trigger_schema trigger_name event_object_table Insert into t1 values ('Insert no trigger 3.5.4.1'); -Select * from t1; +Select * from t1 order by f1; f1 -Trigger 3.5.4.1 Insert no trigger 3.5.4.1 +Trigger 3.5.4.1 drop trigger trg1; drop database if exists db_drop; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; @@ -127,7 +128,7 @@ drop table if exists t1_433 ; drop table if exists t1_433a ; create table t1_433 (f1 char (30)) engine=innodb; create table t1_433a (f1a char (5)) engine=innodb; -CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row +CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row set new.f1 = 'Trigger 3.5.4.3'; Drop trigger t1.433.trg3; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.trg3' at line 1 @@ -148,7 +149,7 @@ create database db_drop4; Use db_drop4; create table t1 (f1 char(30)) engine=innodb; grant INSERT, SELECT on db_drop4.t1 to test_general; -Create trigger trg4 BEFORE INSERT on t1 +Create trigger trg4 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.4'; Use db_drop4; Insert into t1 values ('Insert 3.5.4.4'); @@ -184,7 +185,7 @@ create database db_drop5; Use db_drop5; create table t1 (f1 char(50)) engine=innodb; grant INSERT, SELECT on t1 to test_general; -Create trigger trg5 BEFORE INSERT on t1 +Create trigger trg5 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.5'; Use db_drop5; Insert into t1 values ('Insert 3.5.4.5'); @@ -221,7 +222,7 @@ ERROR 42S02: Table 'test.t100' doesn't exist Testcase 3.5.5.2: ----------------- Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); -Create trigger trg2 before INSERT +Create trigger trg2 before INSERT on t1_temp for each row set new.f2=9999; ERROR HY000: Trigger's 't1_temp' is view or temporary table drop table t1_temp; @@ -229,7 +230,7 @@ drop table t1_temp; Testcase 3.5.5.3: ----------------- Create view vw3 as select f118 from tb3; -Create trigger trg3 before INSERT +Create trigger trg3 before INSERT on vw3 for each row set new.f118='s'; ERROR HY000: 'test.vw3' is not BASE TABLE drop view vw3; @@ -257,7 +258,7 @@ use dbtest_one; Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 -Select * from dbtest_two.t2; +Select * from dbtest_two.t2 order by f1; f1 1st Insert 3.5. 2nd Insert 3.5. @@ -310,9 +311,9 @@ drop trigger tb3.trg4_2; Testcase 3.5.7.5 / 3.5.7.6: --------------------------- -Create trigger trg5_1 BEFORE INSERT +Create trigger trg5_1 BEFORE INSERT on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; -Create trigger trg5_2 BEFORE INSERT +Create trigger trg5_2 BEFORE INSERT on tb3 for each row set new.f122='Trigger2 3.5.7.5'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); @@ -330,9 +331,9 @@ delete from tb3 where f121='Test 3.5.7.5/6'; Testcase 3.5.7.7 / 3.5.7.8: --------------------------- set @test_var='Before trig 3.5.7.7'; -Create trigger trg6_1 AFTER INSERT +Create trigger trg6_1 AFTER INSERT on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; -Create trigger trg6_2 AFTER INSERT +Create trigger trg6_2 AFTER INSERT on tb3 for each row set @test_var='Trigger2 3.5.7.7'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -358,9 +359,9 @@ delete from tb3 where f121='Test 3.5.7.7/8'; Testcase 3.5.7.9/10: -------------------- -Create trigger trg7_1 BEFORE UPDATE +Create trigger trg7_1 BEFORE UPDATE on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; -Create trigger trg7_2 BEFORE UPDATE +Create trigger trg7_2 BEFORE UPDATE on tb3 for each row set new.f122='Trigger2 3.5.7.9'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); @@ -378,9 +379,9 @@ delete from tb3 where f121='Test 3.5.7.9/10'; Testcase 3.5.7.11/12: --------------------- set @test_var='Before trig 3.5.7.11'; -Create trigger trg8_1 AFTER UPDATE +Create trigger trg8_1 AFTER UPDATE on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; -Create trigger trg8_2 AFTER UPDATE +Create trigger trg8_2 AFTER UPDATE on tb3 for each row set @test_var='Trigger2 3.5.7.11'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -408,9 +409,9 @@ delete from tb3 where f121='Test 3.5.7.11/12'; Testcase 3.5.7.13/14: --------------------- set @test_var=1; -Create trigger trg9_1 BEFORE DELETE +Create trigger trg9_1 BEFORE DELETE on tb3 for each row set @test_var=@test_var+1; -Create trigger trg9_2 BEFORE DELETE +Create trigger trg9_2 BEFORE DELETE on tb3 for each row set @test_var=@test_var+10; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -440,12 +441,12 @@ delete from tb3 where f121='Test 3.5.7.13/14'; Testcase 3.5.7.15/16: --------------------- set @test_var=1; -Create trigger trg_3_406010_1 AFTER DELETE +Create trigger trg_3_406010_1 AFTER DELETE on tb3 for each row set @test_var=@test_var+5; -Create trigger trg_3_406010_2 AFTER DELETE +Create trigger trg_3_406010_2 AFTER DELETE on tb3 for each row set @test_var=@test_var+50; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' -Create trigger trg_3_406010_1 AFTER INSERT +Create trigger trg_3_406010_1 AFTER INSERT on tb3 for each row set @test_var=@test_var+1; ERROR HY000: Trigger already exists select @test_var; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_08.result b/mysql-test/suite/funcs_1/r/innodb_trig_08.result index a13116df9b4..19e42143a5d 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_08.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_08.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; Testcase: 3.5: -------------- @@ -89,17 +90,17 @@ create database db_test; grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; grant LOCK TABLES on db_test.* to test_general; Use db_test; -create table t1_i ( +create table t1_i ( i120 char ascii not null DEFAULT b'101', i136 smallint zerofill not null DEFAULT 999, i144 int zerofill not null DEFAULT 99999, i163 decimal (63,30)) engine=innodb; -create table t1_u ( +create table t1_u ( u120 char ascii not null DEFAULT b'101', u136 smallint zerofill not null DEFAULT 999, u144 int zerofill not null DEFAULT 99999, u163 decimal (63,30)) engine=innodb; -create table t1_d ( +create table t1_d ( d120 char ascii not null DEFAULT b'101', d136 smallint zerofill not null DEFAULT 999, d144 int zerofill not null DEFAULT 99999, @@ -122,18 +123,18 @@ Insert into t1_d values ('f',222,99999,999.99); use test; Create trigger trg1 AFTER INSERT on tb3 for each row BEGIN -insert into db_test.t1_i +insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); -update db_test.t1_u +update db_test.t1_u set u144=new.f144, u163=new.f163 -where u136=new.f136; +where u136=new.f136; delete from db_test.t1_d where d136= new.f136; -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; +select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u +where u136= new.f136; END// Use test; set @test_var=0; -Insert into tb3 (f120, f122, f136, f144, f163) +Insert into tb3 (f120, f122, f136, f144, f163) values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; f120 f122 f136 f144 f163 @@ -161,14 +162,22 @@ select @test_var; 3.5.8.4 - single SQL - insert ----------------------------- Create trigger trg2 BEFORE UPDATE on tb3 for each row -insert into db_test.t1_i +BEGIN +insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); +END// +Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; +f120 f122 f136 f144 f163 +1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000 +select * from db_test.t1_i order by i120; +i120 i136 i144 i163 +1 00222 0000023456 1.050000000000000000000000000000 update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' where f122='Test 3.5.8.4'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; +select * from db_test.t1_i order by i120; i120 i136 i144 i163 1 00222 0000023456 1.050000000000000000000000000000 I 00222 0000023456 1.050000000000000000000000000000 @@ -177,7 +186,7 @@ I 00222 0000023456 1.050000000000000000000000000000 ----------------------------- drop trigger trg2; Create trigger trg3 BEFORE UPDATE on tb3 for each row -update db_test.t1_u +update db_test.t1_u set u120=new.f120 where u136=new.f136; update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' @@ -185,27 +194,27 @@ update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; +select * from db_test.t1_u order by u120; u120 u136 u144 u163 a 00111 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 c 00333 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 f 00333 0000099999 999.990000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 3.5.8.3/4 - single SQL - delete ------------------------------- drop trigger trg3; Create trigger trg4 AFTER UPDATE on tb3 for each row delete from db_test.t1_d where d136= new.f136; -update tb3 set f120='D', f136=444, +update tb3 set f120='D', f136=444, f122='Test 3.5.8.4-Single Delete' where f122='Test 3.5.8.4-Single Update'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_d; +select * from db_test.t1_d order by d120; d120 d136 d144 d163 a 00111 0000099999 999.990000000000000000000000000000 c 00333 0000099999 999.990000000000000000000000000000 @@ -214,10 +223,10 @@ c 00333 0000099999 999.990000000000000000000000000000 ------------------------------- drop trigger trg4; Create trigger trg5 AFTER UPDATE on tb3 for each row -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u +select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u where u136= new.f136; set @test_var=0; -update tb3 set f120='S', f136=111, +update tb3 set f120='S', f136=111, f122='Test 3.5.8.4-Single Select' where f122='Test 3.5.8.4-Single Delete'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; @@ -245,36 +254,36 @@ set @test_var='three', new.f120='4'; END IF; IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; -ELSE +ELSE set @test_var2='2nd else', new.f120='D'; END IF; END// set @test_var='Empty', @test_var2=0; Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 D Test 3.5.8.5-if 00101 one 2nd else Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 D Test 3.5.8.5-if 00101 two 2nd else D Test 3.5.8.5-if 00102 two 2nd else Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 +d Test 3.5.8.5-if 00010 three 2nd if D Test 3.5.8.5-if 00101 three 2nd if D Test 3.5.8.5-if 00102 three 2nd if -d Test 3.5.8.5-if 00010 three 2nd if Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 +d Test 3.5.8.5-if 00010 three 2nd else D Test 3.5.8.5-if 00101 three 2nd else D Test 3.5.8.5-if 00102 three 2nd else -d Test 3.5.8.5-if 00010 three 2nd else D Test 3.5.8.5-if 00103 three 2nd else create trigger trg3 before update on tb3 for each row BEGIN @@ -289,7 +298,7 @@ create trigger trg4 before update on tb3 for each row BEGIN IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; -ELSE +ELSE set @test_var2='2nd else', new.f120='D'; END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7 @@ -331,60 +340,60 @@ ELSE set @test_var=CONCAT(new.f120, '*', new.f144); END case; END// set @test_var='Empty'; -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('a', 'Test 3.5.8.5-case', 5, 7); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 A*seven -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('b', 'Test 3.5.8.5-case', 71,16); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 B*0000000016 B Test 3.5.8.5-case 00191 0000000016 B*0000000016 -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('c', 'Test 3.5.8.5-case', 80,1); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 C=one B Test 3.5.8.5-case 00191 0000000016 C=one C Test 3.5.8.5-case 00200 0000000001 C=one -Insert into tb3 (f120, f122, f136) +Insert into tb3 (f120, f122, f136) values ('d', 'Test 3.5.8.5-case', 152); Warnings: Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 A Test 3.5.8.5-case 00125 0000000007 1*0000099999 B Test 3.5.8.5-case 00191 0000000016 1*0000099999 C Test 3.5.8.5-case 00200 0000000001 1*0000099999 -1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('e', 'Test 3.5.8.5-case', 200, 8); Warnings: Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1=eight +1 Test 3.5.8.5-case 00200 0000000008 1=eight A Test 3.5.8.5-case 00125 0000000007 1=eight B Test 3.5.8.5-case 00191 0000000016 1=eight C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('f', 'Test 3.5.8.5-case', 100, 8); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1=eight +1 Test 3.5.8.5-case 00200 0000000008 1=eight A Test 3.5.8.5-case 00125 0000000007 1=eight B Test 3.5.8.5-case 00191 0000000016 1=eight C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight create trigger trg3a before update on tb3 for each row BEGIN CASE @@ -398,40 +407,40 @@ delete from tb3 where f121='Test 3.5.8.5-case'; Testcase 3.5.8.5-loop/leave: ---------------------------- Create trigger trg4 after insert on tb3 for each row -BEGIN +BEGIN set @counter=0, @flag='Initial'; -Label1: loop +Label1: loop if new.f136 new.f136 END REPEAT rp_label; END// set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) +Insert into tb3 (f122, f136) values ('Test 3.5.8.5-repeat', 13); select @counter1, @counter2; @counter1 @counter2 15 8 Create trigger trg6_2 after update on tb3 for each row BEGIN -REPEAT -SET @counter2 = @counter2 + 1; +REPEAT +SET @counter2 = @counter2 + 1; END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5 drop trigger trg6; @@ -466,33 +475,62 @@ delete from tb3 where f122='Test 3.5.8.5-repeat'; Testcase 3.5.8.5-while: ----------------------- Create trigger trg7 after insert on tb3 for each row -wl_label: WHILE @counter1 < new.f136 DO -SET @counter1 = @counter1 + 1; +wl_label: WHILE @counter1 < new.f136 DO +SET @counter1 = @counter1 + 1; IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; END IF; -SET @counter2 = @counter2 + 1; +SET @counter2 = @counter2 + 1; END WHILE wl_label// set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) +Insert into tb3 (f122, f136) values ('Test 3.5.8.5-while', 7); select @counter1, @counter2; @counter1 @counter2 7 4 Create trigger trg7_2 after update on tb3 for each row BEGIN -WHILE @counter1 < new.f136 -SET @counter1 = @counter1 + 1; +WHILE @counter1 < new.f136 +SET @counter1 = @counter1 + 1; END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; END' at line 4 delete from tb3 where f122='Test 3.5.8.5-while'; drop trigger trg7; Testcase 3.5.8.6: (requirement void) ------------------------------------ +CREATE PROCEDURE sp_01 () BEGIN set @v1=1; END// +CREATE TRIGGER trg8_1 BEFORE UPDATE ON tb3 FOR EACH ROW +BEGIN +CALL sp_01 (); +END// +Insert into tb3 (f120, f122, f136) values ('6', 'Test 3.5.8.6-insert', 101); +update tb3 set f120='S', f136=111, +f122='Test 3.5.8.6-tr8_1' + where f122='Test 3.5.8.6-insert'; +select f120, f122 +from tb3 where f122 like 'Test 3.5.8.6%' order by f120; +f120 f122 +S Test 3.5.8.6-tr8_1 +DROP TRIGGER trg8_1; +DROP PROCEDURE sp_01; -Testcase 3.5.8.7: (Disabled as a result of bug _____) ------------------------------------------------------ +Testcase 3.5.8.7 +---------------- +Create trigger trg9_1 before update on tb3 for each row +BEGIN +Start transaction; +Set new.f120='U'; +Commit; +END// +ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. +Create trigger trg9_2 before delete on tb3 for each row +BEGIN +Start transaction; +Set @var2=old.f120; +Rollback; +END// +ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. drop user test_general@localhost; drop user test_general; drop user test_super@localhost; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_09.result b/mysql-test/suite/funcs_1/r/innodb_trig_09.result index 34a430ba052..321b988587e 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_09.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_09.result @@ -1,74 +1,75 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; Testcase 3.5.9.1/2: ------------------- -Create trigger trg1 BEFORE UPDATE on tb3 for each row +Create trigger trg1 BEFORE UPDATE on tb3 for each row set new.f142 = 94087, @counter=@counter+1; TotalRows 10 @@ -80,15 +81,15 @@ NewValuew 0 set @counter=0; Update tb3 Set f142='1' where f130<100; -select count(*) as ExpectedChanged, @counter as TrigCounter +select count(*) as ExpectedChanged, @counter as TrigCounter from tb3 where f142=94087; ExpectedChanged TrigCounter 8 8 -select count(*) as ExpectedNotChange from tb3 +select count(*) as ExpectedNotChange from tb3 where f130<100 and f142<>94087; ExpectedNotChange 0 -select count(*) as NonExpectedChanged from tb3 +select count(*) as NonExpectedChanged from tb3 where f130>=130 and f142=94087; NonExpectedChanged 0 @@ -116,17 +117,17 @@ set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 0 0 0 0 0 -Insert into tb3 (f122, f136, f163) +Insert into tb3 (f122, f136, f163) values ('Test 3.5.9.3', 7, 123.17); Update tb3 Set f136=8 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; +select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; f118 f121 f122 f136 f163 a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 @@ -135,13 +136,13 @@ a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 0 0 0 0 0 delete from tb3 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; +select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; f118 f121 f122 f136 f163 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 @@ -172,17 +173,17 @@ set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, 0 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 0 0 0 0 0 0 -Insert into tb3 (f122, f136, f151, f163) +Insert into tb3 (f122, f136, f151, f163) values ('Test 3.5.9.4', 7, DEFAULT, 995.24); -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4%'; +select f118, f121, f122, f136, f151, f163 from tb3 +where f122 like 'Test 3.5.9.4%' order by f163; f118 f121 f122 f136 f151 f163 a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 @@ -194,15 +195,15 @@ Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; Warnings: Warning 1048 Column 'f136' cannot be null -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4-trig'; +select f118, f121, f122, f136, f151, f163 from tb3 +where f122 like 'Test 3.5.9.4-trig' order by f163; f118 f121 f122 f136 f151 f163 a NULL Test 3.5.9.4-trig 00000 999 NULL -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 a NULL Test 3.5.9.4-trig 0 999 NULL -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 a NULL Test 3.5.9.4-trig 0 999 NULL @@ -240,6 +241,7 @@ ERROR HY000: There is no NEW row in on DELETE trigger create trigger trg5b after DELETE on tb3 for each row set new.f122='test'; ERROR HY000: There is no NEW row in on DELETE trigger +drop trigger trg5a; drop trigger trg5b; Testcase 3.5.9.10: (implied in previous tests) diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result index 8976787420d..7412b8c8eff 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_1011ext.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; Testcase 3.5.10.1/2/3: ---------------------- @@ -86,7 +87,7 @@ Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1); Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); Insert into vw11 (f122, f151) values ('Not in View', 3); select f121, f122, f151, f163 -from tb3 where f122 like 'Test 3.5.10.1/2/3%'; +from tb3 where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 @@ -100,7 +101,7 @@ f121 f122 f151 f163 NULL Not in View 3 111.110000000000000000000000000000 Update vw11 set f163=1; select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; +where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 @@ -114,7 +115,7 @@ before delete 0 delete from vw11 where f151=1; select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; +where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 select f121, f122, f151, f163 from vw11; @@ -141,11 +142,11 @@ set @counter= 0; select @counter as 'Rows Loaded Before'; Rows Loaded Before 0 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; +load data infile '/std_data_ln/funcs_1/t9.txt' into table tb_load; select @counter as 'Rows Loaded After'; Rows Loaded After 10 -Select * from tb_load limit 10; +Select * from tb_load order by f1 limit 10; f1 f2 f3 -5000 a` 1000 -4999 aaa 999 @@ -240,7 +241,7 @@ insert into t3 (f1) values (new.f1+1000); create trigger tr2_4 after insert on t2_4 for each row insert into t3 (f1) values (new.f1+10000); insert into t1 values (1); -select * from t3; +select * from t3 order by f1; f1 12 102 @@ -275,14 +276,14 @@ create trigger tr4 after insert on t4 for each row insert into t1 (f1) values (new.f4+1); insert into t1 values (1); ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. -select * from t1; +select * from t1 order by f1; f1 0 -select * from t2; +select * from t2 order by f2; f2 -select * from t3; +select * from t3 order by f3; f3 -select * from t4; +select * from t4 order by f4; f4 drop trigger tr1; drop trigger tr2; @@ -293,8 +294,8 @@ drop table t2; drop table t3; drop table t4; -Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889) ----------------------------------------------------------------------- +Testcase y.y.y.4: Recursive trigger/SP references +------------------------------------------------- set @sql_mode='traditional'; create table t1_sp ( count integer, @@ -382,12 +383,12 @@ start transaction; insert into t1 values (1); ERROR 22003: Out of range value adjusted for column 'f4' at row 1 commit; -select * from t1; +select * from t1 order by f1; f1 1 -select * from t2; +select * from t2 order by f2; f2 -select * from t3; +select * from t3 order by f3; f3 drop trigger tr1; drop trigger tr2; diff --git a/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result b/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result index debbec1dde3..fe341762047 100644 --- a/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result +++ b/mysql-test/suite/funcs_1/r/innodb_trig_frkey.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; Testcase x.x.x.1: ----------------- diff --git a/mysql-test/suite/funcs_1/r/innodb_views.result b/mysql-test/suite/funcs_1/r/innodb_views.result index 20d8c0ba2f3..d29e38925f6 100644 --- a/mysql-test/suite/funcs_1/r/innodb_views.result +++ b/mysql-test/suite/funcs_1/r/innodb_views.result @@ -1,117 +1,119 @@ USE test; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/innodb_tb2.txt' +into table tb2; DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/innodb_tb2.txt' +into table tb2; USE test; ! Attention: The file with the expected results is not diff --git a/mysql-test/suite/funcs_1/r/is_columns_innodb.result b/mysql-test/suite/funcs_1/r/is_columns_innodb.result index 101e7140645..d80ab62a987 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_innodb.result +++ b/mysql-test/suite/funcs_1/r/is_columns_innodb.result @@ -3,63 +3,63 @@ CREATE DATABASE test1; USE test; drop table if exists tb1 ; create table tb1 ( -f1 char(0), -f2 char(0) binary, -f3 char(0) ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, +f1 char(0), +f2 char(0) binary, +f3 char(0) ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal, -f34 decimal unsigned, -f35 decimal zerofill, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal, +f34 decimal unsigned, +f35 decimal zerofill, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = innodb; Warnings: @@ -76,180 +76,183 @@ Note 1265 Data truncated for column 'f45' at row 1 Note 1265 Data truncated for column 'f47' at row 1 Note 1265 Data truncated for column 'f49' at row 1 Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ; +load data infile '/std_data_ln/funcs_1/innodb_tb1.txt' +into table tb1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/innodb_tb2.txt' +into table tb2; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; drop table if exists tb4; create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), f226 set("1set","2set"), f235 char(0) unicode, f236 char(90), @@ -259,89 +262,97 @@ f239 varchar(20000) binary, f240 varchar(2000) unicode, f241 char(100) unicode ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ; +load data infile '/std_data_ln/funcs_1/innodb_tb4.txt' +into table tb4; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/innodb_tb2.txt' +into table tb2; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = InnoDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = InnoDB; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = InnoDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -353,7 +364,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -367,7 +378,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; SELECT * FROM information_schema.columns WHERE table_schema LIKE 'test%' ORDER BY table_schema, table_name, column_name; diff --git a/mysql-test/suite/funcs_1/r/is_columns_memory.result b/mysql-test/suite/funcs_1/r/is_columns_memory.result index 7f49fcb97d0..ae7c5919447 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_memory.result +++ b/mysql-test/suite/funcs_1/r/is_columns_memory.result @@ -4,55 +4,55 @@ CREATE DATABASE test1; USE test; drop table if exists tb1 ; create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f1 char, +f2 char binary, +f3 char ascii, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = memory; Warnings: @@ -72,174 +72,177 @@ Note 1265 Data truncated for column 'f45' at row 1 Note 1265 Data truncated for column 'f47' at row 1 Note 1265 Data truncated for column 'f49' at row 1 Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ; +load data infile '/std_data_ln/funcs_1/memory_tb1.txt' +into table tb1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/memory_tb2.txt' +into table tb2 ; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; drop table if exists tb4 ; create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), f226 set("1set","2set"), f236 char(95) unicode, f241 char(255) unicode, @@ -248,89 +251,97 @@ f238 varchar(25000) binary, f239 varbinary(0), f240 varchar(1200) unicode ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ; +load data infile '/std_data_ln/funcs_1/memory_tb4.txt' +into table tb4; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/memory_tb2.txt' +into table tb2 ; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = MEMORY; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MEMORY; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MEMORY; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -342,7 +353,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -356,7 +367,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; SELECT * FROM information_schema.columns WHERE table_schema LIKE 'test%' ORDER BY table_schema, table_name, column_name; diff --git a/mysql-test/suite/funcs_1/r/is_columns_myisam.result b/mysql-test/suite/funcs_1/r/is_columns_myisam.result index a30acc64a8d..94574c33d74 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_myisam.result +++ b/mysql-test/suite/funcs_1/r/is_columns_myisam.result @@ -4,63 +4,63 @@ CREATE DATABASE test1; USE test; drop table if exists tb1 ; create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, +f1 char, +f2 char binary, +f3 char ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = myisam; Warnings: @@ -80,196 +80,199 @@ Note 1265 Data truncated for column 'f45' at row 1 Note 1265 Data truncated for column 'f47' at row 1 Note 1265 Data truncated for column 'f49' at row 1 Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ; +load data infile '/std_data_ln/funcs_1/myisam_tb1.txt' +into table tb1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/myisam_tb2.txt' +into table tb2; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; drop table if exists tb4 ; create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f227 VARBINARY(64), -f228 VARBINARY(27), -f229 VARBINARY(64), -f230 VARBINARY(192), -f231 VARBINARY(192), -f232 VARBINARY(27), -f233 VARBINARY(64), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f227 VARBINARY(64), +f228 VARBINARY(27), +f229 VARBINARY(64), +f230 VARBINARY(192), +f231 VARBINARY(192), +f232 VARBINARY(27), +f233 VARBINARY(64), f234 VARBINARY(192), f235 char(255) unicode, f236 char(60) ascii, @@ -280,97 +283,105 @@ f240 varchar(120) unicode, f241 char(100) unicode, f242 bit(30) ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ; +load data infile '/std_data_ln/funcs_1/myisam_tb4.txt' +into table tb4; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/myisam_tb2.txt' +into table tb2; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = MyISAM; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MyISAM; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MyISAM; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -382,7 +393,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -396,7 +407,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; SELECT * FROM information_schema.columns WHERE table_schema LIKE 'test%' ORDER BY table_schema, table_name, column_name; diff --git a/mysql-test/suite/funcs_1/r/is_columns_ndb.result b/mysql-test/suite/funcs_1/r/is_columns_ndb.result index 4ae1723140e..444c62eb010 100644 --- a/mysql-test/suite/funcs_1/r/is_columns_ndb.result +++ b/mysql-test/suite/funcs_1/r/is_columns_ndb.result @@ -4,29 +4,35 @@ USE test; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = ndb; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = ndb; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = ndb; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = ndb; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = ndb; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = ndb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = ndb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = ndb; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = ndb; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = ndb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = ndb; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = ndb; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -38,7 +44,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -52,7 +58,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = ndb; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; SELECT * FROM information_schema.columns WHERE table_schema LIKE 'test%' ORDER BY table_schema, table_name, column_name; diff --git a/mysql-test/suite/funcs_1/r/is_tables_innodb.result b/mysql-test/suite/funcs_1/r/is_tables_innodb.result index c160ac7f749..215e2c86654 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_innodb.result +++ b/mysql-test/suite/funcs_1/r/is_tables_innodb.result @@ -3,63 +3,63 @@ CREATE DATABASE test1; USE test; drop table if exists tb1 ; create table tb1 ( -f1 char(0), -f2 char(0) binary, -f3 char(0) ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, +f1 char(0), +f2 char(0) binary, +f3 char(0) ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal, -f34 decimal unsigned, -f35 decimal zerofill, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal, +f34 decimal unsigned, +f35 decimal zerofill, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = innodb; Warnings: @@ -76,180 +76,183 @@ Note 1265 Data truncated for column 'f45' at row 1 Note 1265 Data truncated for column 'f47' at row 1 Note 1265 Data truncated for column 'f49' at row 1 Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb1.txt' into table tb1 ; +load data infile '/std_data_ln/funcs_1/innodb_tb1.txt' +into table tb1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/innodb_tb2.txt' +into table tb2; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = innodb; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/innodb_tb3.txt' +into table tb3; drop table if exists tb4; create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), f226 set("1set","2set"), f235 char(0) unicode, f236 char(90), @@ -259,89 +262,97 @@ f239 varchar(20000) binary, f240 varchar(2000) unicode, f241 char(100) unicode ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb4.txt' into table tb4 ; +load data infile '/std_data_ln/funcs_1/innodb_tb4.txt' +into table tb4; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = innodb; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/innodb_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/innodb_tb2.txt' +into table tb2; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = InnoDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = InnoDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = InnoDB; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = InnoDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -353,7 +364,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -367,7 +378,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = InnoDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; SELECT *, diff --git a/mysql-test/suite/funcs_1/r/is_tables_memory.result b/mysql-test/suite/funcs_1/r/is_tables_memory.result index c1dfc42e1db..bfc83fa1f92 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_memory.result +++ b/mysql-test/suite/funcs_1/r/is_tables_memory.result @@ -4,55 +4,55 @@ CREATE DATABASE test1; USE test; drop table if exists tb1 ; create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f1 char, +f2 char binary, +f3 char ascii, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = memory; Warnings: @@ -72,174 +72,177 @@ Note 1265 Data truncated for column 'f45' at row 1 Note 1265 Data truncated for column 'f47' at row 1 Note 1265 Data truncated for column 'f49' at row 1 Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb1.txt' into table tb1 ; +load data infile '/std_data_ln/funcs_1/memory_tb1.txt' +into table tb1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/memory_tb2.txt' +into table tb2 ; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; drop table if exists tb4 ; create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), f226 set("1set","2set"), f236 char(95) unicode, f241 char(255) unicode, @@ -248,89 +251,97 @@ f238 varchar(25000) binary, f239 varbinary(0), f240 varchar(1200) unicode ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb4.txt' into table tb4 ; +load data infile '/std_data_ln/funcs_1/memory_tb4.txt' +into table tb4; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/memory_tb2.txt' +into table tb2 ; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MEMORY; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = MEMORY; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MEMORY; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MEMORY; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -342,7 +353,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -356,7 +367,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MEMORY; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; SELECT *, diff --git a/mysql-test/suite/funcs_1/r/is_tables_myisam.result b/mysql-test/suite/funcs_1/r/is_tables_myisam.result index f48128f6794..99d34818d98 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_myisam.result +++ b/mysql-test/suite/funcs_1/r/is_tables_myisam.result @@ -4,63 +4,63 @@ CREATE DATABASE test1; USE test; drop table if exists tb1 ; create table tb1 ( -f1 char, -f2 char binary, -f3 char ascii, -f4 tinytext unicode, -f5 text, -f6 mediumtext, -f7 longtext, -f8 tinyblob, +f1 char, +f2 char binary, +f3 char ascii, +f4 tinytext unicode, +f5 text, +f6 mediumtext, +f7 longtext, +f8 tinyblob, f9 blob, -f10 mediumblob, -f11 longblob, -f12 binary, -f13 tinyint, -f14 tinyint unsigned, -f15 tinyint zerofill, -f16 tinyint unsigned zerofill, -f17 smallint, -f18 smallint unsigned, -f19 smallint zerofill, -f20 smallint unsigned zerofill, -f21 mediumint, -f22 mediumint unsigned, -f23 mediumint zerofill, -f24 mediumint unsigned zerofill, -f25 int, -f26 int unsigned, -f27 int zerofill, -f28 int unsigned zerofill, -f29 bigint, -f30 bigint unsigned, -f31 bigint zerofill, -f32 bigint unsigned zerofill, -f33 decimal not null DEFAULT 9.9, -f34 decimal unsigned not null DEFAULT 9.9, -f35 decimal zerofill not null DEFAULT 9.9, -f36 decimal unsigned zerofill not null DEFAULT 9.9, -f37 decimal (0) not null DEFAULT 9.9, -f38 decimal (64) not null DEFAULT 9.9, -f39 decimal (0) unsigned not null DEFAULT 9.9, -f40 decimal (64) unsigned not null DEFAULT 9.9, -f41 decimal (0) zerofill not null DEFAULT 9.9, -f42 decimal (64) zerofill not null DEFAULT 9.9, -f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, -f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, -f45 decimal (0,0) not null DEFAULT 9.9, -f46 decimal (63,30) not null DEFAULT 9.9, -f47 decimal (0,0) unsigned not null DEFAULT 9.9, -f48 decimal (63,30) unsigned not null DEFAULT 9.9, -f49 decimal (0,0) zerofill not null DEFAULT 9.9, -f50 decimal (63,30) zerofill not null DEFAULT 9.9, -f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, -f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, -f53 numeric not null DEFAULT 99, -f54 numeric unsigned not null DEFAULT 99, -f55 numeric zerofill not null DEFAULT 99, -f56 numeric unsigned zerofill not null DEFAULT 99, -f57 numeric (0) not null DEFAULT 99, +f10 mediumblob, +f11 longblob, +f12 binary, +f13 tinyint, +f14 tinyint unsigned, +f15 tinyint zerofill, +f16 tinyint unsigned zerofill, +f17 smallint, +f18 smallint unsigned, +f19 smallint zerofill, +f20 smallint unsigned zerofill, +f21 mediumint, +f22 mediumint unsigned, +f23 mediumint zerofill, +f24 mediumint unsigned zerofill, +f25 int, +f26 int unsigned, +f27 int zerofill, +f28 int unsigned zerofill, +f29 bigint, +f30 bigint unsigned, +f31 bigint zerofill, +f32 bigint unsigned zerofill, +f33 decimal not null DEFAULT 9.9, +f34 decimal unsigned not null DEFAULT 9.9, +f35 decimal zerofill not null DEFAULT 9.9, +f36 decimal unsigned zerofill not null DEFAULT 9.9, +f37 decimal (0) not null DEFAULT 9.9, +f38 decimal (64) not null DEFAULT 9.9, +f39 decimal (0) unsigned not null DEFAULT 9.9, +f40 decimal (64) unsigned not null DEFAULT 9.9, +f41 decimal (0) zerofill not null DEFAULT 9.9, +f42 decimal (64) zerofill not null DEFAULT 9.9, +f43 decimal (0) unsigned zerofill not null DEFAULT 9.9, +f44 decimal (64) unsigned zerofill not null DEFAULT 9.9, +f45 decimal (0,0) not null DEFAULT 9.9, +f46 decimal (63,30) not null DEFAULT 9.9, +f47 decimal (0,0) unsigned not null DEFAULT 9.9, +f48 decimal (63,30) unsigned not null DEFAULT 9.9, +f49 decimal (0,0) zerofill not null DEFAULT 9.9, +f50 decimal (63,30) zerofill not null DEFAULT 9.9, +f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9, +f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9, +f53 numeric not null DEFAULT 99, +f54 numeric unsigned not null DEFAULT 99, +f55 numeric zerofill not null DEFAULT 99, +f56 numeric unsigned zerofill not null DEFAULT 99, +f57 numeric (0) not null DEFAULT 99, f58 numeric (64) not null DEFAULT 99 ) engine = myisam; Warnings: @@ -80,196 +80,199 @@ Note 1265 Data truncated for column 'f45' at row 1 Note 1265 Data truncated for column 'f47' at row 1 Note 1265 Data truncated for column 'f49' at row 1 Note 1265 Data truncated for column 'f51' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb1.txt' into table tb1 ; +load data infile '/std_data_ln/funcs_1/myisam_tb1.txt' +into table tb1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/myisam_tb2.txt' +into table tb2; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; drop table if exists tb4 ; create table tb4 ( -f176 numeric (0) unsigned not null DEFAULT 9, -f177 numeric (64) unsigned not null DEFAULT 9, -f178 numeric (0) zerofill not null DEFAULT 9, -f179 numeric (64) zerofill not null DEFAULT 9, -f180 numeric (0) unsigned zerofill not null DEFAULT 9, -f181 numeric (64) unsigned zerofill not null DEFAULT 9, -f182 numeric (0,0) not null DEFAULT 9, -f183 numeric (63,30) not null DEFAULT 9, -f184 numeric (0,0) unsigned not null DEFAULT 9, -f185 numeric (63,30) unsigned not null DEFAULT 9, -f186 numeric (0,0) zerofill not null DEFAULT 9, -f187 numeric (63,30) zerofill not null DEFAULT 9, -f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, -f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, -f190 real not null DEFAULT 88.8, -f191 real unsigned not null DEFAULT 88.8, -f192 real zerofill not null DEFAULT 88.8, -f193 real unsigned zerofill not null DEFAULT 88.8, -f194 double not null DEFAULT 55.5, -f195 double unsigned not null DEFAULT 55.5, -f196 double zerofill not null DEFAULT 55.5, -f197 double unsigned zerofill not null DEFAULT 55.5, -f198 float, -f199 float unsigned, -f200 float zerofill, -f201 float unsigned zerofill, -f202 float(0), -f203 float(23), -f204 float(0) unsigned, -f205 float(23) unsigned, -f206 float(0) zerofill, -f207 float(23) zerofill, -f208 float(0) unsigned zerofill, -f209 float(23) unsigned zerofill, -f210 float(24), -f211 float(53), -f212 float(24) unsigned, -f213 float(53) unsigned, -f214 float(24) zerofill, -f215 float(53) zerofill, -f216 float(24) unsigned zerofill, -f217 float(53) unsigned zerofill, -f218 date, -f219 time, -f220 datetime, -f221 timestamp, -f222 year, -f223 year(3), -f224 year(4), -f225 enum("1enum","2enum"), -f226 set("1set","2set"), -f227 VARBINARY(64), -f228 VARBINARY(27), -f229 VARBINARY(64), -f230 VARBINARY(192), -f231 VARBINARY(192), -f232 VARBINARY(27), -f233 VARBINARY(64), +f176 numeric (0) unsigned not null DEFAULT 9, +f177 numeric (64) unsigned not null DEFAULT 9, +f178 numeric (0) zerofill not null DEFAULT 9, +f179 numeric (64) zerofill not null DEFAULT 9, +f180 numeric (0) unsigned zerofill not null DEFAULT 9, +f181 numeric (64) unsigned zerofill not null DEFAULT 9, +f182 numeric (0,0) not null DEFAULT 9, +f183 numeric (63,30) not null DEFAULT 9, +f184 numeric (0,0) unsigned not null DEFAULT 9, +f185 numeric (63,30) unsigned not null DEFAULT 9, +f186 numeric (0,0) zerofill not null DEFAULT 9, +f187 numeric (63,30) zerofill not null DEFAULT 9, +f188 numeric (0,0) unsigned zerofill not null DEFAULT 9, +f189 numeric (63,30) unsigned zerofill not null DEFAULT 9, +f190 real not null DEFAULT 88.8, +f191 real unsigned not null DEFAULT 88.8, +f192 real zerofill not null DEFAULT 88.8, +f193 real unsigned zerofill not null DEFAULT 88.8, +f194 double not null DEFAULT 55.5, +f195 double unsigned not null DEFAULT 55.5, +f196 double zerofill not null DEFAULT 55.5, +f197 double unsigned zerofill not null DEFAULT 55.5, +f198 float, +f199 float unsigned, +f200 float zerofill, +f201 float unsigned zerofill, +f202 float(0), +f203 float(23), +f204 float(0) unsigned, +f205 float(23) unsigned, +f206 float(0) zerofill, +f207 float(23) zerofill, +f208 float(0) unsigned zerofill, +f209 float(23) unsigned zerofill, +f210 float(24), +f211 float(53), +f212 float(24) unsigned, +f213 float(53) unsigned, +f214 float(24) zerofill, +f215 float(53) zerofill, +f216 float(24) unsigned zerofill, +f217 float(53) unsigned zerofill, +f218 date, +f219 time, +f220 datetime, +f221 timestamp, +f222 year, +f223 year(3), +f224 year(4), +f225 enum("1enum","2enum"), +f226 set("1set","2set"), +f227 VARBINARY(64), +f228 VARBINARY(27), +f229 VARBINARY(64), +f230 VARBINARY(192), +f231 VARBINARY(192), +f232 VARBINARY(27), +f233 VARBINARY(64), f234 VARBINARY(192), f235 char(255) unicode, f236 char(60) ascii, @@ -280,97 +283,105 @@ f240 varchar(120) unicode, f241 char(100) unicode, f242 bit(30) ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb4.txt' into table tb4 ; +load data infile '/std_data_ln/funcs_1/myisam_tb4.txt' +into table tb4; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/myisam_tb2.txt' +into table tb2; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = MyISAM; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = MyISAM; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MyISAM; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = MyISAM; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -382,7 +393,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -396,7 +407,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = MyISAM; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; SELECT *, diff --git a/mysql-test/suite/funcs_1/r/is_tables_ndb.result b/mysql-test/suite/funcs_1/r/is_tables_ndb.result index 189f7f3464a..467f4566912 100644 --- a/mysql-test/suite/funcs_1/r/is_tables_ndb.result +++ b/mysql-test/suite/funcs_1/r/is_tables_ndb.result @@ -4,29 +4,35 @@ USE test; USE test; USE test; DROP TABLE IF EXISTS t1, t2, t4, t10, t11; -CREATE TABLE t1 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; -CREATE TABLE t2 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; -CREATE TABLE t4 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; -CREATE TABLE t10 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; -CREATE TABLE t11 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t1; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t2; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t4; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t10; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t11; +CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = NDB; +CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = NDB; +CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = NDB; +CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = NDB; +CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +ENGINE = NDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t1; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t2; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t4; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t10; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t11; drop TABLE if exists t3; CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = NDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' INTO TABLE t3; +LOAD DATA INFILE '/std_data_ln/funcs_1/t3.txt' INTO TABLE t3; drop database if exists test4; CREATE database test4; use test4; -CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) ENGINE = NDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' INTO TABLE t6; +CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int) +ENGINE = NDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t4.txt' INTO TABLE t6; use test; drop TABLE if exists t7, t8; -CREATE TABLE t7 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = NDB; -CREATE TABLE t8 (f1 char(20), f2 char(25), f3 date, f4 int) ENGINE = NDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t7; +CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = NDB; +CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = NDB; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -38,7 +44,7 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' INTO TABLE t8; +LOAD DATA INFILE '/std_data_ln/funcs_1/t7.txt' INTO TABLE t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -52,7 +58,7 @@ Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 drop TABLE if exists t9; CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = NDB; -LOAD DATA INFILE 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' INTO TABLE t9; +LOAD DATA INFILE '/std_data_ln/funcs_1/t9.txt' INTO TABLE t9; DROP DATABASE IF EXISTS db_datadict; CREATE DATABASE db_datadict; SELECT *, diff --git a/mysql-test/suite/funcs_1/r/memory_func_view.result b/mysql-test/suite/funcs_1/r/memory_func_view.result index 552b549a1a0..c2689a36801 100644 --- a/mysql-test/suite/funcs_1/r/memory_func_view.result +++ b/mysql-test/suite/funcs_1/r/memory_func_view.result @@ -1,7 +1,3 @@ - -! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables --------------------------------------------------------------------------------- DROP TABLE IF EXISTS t1_selects, t1_modes, t1_values; DROP VIEW IF EXISTS v1; CREATE TABLE t1_values @@ -9,7 +5,7 @@ CREATE TABLE t1_values id BIGINT AUTO_INCREMENT, select_id BIGINT, PRIMARY KEY(id) -) ENGINE = 'MEMORY' ; +) ENGINE = ; ALTER TABLE t1_values ADD my_char_30 CHAR(30); ALTER TABLE t1_values ADD my_varchar_1000 VARCHAR(1000); ALTER TABLE t1_values ADD my_binary_30 BINARY(30); @@ -39,10 +35,10 @@ my_bigint = -9223372036854775808, my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 , my_double = -1.7976931348623E+308; INSERT INTO t1_values SET -my_char_30 = '<--------30 characters------->', +my_char_30 = '<--------30 characters------->', my_varchar_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), -my_binary_30 = '<--------30 characters------->', +my_binary_30 = '<--------30 characters------->', my_varbinary_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), my_datetime = '9999-12-31 23:59:59', @@ -54,23 +50,23 @@ my_bigint = 9223372036854775807, my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 , my_double = 1.7976931348623E+308; INSERT INTO t1_values SET -my_char_30 = ' ---äÖüß@µ*$-- ', -my_varchar_1000 = ' ---äÖüß@µ*$-- ', -my_binary_30 = ' ---äÖüß@µ*$-- ', -my_varbinary_1000 = ' ---äÖüß@µ*$-- ', +my_char_30 = ' ---äÖüß@µ*$-- ', +my_varchar_1000 = ' ---äÖüß@µ*$-- ', +my_binary_30 = ' ---äÖüß@µ*$-- ', +my_varbinary_1000 = ' ---äÖüß@µ*$-- ', my_datetime = '2004-02-29 23:59:59', my_date = '2004-02-29', my_timestamp = '2004-02-29 23:59:59', my_time = '13:00:00', my_year = 2000, -my_bigint = 0, +my_bigint = 0, my_decimal = 0.0, my_double = 0; INSERT INTO t1_values SET -my_char_30 = '-1', -my_varchar_1000 = '-1', -my_binary_30 = '-1', -my_varbinary_1000 = '-1', +my_char_30 = '-1', +my_varchar_1000 = '-1', +my_binary_30 = '-1', +my_varbinary_1000 = '-1', my_datetime = '2005-06-28 10:00:00', my_date = '2005-06-28', my_timestamp = '2005-06-28 10:00:00', @@ -89,6 +85,9 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 4; INSERT INTO t1_values SET select_id = @select_id, my_bigint = -25; +##### 1.1.1. CAST --> BINARY +##### 1.1.2. CAST --> CHAR +##### 1.1.3. CAST --> DATE INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '2005-06-27'; INSERT INTO t1_values SET select_id = @select_id, @@ -101,6 +100,7 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 20050627; INSERT INTO t1_values SET select_id = @select_id, my_double = +20.050627E+6; +##### 1.1.4. CAST --> DATETIME INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '2005-06-27 17:58'; INSERT INTO t1_values SET select_id = @select_id, @@ -113,6 +113,7 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 200506271758; INSERT INTO t1_values SET select_id = @select_id, my_double = +0.0200506271758E+13; +##### 1.1.5. CAST --> TIME INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '1 17:58'; INSERT INTO t1_values SET select_id = @select_id, @@ -123,10 +124,9 @@ INSERT INTO t1_values SET select_id = @select_id, my_varbinary_1000 = '1 17:58'; INSERT INTO t1_values SET select_id = @select_id, my_bigint = 1758; - -some statements disabled because of -Bug#12440: CAST(data type DOUBLE AS TIME) strange results --------------------------------------------------------------------------------- +INSERT INTO t1_values SET select_id = @select_id, +my_double = +1.758E+3; +##### 1.1.6. CAST --> DECIMAL INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '-3333.3333'; INSERT INTO t1_values SET select_id = @select_id, @@ -135,51 +135,39 @@ INSERT INTO t1_values SET select_id = @select_id, my_binary_30 = '-3333.3333'; INSERT INTO t1_values SET select_id = @select_id, my_varbinary_1000 = '-3333.3333'; - -some statements disabled because of -Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian --------------------------------------------------------------------------------- +INSERT INTO t1_values SET select_id = @select_id, +my_double = -0.33333333E+4; +##### 1.1.7. CAST --> SIGNED INTEGER "Attention: CAST --> SIGNED INTEGER - The file with expected results suffers from - Bug#5083 Big integer values are inserted as negative into - decimal/string columns Bug#5913 Traditional mode: BIGINT range not correctly delimited - Both have the status: To be fixed later" --------------------------------------------------------------------------------- - -some statements disabled because of -Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result + Status: To be fixed later" -------------------------------------------------------------------------------- +##### 1.1.8. CAST --> UNSIGNED INTEGER "Attention: CAST --> UNSIGNED INTEGER - The file with expected results suffers from Bug 5083 5913 9809" + The file with expected results suffers from Bug 5913" -------------------------------------------------------------------------------- some statements disabled because of -Bugs#8663: cant use bgint unsigned as input to cast +Bug#5913 Traditional mode: BIGINT range not correctly delimited -------------------------------------------------------------------------------- -SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8), +SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8), +SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8), +SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8), +SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values'; - -"Attention: IF(my_year IS NULL, ... - The file with expected results suffers from - Bug#11689. successful CREATE VIEW but SELECT on view fails." --------------------------------------------------------------------------------- SET @my_select = 'SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT BIT_LENGTH(my_varchar_1000), @@ -192,22 +180,20 @@ SET @my_select = 'SELECT INSTR(my_char_30, ''char''), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values'; - -"Attention: LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', ) - The file with expected results suffers from Bug 10963 11728" - and the testcases with length = BIGINT or DOUBLE column are deactivated, -because there are 32/64 Bit differences --------------------------------------------------------------------------------- +SET @my_select = +'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_bigint), my_bigint, id FROM t1_values'; SET @my_select = 'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_decimal), my_decimal, id FROM t1_values'; +SET @my_select = +'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_double), my_double, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_varchar_1000), @@ -216,8 +202,10 @@ SET @my_select = 'SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values'; -SET @my_select = -'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values'; +SET @my_select = +'SELECT LOAD_FILE(''/std_data_ln/funcs_1/load_file.txt'') + AS my_col, + id FROM t1_values'; SET @my_select = 'SELECT LOCATE(''char'', my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LOCATE(''char'', my_varchar_1000), @@ -299,19 +287,19 @@ SET sql_mode = ''; -------------------------------------------------------------------------------- CREATE VIEW v1 AS SELECT my_char_30, id FROM t1_values; SELECT my_char_30, id FROM t1_values -WHERE select_id = 187 OR select_id IS NULL; +WHERE select_id = 193 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 187 OR select_id IS NULL); +WHERE select_id = 193 OR select_id IS NULL) order by id; DROP VIEW v1; CREATE VIEW v1 AS SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values; SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 186 OR select_id IS NULL; +WHERE select_id = 192 OR select_id IS NULL order by id; CONCAT('A',my_char_30) my_char_30 id NULL NULL 1 A 2 @@ -323,7 +311,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select concat(_latin1'A',`t1_values`.`my_char_30`) AS `CONCAT('A',my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 186 OR select_id IS NULL); +WHERE select_id = 192 OR select_id IS NULL) order by id; CONCAT('A',my_char_30) my_char_30 id NULL NULL 1 A 2 @@ -337,13 +325,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LTRIM(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 185 OR select_id IS NULL; +WHERE select_id = 191 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varbinary_1000`) AS `LTRIM(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 185 OR select_id IS NULL); +WHERE select_id = 191 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -351,13 +339,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_binary_30), my_binary_30, id FROM t1_values; SELECT LTRIM(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 184 OR select_id IS NULL; +WHERE select_id = 190 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_binary_30`) AS `LTRIM(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 184 OR select_id IS NULL); +WHERE select_id = 190 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -365,13 +353,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LTRIM(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 183 OR select_id IS NULL; +WHERE select_id = 189 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varchar_1000`) AS `LTRIM(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 183 OR select_id IS NULL); +WHERE select_id = 189 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -379,13 +367,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_char_30), my_char_30, id FROM t1_values; SELECT LTRIM(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 182 OR select_id IS NULL; +WHERE select_id = 188 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_char_30`) AS `LTRIM(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 182 OR select_id IS NULL); +WHERE select_id = 188 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -393,13 +381,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LOWER(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 181 OR select_id IS NULL; +WHERE select_id = 187 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varbinary_1000`) AS `LOWER(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 181 OR select_id IS NULL); +WHERE select_id = 187 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -407,13 +395,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_binary_30), my_binary_30, id FROM t1_values; SELECT LOWER(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 180 OR select_id IS NULL; +WHERE select_id = 186 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_binary_30`) AS `LOWER(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 180 OR select_id IS NULL); +WHERE select_id = 186 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -421,13 +409,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LOWER(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 179 OR select_id IS NULL; +WHERE select_id = 185 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LOWER(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 179 OR select_id IS NULL); +WHERE select_id = 185 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -435,13 +423,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_char_30), my_char_30, id FROM t1_values; SELECT LOWER(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 178 OR select_id IS NULL; +WHERE select_id = 184 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_char_30`) AS `LOWER(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 178 OR select_id IS NULL); +WHERE select_id = 184 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -449,13 +437,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_decimal), my_decimal, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_decimal), my_decimal, id FROM t1_values -WHERE select_id = 177 OR select_id IS NULL; +WHERE select_id = 183 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_decimal`) AS `LOCATE('-', ' - -ABC', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 177 OR select_id IS NULL); +WHERE select_id = 183 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -463,13 +451,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_double), my_double, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_double), my_double, id FROM t1_values -WHERE select_id = 176 OR select_id IS NULL; +WHERE select_id = 182 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_double`) AS `LOCATE('-', ' - -ABC', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 176 OR select_id IS NULL); +WHERE select_id = 182 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -477,13 +465,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_bigint), my_bigint, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_bigint), my_bigint, id FROM t1_values -WHERE select_id = 175 OR select_id IS NULL; +WHERE select_id = 181 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_bigint`) AS `LOCATE('-', ' - -ABC', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 175 OR select_id IS NULL); +WHERE select_id = 181 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -491,13 +479,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_varbinary_1000, 3), my_varbinary_1000, id FROM t1_values; SELECT LOCATE('-', my_varbinary_1000, 3), my_varbinary_1000, id FROM t1_values -WHERE select_id = 174 OR select_id IS NULL; +WHERE select_id = 180 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varbinary_1000`,3) AS `LOCATE('-', my_varbinary_1000, 3)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 174 OR select_id IS NULL); +WHERE select_id = 180 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -505,13 +493,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_binary_30, 3), my_binary_30, id FROM t1_values; SELECT LOCATE('-', my_binary_30, 3), my_binary_30, id FROM t1_values -WHERE select_id = 173 OR select_id IS NULL; +WHERE select_id = 179 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_binary_30`,3) AS `LOCATE('-', my_binary_30, 3)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 173 OR select_id IS NULL); +WHERE select_id = 179 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -519,13 +507,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_varchar_1000, 3), my_varchar_1000, id FROM t1_values; SELECT LOCATE('-', my_varchar_1000, 3), my_varchar_1000, id FROM t1_values -WHERE select_id = 172 OR select_id IS NULL; +WHERE select_id = 178 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varchar_1000`,3) AS `LOCATE('-', my_varchar_1000, 3)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 172 OR select_id IS NULL); +WHERE select_id = 178 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -533,13 +521,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_char_30, 3), my_char_30, id FROM t1_values; SELECT LOCATE('-', my_char_30, 3), my_char_30, id FROM t1_values -WHERE select_id = 171 OR select_id IS NULL; +WHERE select_id = 177 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_char_30`,3) AS `LOCATE('-', my_char_30, 3)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 171 OR select_id IS NULL); +WHERE select_id = 177 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -547,13 +535,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_binary_30 ), my_varbinary_1000, my_binary_30 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_binary_30 ), my_varbinary_1000, my_binary_30 id FROM t1_values -WHERE select_id = 170 OR select_id IS NULL; +WHERE select_id = 176 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varbinary_1000, my_binary_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 170 OR select_id IS NULL); +WHERE select_id = 176 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -561,13 +549,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ), my_varbinary_1000, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ), my_varbinary_1000, my_varchar_1000 id FROM t1_values -WHERE select_id = 169 OR select_id IS NULL; +WHERE select_id = 175 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varbinary_1000, my_varchar_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 169 OR select_id IS NULL); +WHERE select_id = 175 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -575,13 +563,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_char_30 ), my_varbinary_1000, my_char_30 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_char_30 ), my_varbinary_1000, my_char_30 id FROM t1_values -WHERE select_id = 168 OR select_id IS NULL; +WHERE select_id = 174 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varbinary_1000, my_char_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 168 OR select_id IS NULL); +WHERE select_id = 174 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -589,13 +577,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ), my_varbinary_1000, id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ), my_varbinary_1000, id FROM t1_values -WHERE select_id = 167 OR select_id IS NULL; +WHERE select_id = 173 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varbinary_1000, my_varbinary_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 167 OR select_id IS NULL); +WHERE select_id = 173 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -603,13 +591,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varbinary_1000 ), my_binary_30, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_binary_30, my_varbinary_1000 ), my_binary_30, my_varbinary_1000 id FROM t1_values -WHERE select_id = 166 OR select_id IS NULL; +WHERE select_id = 172 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_binary_30, my_varbinary_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 166 OR select_id IS NULL); +WHERE select_id = 172 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -617,13 +605,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varchar_1000 ), my_binary_30, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_binary_30, my_varchar_1000 ), my_binary_30, my_varchar_1000 id FROM t1_values -WHERE select_id = 165 OR select_id IS NULL; +WHERE select_id = 171 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_binary_30, my_varchar_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 165 OR select_id IS NULL); +WHERE select_id = 171 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -631,13 +619,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_char_30 ), my_binary_30, my_char_30 id FROM t1_values; SELECT LOCATE(my_binary_30, my_char_30 ), my_binary_30, my_char_30 id FROM t1_values -WHERE select_id = 164 OR select_id IS NULL; +WHERE select_id = 170 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_binary_30, my_char_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 164 OR select_id IS NULL); +WHERE select_id = 170 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -645,13 +633,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_binary_30 ), my_binary_30, id FROM t1_values; SELECT LOCATE(my_binary_30, my_binary_30 ), my_binary_30, id FROM t1_values -WHERE select_id = 163 OR select_id IS NULL; +WHERE select_id = 169 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_binary_30, my_binary_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 163 OR select_id IS NULL); +WHERE select_id = 169 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -659,13 +647,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ), my_varchar_1000, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ), my_varchar_1000, my_varbinary_1000 id FROM t1_values -WHERE select_id = 162 OR select_id IS NULL; +WHERE select_id = 168 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varchar_1000, my_varbinary_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 162 OR select_id IS NULL); +WHERE select_id = 168 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -673,13 +661,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_binary_30 ), my_varchar_1000, my_binary_30 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_binary_30 ), my_varchar_1000, my_binary_30 id FROM t1_values -WHERE select_id = 161 OR select_id IS NULL; +WHERE select_id = 167 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varchar_1000, my_binary_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 161 OR select_id IS NULL); +WHERE select_id = 167 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -687,13 +675,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_char_30 ), my_varchar_1000, my_char_30 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_char_30 ), my_varchar_1000, my_char_30 id FROM t1_values -WHERE select_id = 160 OR select_id IS NULL; +WHERE select_id = 166 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varchar_1000, my_char_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 160 OR select_id IS NULL); +WHERE select_id = 166 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -701,13 +689,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varchar_1000 ), my_varchar_1000, id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_varchar_1000 ), my_varchar_1000, id FROM t1_values -WHERE select_id = 159 OR select_id IS NULL; +WHERE select_id = 165 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varchar_1000, my_varchar_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 159 OR select_id IS NULL); +WHERE select_id = 165 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -715,13 +703,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varbinary_1000 ), my_char_30, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_char_30, my_varbinary_1000 ), my_char_30, my_varbinary_1000 id FROM t1_values -WHERE select_id = 158 OR select_id IS NULL; +WHERE select_id = 164 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_char_30, my_varbinary_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 158 OR select_id IS NULL); +WHERE select_id = 164 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -729,13 +717,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_binary_30 ), my_char_30, my_binary_30 id FROM t1_values; SELECT LOCATE(my_char_30, my_binary_30 ), my_char_30, my_binary_30 id FROM t1_values -WHERE select_id = 157 OR select_id IS NULL; +WHERE select_id = 163 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_char_30, my_binary_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 157 OR select_id IS NULL); +WHERE select_id = 163 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -743,13 +731,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varchar_1000 ), my_char_30, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_char_30, my_varchar_1000 ), my_char_30, my_varchar_1000 id FROM t1_values -WHERE select_id = 156 OR select_id IS NULL; +WHERE select_id = 162 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_char_30, my_varchar_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 156 OR select_id IS NULL); +WHERE select_id = 162 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -757,13 +745,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_char_30 ), my_char_30, id FROM t1_values; SELECT LOCATE(my_char_30, my_char_30 ), my_char_30, id FROM t1_values -WHERE select_id = 155 OR select_id IS NULL; +WHERE select_id = 161 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_char_30, my_char_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 155 OR select_id IS NULL); +WHERE select_id = 161 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -771,13 +759,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LOCATE('char', my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 154 OR select_id IS NULL; +WHERE select_id = 160 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varbinary_1000`) AS `LOCATE('char', my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 154 OR select_id IS NULL); +WHERE select_id = 160 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -785,13 +773,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_binary_30), my_binary_30, id FROM t1_values; SELECT LOCATE('char', my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 153 OR select_id IS NULL; +WHERE select_id = 159 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_binary_30`) AS `LOCATE('char', my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 153 OR select_id IS NULL); +WHERE select_id = 159 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -799,13 +787,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LOCATE('char', my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 152 OR select_id IS NULL; +WHERE select_id = 158 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varchar_1000`) AS `LOCATE('char', my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 152 OR select_id IS NULL); +WHERE select_id = 158 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -813,46 +801,50 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_char_30), my_char_30, id FROM t1_values; SELECT LOCATE('char', my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 151 OR select_id IS NULL; +WHERE select_id = 157 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `LOCATE('char', my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 151 OR select_id IS NULL); +WHERE select_id = 157 OR select_id IS NULL) order by id; DROP VIEW v1; -CREATE VIEW v1 AS SELECT LOAD_FILE('../log/current_test'), id FROM t1_values; -SELECT LOAD_FILE('../log/current_test'), id FROM t1_values -WHERE select_id = 150 OR select_id IS NULL; -LOAD_FILE('../log/current_test') id -CURRENT_TEST: memory_func_view +CREATE VIEW v1 AS SELECT LOAD_FILE('/std_data_ln/funcs_1/load_file.txt') + AS my_col, + id FROM t1_values; +SELECT LOAD_FILE('/std_data_ln/funcs_1/load_file.txt') + AS my_col, + id FROM t1_values +WHERE select_id = 156 OR select_id IS NULL order by id; +my_col id +Here is content from load_file 1 -CURRENT_TEST: memory_func_view +Here is content from load_file 2 -CURRENT_TEST: memory_func_view +Here is content from load_file 3 -CURRENT_TEST: memory_func_view +Here is content from load_file 4 -CURRENT_TEST: memory_func_view +Here is content from load_file 5 SHOW CREATE VIEW v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'../log/current_test') AS `LOAD_FILE('../log/current_test')`,`t1_values`.`id` AS `id` from `t1_values` +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'/std_data_ln/funcs_1/load_file.txt') AS `my_col`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 150 OR select_id IS NULL); -LOAD_FILE('../log/current_test') id -CURRENT_TEST: memory_func_view +WHERE select_id = 156 OR select_id IS NULL) order by id; +my_col id +Here is content from load_file 1 -CURRENT_TEST: memory_func_view +Here is content from load_file 2 -CURRENT_TEST: memory_func_view +Here is content from load_file 3 -CURRENT_TEST: memory_func_view +Here is content from load_file 4 -CURRENT_TEST: memory_func_view +Here is content from load_file 5 DROP VIEW v1; @@ -861,13 +853,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 149 OR select_id IS NULL; +WHERE select_id = 155 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varbinary_1000`) AS `LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 149 OR select_id IS NULL); +WHERE select_id = 155 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -875,13 +867,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values; SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 148 OR select_id IS NULL; +WHERE select_id = 154 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_binary_30`) AS `LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 148 OR select_id IS NULL); +WHERE select_id = 154 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -889,13 +881,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 147 OR select_id IS NULL; +WHERE select_id = 153 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varchar_1000`) AS `LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 147 OR select_id IS NULL); +WHERE select_id = 153 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -903,19 +895,49 @@ CREATE VIEW v1 AS SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values; SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 146 OR select_id IS NULL; +WHERE select_id = 152 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_char_30`) AS `LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 146 OR select_id IS NULL); +WHERE select_id = 152 OR select_id IS NULL) order by id; +DROP VIEW v1; + + +CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double), my_double, id FROM t1_values; +SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double), my_double, id FROM t1_values +WHERE select_id = 151 OR select_id IS NULL order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double) my_double id +NULL NULL 1 + -1.7976931348623e+308 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 1.7976931348623e+308 3 + 0 4 + -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_double`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 151 OR select_id IS NULL) order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double) my_double id +NULL NULL 1 + -1.7976931348623e+308 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 1.7976931348623e+308 3 + 0 4 + -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values; SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values -WHERE select_id = 145 OR select_id IS NULL; +WHERE select_id = 150 OR select_id IS NULL order by id; LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -930,7 +952,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_decimal`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 145 OR select_id IS NULL); +WHERE select_id = 150 OR select_id IS NULL) order by id; LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -943,9 +965,33 @@ Error 1292 Truncated incorrect DECIMAL value: '' DROP VIEW v1; +CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint), my_bigint, id FROM t1_values; +SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint), my_bigint, id FROM t1_values +WHERE select_id = 149 OR select_id IS NULL order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint) my_bigint id +NULL NULL 1 + -9223372036854775808 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9223372036854775807 3 + 0 4 + -1 5 +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_bigint`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 149 OR select_id IS NULL) order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint) my_bigint id +NULL NULL 1 + -9223372036854775808 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9223372036854775807 3 + 0 4 + -1 5 +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values; SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values -WHERE select_id = 144 OR select_id IS NULL; +WHERE select_id = 148 OR select_id IS NULL order by id; LEFT(my_varbinary_1000, 2) my_varbinary_1000 id NULL NULL 1 2 @@ -957,7 +1003,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varbinary_1000`,2) AS `LEFT(my_varbinary_1000, 2)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 144 OR select_id IS NULL); +WHERE select_id = 148 OR select_id IS NULL) order by id; LEFT(my_varbinary_1000, 2) my_varbinary_1000 id NULL NULL 1 2 @@ -969,19 +1015,19 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values; SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values -WHERE select_id = 143 OR select_id IS NULL; +WHERE select_id = 147 OR select_id IS NULL order by id; LEFT(my_binary_30, 2) my_binary_30 id NULL NULL 1 - 2 + 2 <- <--------30 characters-------> 3 - - ---äÖüß@µ*$-- 4 --1 -1 5 + - ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_binary_30`,2) AS `LEFT(my_binary_30, 2)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 143 OR select_id IS NULL); +WHERE select_id = 147 OR select_id IS NULL) order by id; LEFT(my_binary_30, 2) my_binary_30 id NULL NULL 1 2 @@ -993,7 +1039,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values; SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values -WHERE select_id = 142 OR select_id IS NULL; +WHERE select_id = 146 OR select_id IS NULL order by id; LEFT(my_varchar_1000, 2) my_varchar_1000 id NULL NULL 1 2 @@ -1005,7 +1051,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varchar_1000`,2) AS `LEFT(my_varchar_1000, 2)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 142 OR select_id IS NULL); +WHERE select_id = 146 OR select_id IS NULL) order by id; LEFT(my_varchar_1000, 2) my_varchar_1000 id NULL NULL 1 2 @@ -1017,7 +1063,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values; SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values -WHERE select_id = 141 OR select_id IS NULL; +WHERE select_id = 145 OR select_id IS NULL order by id; LEFT(my_char_30, 2) my_char_30 id NULL NULL 1 2 @@ -1029,7 +1075,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_char_30`,2) AS `LEFT(my_char_30, 2)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 141 OR select_id IS NULL); +WHERE select_id = 145 OR select_id IS NULL) order by id; LEFT(my_char_30, 2) my_char_30 id NULL NULL 1 2 @@ -1043,13 +1089,13 @@ CREATE VIEW v1 AS SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 140 OR select_id IS NULL; +WHERE select_id = 144 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LCASE(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 140 OR select_id IS NULL); +WHERE select_id = 144 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -1057,13 +1103,13 @@ CREATE VIEW v1 AS SELECT INSTR(my_char_30, 'char'), my_char_30, id FROM t1_values; SELECT INSTR(my_char_30, 'char'), my_char_30, id FROM t1_values -WHERE select_id = 139 OR select_id IS NULL; +WHERE select_id = 143 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `INSTR(my_char_30, 'char')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 139 OR select_id IS NULL); +WHERE select_id = 143 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -1071,7 +1117,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT BIT_LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 138 OR select_id IS NULL; +WHERE select_id = 142 OR select_id IS NULL order by id; BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id NULL NULL 1 0 2 @@ -1083,7 +1129,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varbinary_1000`) AS `BIT_LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 138 OR select_id IS NULL); +WHERE select_id = 142 OR select_id IS NULL) order by id; BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id NULL NULL 1 0 2 @@ -1097,19 +1143,19 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_binary_30), my_binary_30, id FROM t1_values; SELECT BIT_LENGTH(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 137 OR select_id IS NULL; +WHERE select_id = 141 OR select_id IS NULL order by id; BIT_LENGTH(my_binary_30) my_binary_30 id NULL NULL 1 -240 2 +240 2 240 <--------30 characters-------> 3 -240 ---äÖüß@µ*$-- 4 -240 -1 5 +240 ---äÖüß@µ*$-- 4 +240 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_binary_30`) AS `BIT_LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 137 OR select_id IS NULL); +WHERE select_id = 141 OR select_id IS NULL) order by id; BIT_LENGTH(my_binary_30) my_binary_30 id NULL NULL 1 240 2 @@ -1123,7 +1169,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT BIT_LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 136 OR select_id IS NULL; +WHERE select_id = 140 OR select_id IS NULL order by id; BIT_LENGTH(my_varchar_1000) my_varchar_1000 id NULL NULL 1 0 2 @@ -1135,7 +1181,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varchar_1000`) AS `BIT_LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 136 OR select_id IS NULL); +WHERE select_id = 140 OR select_id IS NULL) order by id; BIT_LENGTH(my_varchar_1000) my_varchar_1000 id NULL NULL 1 0 2 @@ -1149,7 +1195,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values; SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 135 OR select_id IS NULL; +WHERE select_id = 139 OR select_id IS NULL order by id; BIT_LENGTH(my_char_30) my_char_30 id NULL NULL 1 0 2 @@ -1161,7 +1207,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_char_30`) AS `BIT_LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 135 OR select_id IS NULL); +WHERE select_id = 139 OR select_id IS NULL) order by id; BIT_LENGTH(my_char_30) my_char_30 id NULL NULL 1 0 2 @@ -1175,7 +1221,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_year,'IS_NULL'), my_year, id FROM t1_values; SELECT IFNULL(my_year,'IS_NULL'), my_year, id FROM t1_values -WHERE select_id = 134 OR select_id IS NULL; +WHERE select_id = 138 OR select_id IS NULL order by id; IFNULL(my_year,'IS_NULL') my_year id IS_NULL NULL 1 1901 1901 2 @@ -1187,7 +1233,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_year`,_latin1'IS_NULL') AS `IFNULL(my_year,'IS_NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 134 OR select_id IS NULL); +WHERE select_id = 138 OR select_id IS NULL) order by id; IFNULL(my_year,'IS_NULL') my_year id IS_NULL NULL 1 1901 1901 2 @@ -1201,7 +1247,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_time,'IS_NULL'), my_time, id FROM t1_values; SELECT IFNULL(my_time,'IS_NULL'), my_time, id FROM t1_values -WHERE select_id = 133 OR select_id IS NULL; +WHERE select_id = 137 OR select_id IS NULL order by id; IFNULL(my_time,'IS_NULL') my_time id IS_NULL NULL 1 -838:59:59 -838:59:59 2 @@ -1213,7 +1259,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_time`,_latin1'IS_NULL') AS `IFNULL(my_time,'IS_NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 133 OR select_id IS NULL); +WHERE select_id = 137 OR select_id IS NULL) order by id; IFNULL(my_time,'IS_NULL') my_time id IS_NULL NULL 1 -838:59:59 -838:59:59 2 @@ -1227,7 +1273,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_timestamp,'IS_NULL'), my_timestamp, id FROM t1_values; SELECT IFNULL(my_timestamp,'IS_NULL'), my_timestamp, id FROM t1_values -WHERE select_id = 132 OR select_id IS NULL; +WHERE select_id = 136 OR select_id IS NULL order by id; IFNULL(my_timestamp,'IS_NULL') my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -1239,7 +1285,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_timestamp`,_latin1'IS_NULL') AS `IFNULL(my_timestamp,'IS_NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 132 OR select_id IS NULL); +WHERE select_id = 136 OR select_id IS NULL) order by id; IFNULL(my_timestamp,'IS_NULL') my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -1253,7 +1299,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_date,'IS_NULL'), my_date, id FROM t1_values; SELECT IFNULL(my_date,'IS_NULL'), my_date, id FROM t1_values -WHERE select_id = 131 OR select_id IS NULL; +WHERE select_id = 135 OR select_id IS NULL order by id; IFNULL(my_date,'IS_NULL') my_date id IS_NULL NULL 1 0001-01-01 0001-01-01 2 @@ -1265,7 +1311,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_date`,_latin1'IS_NULL') AS `IFNULL(my_date,'IS_NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 131 OR select_id IS NULL); +WHERE select_id = 135 OR select_id IS NULL) order by id; IFNULL(my_date,'IS_NULL') my_date id IS_NULL NULL 1 0001-01-01 0001-01-01 2 @@ -1279,7 +1325,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_datetime,'IS_NULL'), my_datetime, id FROM t1_values; SELECT IFNULL(my_datetime,'IS_NULL'), my_datetime, id FROM t1_values -WHERE select_id = 130 OR select_id IS NULL; +WHERE select_id = 134 OR select_id IS NULL order by id; IFNULL(my_datetime,'IS_NULL') my_datetime id IS_NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -1291,7 +1337,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_datetime`,_latin1'IS_NULL') AS `IFNULL(my_datetime,'IS_NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 130 OR select_id IS NULL); +WHERE select_id = 134 OR select_id IS NULL) order by id; IFNULL(my_datetime,'IS_NULL') my_datetime id IS_NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -1305,7 +1351,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_double,'IS_NULL'), my_double, id FROM t1_values; SELECT IFNULL(my_double,'IS_NULL'), my_double, id FROM t1_values -WHERE select_id = 129 OR select_id IS NULL; +WHERE select_id = 133 OR select_id IS NULL order by id; IFNULL(my_double,'IS_NULL') my_double id IS_NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -1317,7 +1363,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_double`,_latin1'IS_NULL') AS `IFNULL(my_double,'IS_NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 129 OR select_id IS NULL); +WHERE select_id = 133 OR select_id IS NULL) order by id; IFNULL(my_double,'IS_NULL') my_double id IS_NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -1331,7 +1377,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_decimal,'IS_NULL'), my_decimal, id FROM t1_values; SELECT IFNULL(my_decimal,'IS_NULL'), my_decimal, id FROM t1_values -WHERE select_id = 128 OR select_id IS NULL; +WHERE select_id = 132 OR select_id IS NULL order by id; IFNULL(my_decimal,'IS_NULL') my_decimal id IS_NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -1343,7 +1389,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_decimal`,_latin1'IS_NULL') AS `IFNULL(my_decimal,'IS_NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 128 OR select_id IS NULL); +WHERE select_id = 132 OR select_id IS NULL) order by id; IFNULL(my_decimal,'IS_NULL') my_decimal id IS_NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -1357,7 +1403,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_bigint,'IS_NULL'), my_bigint, id FROM t1_values; SELECT IFNULL(my_bigint,'IS_NULL'), my_bigint, id FROM t1_values -WHERE select_id = 127 OR select_id IS NULL; +WHERE select_id = 131 OR select_id IS NULL order by id; IFNULL(my_bigint,'IS_NULL') my_bigint id IS_NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -1369,7 +1415,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_bigint`,_latin1'IS_NULL') AS `IFNULL(my_bigint,'IS_NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 127 OR select_id IS NULL); +WHERE select_id = 131 OR select_id IS NULL) order by id; IFNULL(my_bigint,'IS_NULL') my_bigint id IS_NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -1383,7 +1429,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_varbinary_1000,'IS_NULL'), my_varbinary_1000, id FROM t1_values; SELECT IFNULL(my_varbinary_1000,'IS_NULL'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 126 OR select_id IS NULL; +WHERE select_id = 130 OR select_id IS NULL order by id; IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id IS_NULL NULL 1 2 @@ -1395,7 +1441,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varbinary_1000`,_latin1'IS_NULL') AS `IFNULL(my_varbinary_1000,'IS_NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 126 OR select_id IS NULL); +WHERE select_id = 130 OR select_id IS NULL) order by id; IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id IS_NULL NULL 1 2 @@ -1409,19 +1455,19 @@ CREATE VIEW v1 AS SELECT IFNULL(my_binary_30,'IS_NULL'), my_binary_30, id FROM t1_values; SELECT IFNULL(my_binary_30,'IS_NULL'), my_binary_30, id FROM t1_values -WHERE select_id = 125 OR select_id IS NULL; +WHERE select_id = 129 OR select_id IS NULL order by id; IFNULL(my_binary_30,'IS_NULL') my_binary_30 id IS_NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_binary_30`,_latin1'IS_NULL') AS `IFNULL(my_binary_30,'IS_NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 125 OR select_id IS NULL); +WHERE select_id = 129 OR select_id IS NULL) order by id; IFNULL(my_binary_30,'IS_NULL') my_binary_30 id IS_NULL NULL 1 2 @@ -1435,7 +1481,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_varchar_1000,'IS_NULL'), my_varchar_1000, id FROM t1_values; SELECT IFNULL(my_varchar_1000,'IS_NULL'), my_varchar_1000, id FROM t1_values -WHERE select_id = 124 OR select_id IS NULL; +WHERE select_id = 128 OR select_id IS NULL order by id; IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id IS_NULL NULL 1 2 @@ -1447,7 +1493,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varchar_1000`,_latin1'IS_NULL') AS `IFNULL(my_varchar_1000,'IS_NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 124 OR select_id IS NULL); +WHERE select_id = 128 OR select_id IS NULL) order by id; IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id IS_NULL NULL 1 2 @@ -1461,7 +1507,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_char_30,'IS_NULL'), my_char_30, id FROM t1_values; SELECT IFNULL(my_char_30,'IS_NULL'), my_char_30, id FROM t1_values -WHERE select_id = 123 OR select_id IS NULL; +WHERE select_id = 127 OR select_id IS NULL order by id; IFNULL(my_char_30,'IS_NULL') my_char_30 id IS_NULL NULL 1 2 @@ -1473,7 +1519,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_char_30`,_latin1'IS_NULL') AS `IFNULL(my_char_30,'IS_NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 123 OR select_id IS NULL); +WHERE select_id = 127 OR select_id IS NULL) order by id; IFNULL(my_char_30,'IS_NULL') my_char_30 id IS_NULL NULL 1 2 @@ -1487,7 +1533,7 @@ CREATE VIEW v1 AS SELECT IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL'), my_year, id FROM t1_values; SELECT IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL'), my_year, id FROM t1_values -WHERE select_id = 122 OR select_id IS NULL; +WHERE select_id = 126 OR select_id IS NULL order by id; IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL') my_year id IS NULL NULL 1 @@ -1501,7 +1547,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 122 OR select_id IS NULL); +WHERE select_id = 126 OR select_id IS NULL) order by id; IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL') my_year id IS NULL NULL 1 @@ -1516,7 +1562,7 @@ CREATE VIEW v1 AS SELECT IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL'), my_time, id FROM t1_values; SELECT IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL'), my_time, id FROM t1_values -WHERE select_id = 121 OR select_id IS NULL; +WHERE select_id = 125 OR select_id IS NULL order by id; IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL') my_time id IS NULL NULL 1 @@ -1530,7 +1576,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 121 OR select_id IS NULL); +WHERE select_id = 125 OR select_id IS NULL) order by id; IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL') my_time id IS NULL NULL 1 @@ -1545,7 +1591,7 @@ CREATE VIEW v1 AS SELECT IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL'), my_timestamp, id FROM t1_values; SELECT IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL'), my_timestamp, id FROM t1_values -WHERE select_id = 120 OR select_id IS NULL; +WHERE select_id = 124 OR select_id IS NULL order by id; IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL') my_timestamp id IS NOT NULL 0000-00-00 00:00:00 1 @@ -1559,7 +1605,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 120 OR select_id IS NULL); +WHERE select_id = 124 OR select_id IS NULL) order by id; IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL') my_timestamp id IS NOT NULL 0000-00-00 00:00:00 1 @@ -1574,7 +1620,7 @@ CREATE VIEW v1 AS SELECT IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL'), my_date, id FROM t1_values; SELECT IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL'), my_date, id FROM t1_values -WHERE select_id = 119 OR select_id IS NULL; +WHERE select_id = 123 OR select_id IS NULL order by id; IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL') my_date id IS NULL NULL 1 @@ -1588,7 +1634,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 119 OR select_id IS NULL); +WHERE select_id = 123 OR select_id IS NULL) order by id; IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL') my_date id IS NULL NULL 1 @@ -1603,7 +1649,7 @@ CREATE VIEW v1 AS SELECT IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL'), my_datetime, id FROM t1_values; SELECT IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL'), my_datetime, id FROM t1_values -WHERE select_id = 118 OR select_id IS NULL; +WHERE select_id = 122 OR select_id IS NULL order by id; IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL') my_datetime id IS NULL NULL 1 @@ -1617,7 +1663,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 118 OR select_id IS NULL); +WHERE select_id = 122 OR select_id IS NULL) order by id; IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL') my_datetime id IS NULL NULL 1 @@ -1632,7 +1678,7 @@ CREATE VIEW v1 AS SELECT IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL'), my_double, id FROM t1_values; SELECT IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL'), my_double, id FROM t1_values -WHERE select_id = 117 OR select_id IS NULL; +WHERE select_id = 121 OR select_id IS NULL order by id; IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL') my_double id IS NULL NULL 1 @@ -1646,7 +1692,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 117 OR select_id IS NULL); +WHERE select_id = 121 OR select_id IS NULL) order by id; IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL') my_double id IS NULL NULL 1 @@ -1661,7 +1707,7 @@ CREATE VIEW v1 AS SELECT IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL'), my_decimal, id FROM t1_values; SELECT IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL'), my_decimal, id FROM t1_values -WHERE select_id = 116 OR select_id IS NULL; +WHERE select_id = 120 OR select_id IS NULL order by id; IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL') my_decimal id IS NULL NULL 1 @@ -1675,7 +1721,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 116 OR select_id IS NULL); +WHERE select_id = 120 OR select_id IS NULL) order by id; IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL') my_decimal id IS NULL NULL 1 @@ -1690,7 +1736,7 @@ CREATE VIEW v1 AS SELECT IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL'), my_bigint, id FROM t1_values; SELECT IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL'), my_bigint, id FROM t1_values -WHERE select_id = 115 OR select_id IS NULL; +WHERE select_id = 119 OR select_id IS NULL order by id; IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL') my_bigint id IS NULL NULL 1 @@ -1704,7 +1750,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 115 OR select_id IS NULL); +WHERE select_id = 119 OR select_id IS NULL) order by id; IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL') my_bigint id IS NULL NULL 1 @@ -1719,7 +1765,7 @@ CREATE VIEW v1 AS SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varbinary_1000, id FROM t1_values; SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 114 OR select_id IS NULL; +WHERE select_id = 118 OR select_id IS NULL order by id; IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varbinary_1000 id IS NULL NULL 1 @@ -1733,7 +1779,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 114 OR select_id IS NULL); +WHERE select_id = 118 OR select_id IS NULL) order by id; IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varbinary_1000 id IS NULL NULL 1 @@ -1748,21 +1794,21 @@ CREATE VIEW v1 AS SELECT IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_binary_30, id FROM t1_values; SELECT IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_binary_30, id FROM t1_values -WHERE select_id = 113 OR select_id IS NULL; +WHERE select_id = 117 OR select_id IS NULL order by id; IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_binary_30 id IS NULL NULL 1 -IS NOT NULL 2 +IS NOT NULL 2 IS NOT NULL <--------30 characters-------> 3 -IS NOT NULL ---äÖüß@µ*$-- 4 -IS NOT NULL -1 5 +IS NOT NULL ---äÖüß@µ*$-- 4 +IS NOT NULL -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_binary_30`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 113 OR select_id IS NULL); +WHERE select_id = 117 OR select_id IS NULL) order by id; IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_binary_30 id IS NULL NULL 1 @@ -1777,7 +1823,7 @@ CREATE VIEW v1 AS SELECT IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varchar_1000, id FROM t1_values; SELECT IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varchar_1000, id FROM t1_values -WHERE select_id = 112 OR select_id IS NULL; +WHERE select_id = 116 OR select_id IS NULL order by id; IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varchar_1000 id IS NULL NULL 1 @@ -1791,7 +1837,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 112 OR select_id IS NULL); +WHERE select_id = 116 OR select_id IS NULL) order by id; IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varchar_1000 id IS NULL NULL 1 @@ -1806,7 +1852,7 @@ CREATE VIEW v1 AS SELECT IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_char_30, id FROM t1_values; SELECT IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_char_30, id FROM t1_values -WHERE select_id = 111 OR select_id IS NULL; +WHERE select_id = 115 OR select_id IS NULL order by id; IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_char_30 id IS NULL NULL 1 @@ -1820,7 +1866,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 111 OR select_id IS NULL); +WHERE select_id = 115 OR select_id IS NULL) order by id; IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_char_30 id IS NULL NULL 1 @@ -1835,7 +1881,7 @@ CREATE VIEW v1 AS SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'), my_year, id FROM t1_values; SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'), my_year, id FROM t1_values -WHERE select_id = 110 OR select_id IS NULL; +WHERE select_id = 114 OR select_id IS NULL order by id; IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id IS NOT TRUE NULL 1 IS TRUE 1901 2 @@ -1847,7 +1893,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_year`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_year, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 110 OR select_id IS NULL); +WHERE select_id = 114 OR select_id IS NULL) order by id; IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id IS NOT TRUE NULL 1 IS TRUE 1901 2 @@ -1861,7 +1907,7 @@ CREATE VIEW v1 AS SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'), my_time, id FROM t1_values; SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'), my_time, id FROM t1_values -WHERE select_id = 109 OR select_id IS NULL; +WHERE select_id = 113 OR select_id IS NULL order by id; IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id IS NOT TRUE NULL 1 IS TRUE -838:59:59 2 @@ -1873,7 +1919,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_time`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_time, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 109 OR select_id IS NULL); +WHERE select_id = 113 OR select_id IS NULL) order by id; IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id IS NOT TRUE NULL 1 IS TRUE -838:59:59 2 @@ -1887,7 +1933,7 @@ CREATE VIEW v1 AS SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'), my_timestamp, id FROM t1_values; SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'), my_timestamp, id FROM t1_values -WHERE select_id = 108 OR select_id IS NULL; +WHERE select_id = 112 OR select_id IS NULL order by id; IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id IS NOT TRUE 0000-00-00 00:00:00 1 IS TRUE 1970-01-01 03:00:01 2 @@ -1899,7 +1945,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_timestamp`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 108 OR select_id IS NULL); +WHERE select_id = 112 OR select_id IS NULL) order by id; IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id IS NOT TRUE 0000-00-00 00:00:00 1 IS TRUE 1970-01-01 03:00:01 2 @@ -1913,7 +1959,7 @@ CREATE VIEW v1 AS SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'), my_date, id FROM t1_values; SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'), my_date, id FROM t1_values -WHERE select_id = 107 OR select_id IS NULL; +WHERE select_id = 111 OR select_id IS NULL order by id; IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 2 @@ -1925,7 +1971,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_date`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_date, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 107 OR select_id IS NULL); +WHERE select_id = 111 OR select_id IS NULL) order by id; IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 2 @@ -1939,7 +1985,7 @@ CREATE VIEW v1 AS SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'), my_datetime, id FROM t1_values; SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'), my_datetime, id FROM t1_values -WHERE select_id = 106 OR select_id IS NULL; +WHERE select_id = 110 OR select_id IS NULL order by id; IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 00:00:00 2 @@ -1951,7 +1997,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_datetime`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_datetime, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 106 OR select_id IS NULL); +WHERE select_id = 110 OR select_id IS NULL) order by id; IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 00:00:00 2 @@ -1965,7 +2011,7 @@ CREATE VIEW v1 AS SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'), my_double, id FROM t1_values; SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'), my_double, id FROM t1_values -WHERE select_id = 105 OR select_id IS NULL; +WHERE select_id = 109 OR select_id IS NULL order by id; IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id IS NOT TRUE NULL 1 IS TRUE -1.7976931348623e+308 2 @@ -1977,7 +2023,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_double`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_double, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 105 OR select_id IS NULL); +WHERE select_id = 109 OR select_id IS NULL) order by id; IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id IS NOT TRUE NULL 1 IS TRUE -1.7976931348623e+308 2 @@ -1991,7 +2037,7 @@ CREATE VIEW v1 AS SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'), my_decimal, id FROM t1_values; SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'), my_decimal, id FROM t1_values -WHERE select_id = 104 OR select_id IS NULL; +WHERE select_id = 108 OR select_id IS NULL order by id; IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id IS NOT TRUE NULL 1 IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2003,7 +2049,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_decimal`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_decimal, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 104 OR select_id IS NULL); +WHERE select_id = 108 OR select_id IS NULL) order by id; IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id IS NOT TRUE NULL 1 IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2017,7 +2063,7 @@ CREATE VIEW v1 AS SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'), my_bigint, id FROM t1_values; SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'), my_bigint, id FROM t1_values -WHERE select_id = 103 OR select_id IS NULL; +WHERE select_id = 107 OR select_id IS NULL order by id; IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id IS NOT TRUE NULL 1 IS TRUE -9223372036854775808 2 @@ -2029,7 +2075,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_bigint`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_bigint, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 103 OR select_id IS NULL); +WHERE select_id = 107 OR select_id IS NULL) order by id; IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id IS NOT TRUE NULL 1 IS TRUE -9223372036854775808 2 @@ -2043,7 +2089,7 @@ CREATE VIEW v1 AS SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'), my_varbinary_1000, id FROM t1_values; SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 102 OR select_id IS NULL; +WHERE select_id = 106 OR select_id IS NULL order by id; IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2055,7 +2101,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varbinary_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 102 OR select_id IS NULL); +WHERE select_id = 106 OR select_id IS NULL) order by id; IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2069,13 +2115,13 @@ CREATE VIEW v1 AS SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'), my_binary_30, id FROM t1_values; SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'), my_binary_30, id FROM t1_values -WHERE select_id = 101 OR select_id IS NULL; +WHERE select_id = 105 OR select_id IS NULL order by id; IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id IS NOT TRUE NULL 1 -IS NOT TRUE 2 +IS NOT TRUE 2 IS NOT TRUE <--------30 characters-------> 3 -IS NOT TRUE ---äÖüß@µ*$-- 4 -IS TRUE -1 5 +IS NOT TRUE ---äÖüß@µ*$-- 4 +IS TRUE -1 5 Warnings: Warning 1292 Truncated incorrect DOUBLE value: '' Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->' @@ -2086,7 +2132,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_binary_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 101 OR select_id IS NULL); +WHERE select_id = 105 OR select_id IS NULL) order by id; IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2105,7 +2151,7 @@ CREATE VIEW v1 AS SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'), my_varchar_1000, id FROM t1_values; SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'), my_varchar_1000, id FROM t1_values -WHERE select_id = 100 OR select_id IS NULL; +WHERE select_id = 104 OR select_id IS NULL order by id; IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2117,7 +2163,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varchar_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 100 OR select_id IS NULL); +WHERE select_id = 104 OR select_id IS NULL) order by id; IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2131,7 +2177,7 @@ CREATE VIEW v1 AS SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'), my_char_30, id FROM t1_values; SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'), my_char_30, id FROM t1_values -WHERE select_id = 99 OR select_id IS NULL; +WHERE select_id = 103 OR select_id IS NULL order by id; IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2146,7 +2192,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_char_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_char_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 99 OR select_id IS NULL); +WHERE select_id = 103 OR select_id IS NULL) order by id; IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2159,11 +2205,11 @@ Warning 1292 Truncated incorrect DOUBLE value: ' --- DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values; -SELECT CONVERT(my_varbinary_1000 USING koi8r), +SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values -WHERE select_id = 98 OR select_id IS NULL; +WHERE select_id = 102 OR select_id IS NULL order by id; CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id NULL NULL 1 2 @@ -2175,7 +2221,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using koi8r) AS `CONVERT(my_varbinary_1000 USING koi8r)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 98 OR select_id IS NULL); +WHERE select_id = 102 OR select_id IS NULL) order by id; CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id NULL NULL 1 2 @@ -2185,23 +2231,23 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values; -SELECT CONVERT(my_binary_30 USING koi8r), +SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values -WHERE select_id = 97 OR select_id IS NULL; +WHERE select_id = 101 OR select_id IS NULL order by id; CONVERT(my_binary_30 USING koi8r) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---???????@??*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---???????@??*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using koi8r) AS `CONVERT(my_binary_30 USING koi8r)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 97 OR select_id IS NULL); +WHERE select_id = 101 OR select_id IS NULL) order by id; CONVERT(my_binary_30 USING koi8r) my_binary_30 id NULL NULL 1 2 @@ -2211,11 +2257,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values; -SELECT CONVERT(my_varchar_1000 USING koi8r), +SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values -WHERE select_id = 96 OR select_id IS NULL; +WHERE select_id = 100 OR select_id IS NULL order by id; CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id NULL NULL 1 2 @@ -2227,7 +2273,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using koi8r) AS `CONVERT(my_varchar_1000 USING koi8r)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 96 OR select_id IS NULL); +WHERE select_id = 100 OR select_id IS NULL) order by id; CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id NULL NULL 1 2 @@ -2237,11 +2283,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values; -SELECT CONVERT(my_char_30 USING koi8r), +SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values -WHERE select_id = 95 OR select_id IS NULL; +WHERE select_id = 99 OR select_id IS NULL order by id; CONVERT(my_char_30 USING koi8r) my_char_30 id NULL NULL 1 2 @@ -2253,7 +2299,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using koi8r) AS `CONVERT(my_char_30 USING koi8r)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 95 OR select_id IS NULL); +WHERE select_id = 99 OR select_id IS NULL) order by id; CONVERT(my_char_30 USING koi8r) my_char_30 id NULL NULL 1 2 @@ -2263,11 +2309,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values; -SELECT CONVERT(my_varbinary_1000 USING utf8), +SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values -WHERE select_id = 94 OR select_id IS NULL; +WHERE select_id = 98 OR select_id IS NULL order by id; CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id NULL NULL 1 2 @@ -2279,7 +2325,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using utf8) AS `CONVERT(my_varbinary_1000 USING utf8)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 94 OR select_id IS NULL); +WHERE select_id = 98 OR select_id IS NULL) order by id; CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id NULL NULL 1 2 @@ -2289,23 +2335,23 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values; -SELECT CONVERT(my_binary_30 USING utf8), +SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values -WHERE select_id = 93 OR select_id IS NULL; +WHERE select_id = 97 OR select_id IS NULL order by id; CONVERT(my_binary_30 USING utf8) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---@*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---@*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using utf8) AS `CONVERT(my_binary_30 USING utf8)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 93 OR select_id IS NULL); +WHERE select_id = 97 OR select_id IS NULL) order by id; CONVERT(my_binary_30 USING utf8) my_binary_30 id NULL NULL 1 2 @@ -2315,11 +2361,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values; -SELECT CONVERT(my_varchar_1000 USING utf8), +SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values -WHERE select_id = 92 OR select_id IS NULL; +WHERE select_id = 96 OR select_id IS NULL order by id; CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id NULL NULL 1 2 @@ -2331,7 +2377,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using utf8) AS `CONVERT(my_varchar_1000 USING utf8)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 92 OR select_id IS NULL); +WHERE select_id = 96 OR select_id IS NULL) order by id; CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id NULL NULL 1 2 @@ -2341,11 +2387,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values; -SELECT CONVERT(my_char_30 USING utf8), +SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values -WHERE select_id = 91 OR select_id IS NULL; +WHERE select_id = 95 OR select_id IS NULL order by id; CONVERT(my_char_30 USING utf8) my_char_30 id NULL NULL 1 2 @@ -2357,7 +2403,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using utf8) AS `CONVERT(my_char_30 USING utf8)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 91 OR select_id IS NULL); +WHERE select_id = 95 OR select_id IS NULL) order by id; CONVERT(my_char_30 USING utf8) my_char_30 id NULL NULL 1 2 @@ -2371,7 +2417,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS UNSIGNED INTEGER), my_year, id FROM t1_values; SELECT CAST(my_year AS UNSIGNED INTEGER), my_year, id FROM t1_values -WHERE select_id = 90 OR select_id IS NULL; +WHERE select_id = 94 OR select_id IS NULL order by id; CAST(my_year AS UNSIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2383,7 +2429,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as unsigned) AS `CAST(my_year AS UNSIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 90 OR select_id IS NULL); +WHERE select_id = 94 OR select_id IS NULL) order by id; CAST(my_year AS UNSIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2397,7 +2443,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS UNSIGNED INTEGER), my_time, id FROM t1_values; SELECT CAST(my_time AS UNSIGNED INTEGER), my_time, id FROM t1_values -WHERE select_id = 89 OR select_id IS NULL; +WHERE select_id = 93 OR select_id IS NULL order by id; CAST(my_time AS UNSIGNED INTEGER) my_time id NULL NULL 1 18446744073701165657 -838:59:59 2 @@ -2409,7 +2455,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 89 OR select_id IS NULL); +WHERE select_id = 93 OR select_id IS NULL) order by id; CAST(my_time AS UNSIGNED INTEGER) my_time id NULL NULL 1 18446744073701165657 -838:59:59 2 @@ -2423,7 +2469,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS UNSIGNED INTEGER), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS UNSIGNED INTEGER), my_timestamp, id FROM t1_values -WHERE select_id = 88 OR select_id IS NULL; +WHERE select_id = 92 OR select_id IS NULL order by id; CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2435,7 +2481,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 88 OR select_id IS NULL); +WHERE select_id = 92 OR select_id IS NULL) order by id; CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2449,7 +2495,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS UNSIGNED INTEGER), my_date, id FROM t1_values; SELECT CAST(my_date AS UNSIGNED INTEGER), my_date, id FROM t1_values -WHERE select_id = 87 OR select_id IS NULL; +WHERE select_id = 91 OR select_id IS NULL order by id; CAST(my_date AS UNSIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2461,7 +2507,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 87 OR select_id IS NULL); +WHERE select_id = 91 OR select_id IS NULL) order by id; CAST(my_date AS UNSIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2475,7 +2521,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS UNSIGNED INTEGER), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS UNSIGNED INTEGER), my_datetime, id FROM t1_values -WHERE select_id = 86 OR select_id IS NULL; +WHERE select_id = 90 OR select_id IS NULL order by id; CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2487,7 +2533,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 86 OR select_id IS NULL); +WHERE select_id = 90 OR select_id IS NULL) order by id; CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2497,11 +2543,43 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS UNSIGNED INTEGER), +my_double, id FROM t1_values; +SELECT CAST(my_double AS UNSIGNED INTEGER), +my_double, id FROM t1_values +WHERE select_id = 89 OR select_id IS NULL order by id; +CAST(my_double AS UNSIGNED INTEGER) my_double id +NULL NULL 1 +9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +18446744073709551615 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as unsigned) AS `CAST(my_double AS UNSIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 89 OR select_id IS NULL) order by id; +CAST(my_double AS UNSIGNED INTEGER) my_double id +NULL NULL 1 +9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +18446744073709551615 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS UNSIGNED INTEGER), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS UNSIGNED INTEGER), my_decimal, id FROM t1_values -WHERE select_id = 85 OR select_id IS NULL; +WHERE select_id = 88 OR select_id IS NULL order by id; CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id NULL NULL 1 0 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2517,7 +2595,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as unsigned) AS `CAST(my_decimal AS UNSIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 85 OR select_id IS NULL); +WHERE select_id = 88 OR select_id IS NULL) order by id; CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id NULL NULL 1 0 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2535,7 +2613,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS UNSIGNED INTEGER), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS UNSIGNED INTEGER), my_bigint, id FROM t1_values -WHERE select_id = 84 OR select_id IS NULL; +WHERE select_id = 87 OR select_id IS NULL order by id; CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id NULL NULL 1 9223372036854775808 -9223372036854775808 2 @@ -2547,7 +2625,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as unsigned) AS `CAST(my_bigint AS UNSIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 84 OR select_id IS NULL); +WHERE select_id = 87 OR select_id IS NULL) order by id; CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id NULL NULL 1 9223372036854775808 -9223372036854775808 2 @@ -2561,7 +2639,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER), my_varbinary_1000, id FROM t1_values -WHERE select_id = 83 OR select_id IS NULL; +WHERE select_id = 86 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2578,7 +2656,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as unsigned) AS `CAST(my_varbinary_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 83 OR select_id IS NULL); +WHERE select_id = 86 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2597,13 +2675,13 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS UNSIGNED INTEGER), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS UNSIGNED INTEGER), my_binary_30, id FROM t1_values -WHERE select_id = 82 OR select_id IS NULL; +WHERE select_id = 85 OR select_id IS NULL order by id; CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id NULL NULL 1 -0 2 +0 2 0 <--------30 characters-------> 3 -0 ---äÖüß@µ*$-- 4 -18446744073709551615 -1 5 +0 ---äÖüß@µ*$-- 4 +18446744073709551615 -1 5 Warnings: Warning 1292 Truncated incorrect INTEGER value: '' Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->' @@ -2615,7 +2693,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as unsigned) AS `CAST(my_binary_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 82 OR select_id IS NULL); +WHERE select_id = 85 OR select_id IS NULL) order by id; CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id NULL NULL 1 0 2 @@ -2635,7 +2713,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER), my_varchar_1000, id FROM t1_values -WHERE select_id = 81 OR select_id IS NULL; +WHERE select_id = 84 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2652,7 +2730,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as unsigned) AS `CAST(my_varchar_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 81 OR select_id IS NULL); +WHERE select_id = 84 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2671,7 +2749,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS UNSIGNED INTEGER), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS UNSIGNED INTEGER), my_char_30, id FROM t1_values -WHERE select_id = 80 OR select_id IS NULL; +WHERE select_id = 83 OR select_id IS NULL order by id; CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -2688,7 +2766,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as unsigned) AS `CAST(my_char_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 80 OR select_id IS NULL); +WHERE select_id = 83 OR select_id IS NULL) order by id; CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -2707,7 +2785,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS SIGNED INTEGER), my_year, id FROM t1_values; SELECT CAST(my_year AS SIGNED INTEGER), my_year, id FROM t1_values -WHERE select_id = 79 OR select_id IS NULL; +WHERE select_id = 82 OR select_id IS NULL order by id; CAST(my_year AS SIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2719,7 +2797,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as signed) AS `CAST(my_year AS SIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 79 OR select_id IS NULL); +WHERE select_id = 82 OR select_id IS NULL) order by id; CAST(my_year AS SIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2733,7 +2811,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS SIGNED INTEGER), my_time, id FROM t1_values; SELECT CAST(my_time AS SIGNED INTEGER), my_time, id FROM t1_values -WHERE select_id = 78 OR select_id IS NULL; +WHERE select_id = 81 OR select_id IS NULL order by id; CAST(my_time AS SIGNED INTEGER) my_time id NULL NULL 1 -8385959 -838:59:59 2 @@ -2745,7 +2823,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 78 OR select_id IS NULL); +WHERE select_id = 81 OR select_id IS NULL) order by id; CAST(my_time AS SIGNED INTEGER) my_time id NULL NULL 1 -8385959 -838:59:59 2 @@ -2759,7 +2837,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS SIGNED INTEGER), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS SIGNED INTEGER), my_timestamp, id FROM t1_values -WHERE select_id = 77 OR select_id IS NULL; +WHERE select_id = 80 OR select_id IS NULL order by id; CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2771,7 +2849,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 77 OR select_id IS NULL); +WHERE select_id = 80 OR select_id IS NULL) order by id; CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2785,7 +2863,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS SIGNED INTEGER), my_date, id FROM t1_values; SELECT CAST(my_date AS SIGNED INTEGER), my_date, id FROM t1_values -WHERE select_id = 76 OR select_id IS NULL; +WHERE select_id = 79 OR select_id IS NULL order by id; CAST(my_date AS SIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2797,7 +2875,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 76 OR select_id IS NULL); +WHERE select_id = 79 OR select_id IS NULL) order by id; CAST(my_date AS SIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2811,7 +2889,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS SIGNED INTEGER), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS SIGNED INTEGER), my_datetime, id FROM t1_values -WHERE select_id = 75 OR select_id IS NULL; +WHERE select_id = 78 OR select_id IS NULL order by id; CAST(my_datetime AS SIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2823,7 +2901,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 75 OR select_id IS NULL); +WHERE select_id = 78 OR select_id IS NULL) order by id; CAST(my_datetime AS SIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2833,11 +2911,43 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS SIGNED INTEGER), +my_double, id FROM t1_values; +SELECT CAST(my_double AS SIGNED INTEGER), +my_double, id FROM t1_values +WHERE select_id = 77 OR select_id IS NULL order by id; +CAST(my_double AS SIGNED INTEGER) my_double id +NULL NULL 1 +-9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +-1 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as signed) AS `CAST(my_double AS SIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 77 OR select_id IS NULL) order by id; +CAST(my_double AS SIGNED INTEGER) my_double id +NULL NULL 1 +-9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +-1 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS SIGNED INTEGER), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS SIGNED INTEGER), my_decimal, id FROM t1_values -WHERE select_id = 74 OR select_id IS NULL; +WHERE select_id = 76 OR select_id IS NULL order by id; CAST(my_decimal AS SIGNED INTEGER) my_decimal id NULL NULL 1 -9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2852,7 +2962,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as signed) AS `CAST(my_decimal AS SIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 74 OR select_id IS NULL); +WHERE select_id = 76 OR select_id IS NULL) order by id; CAST(my_decimal AS SIGNED INTEGER) my_decimal id NULL NULL 1 -9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2869,7 +2979,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS SIGNED INTEGER), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS SIGNED INTEGER), my_bigint, id FROM t1_values -WHERE select_id = 73 OR select_id IS NULL; +WHERE select_id = 75 OR select_id IS NULL order by id; CAST(my_bigint AS SIGNED INTEGER) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -2881,7 +2991,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as signed) AS `CAST(my_bigint AS SIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 73 OR select_id IS NULL); +WHERE select_id = 75 OR select_id IS NULL) order by id; CAST(my_bigint AS SIGNED INTEGER) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -2895,7 +3005,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER), my_varbinary_1000, id FROM t1_values -WHERE select_id = 72 OR select_id IS NULL; +WHERE select_id = 74 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2911,7 +3021,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as signed) AS `CAST(my_varbinary_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 72 OR select_id IS NULL); +WHERE select_id = 74 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2929,13 +3039,13 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS SIGNED INTEGER), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS SIGNED INTEGER), my_binary_30, id FROM t1_values -WHERE select_id = 71 OR select_id IS NULL; +WHERE select_id = 73 OR select_id IS NULL order by id; CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id NULL NULL 1 -0 2 +0 2 0 <--------30 characters-------> 3 -0 ---äÖüß@µ*$-- 4 --1 -1 5 +0 ---äÖüß@µ*$-- 4 +-1 -1 5 Warnings: Warning 1292 Truncated incorrect INTEGER value: '' Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->' @@ -2946,7 +3056,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as signed) AS `CAST(my_binary_30 AS SIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 71 OR select_id IS NULL); +WHERE select_id = 73 OR select_id IS NULL) order by id; CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id NULL NULL 1 0 2 @@ -2965,7 +3075,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS SIGNED INTEGER), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS SIGNED INTEGER), my_varchar_1000, id FROM t1_values -WHERE select_id = 70 OR select_id IS NULL; +WHERE select_id = 72 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2981,7 +3091,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as signed) AS `CAST(my_varchar_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 70 OR select_id IS NULL); +WHERE select_id = 72 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2999,7 +3109,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS SIGNED INTEGER), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS SIGNED INTEGER), my_char_30, id FROM t1_values -WHERE select_id = 69 OR select_id IS NULL; +WHERE select_id = 71 OR select_id IS NULL order by id; CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -3015,7 +3125,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as signed) AS `CAST(my_char_30 AS SIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 69 OR select_id IS NULL); +WHERE select_id = 71 OR select_id IS NULL) order by id; CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -3033,7 +3143,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)), my_year, id FROM t1_values; SELECT CAST(my_year AS DECIMAL(37,2)), my_year, id FROM t1_values -WHERE select_id = 68 OR select_id IS NULL; +WHERE select_id = 70 OR select_id IS NULL order by id; CAST(my_year AS DECIMAL(37,2)) my_year id NULL NULL 1 1901.00 1901 2 @@ -3045,7 +3155,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal(37,2)) AS `CAST(my_year AS DECIMAL(37,2))`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 68 OR select_id IS NULL); +WHERE select_id = 70 OR select_id IS NULL) order by id; CAST(my_year AS DECIMAL(37,2)) my_year id NULL NULL 1 1901.00 1901 2 @@ -3059,7 +3169,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL(37,2)), my_time, id FROM t1_values; SELECT CAST(my_time AS DECIMAL(37,2)), my_time, id FROM t1_values -WHERE select_id = 67 OR select_id IS NULL; +WHERE select_id = 69 OR select_id IS NULL order by id; CAST(my_time AS DECIMAL(37,2)) my_time id NULL NULL 1 -8385959.00 -838:59:59 2 @@ -3071,7 +3181,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal(37,2)) AS `CAST(my_time AS DECIMAL(37,2))`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 67 OR select_id IS NULL); +WHERE select_id = 69 OR select_id IS NULL) order by id; CAST(my_time AS DECIMAL(37,2)) my_time id NULL NULL 1 -8385959.00 -838:59:59 2 @@ -3085,7 +3195,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL(37,2)), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DECIMAL(37,2)), my_timestamp, id FROM t1_values -WHERE select_id = 66 OR select_id IS NULL; +WHERE select_id = 68 OR select_id IS NULL order by id; CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id 0.00 0000-00-00 00:00:00 1 19700101030001.00 1970-01-01 03:00:01 2 @@ -3097,7 +3207,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal(37,2)) AS `CAST(my_timestamp AS DECIMAL(37,2))`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 66 OR select_id IS NULL); +WHERE select_id = 68 OR select_id IS NULL) order by id; CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id 0.00 0000-00-00 00:00:00 1 19700101030001.00 1970-01-01 03:00:01 2 @@ -3111,7 +3221,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL(37,2)), my_date, id FROM t1_values; SELECT CAST(my_date AS DECIMAL(37,2)), my_date, id FROM t1_values -WHERE select_id = 65 OR select_id IS NULL; +WHERE select_id = 67 OR select_id IS NULL order by id; CAST(my_date AS DECIMAL(37,2)) my_date id NULL NULL 1 10101.00 0001-01-01 2 @@ -3123,7 +3233,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal(37,2)) AS `CAST(my_date AS DECIMAL(37,2))`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 65 OR select_id IS NULL); +WHERE select_id = 67 OR select_id IS NULL) order by id; CAST(my_date AS DECIMAL(37,2)) my_date id NULL NULL 1 10101.00 0001-01-01 2 @@ -3137,7 +3247,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL(37,2)), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DECIMAL(37,2)), my_datetime, id FROM t1_values -WHERE select_id = 64 OR select_id IS NULL; +WHERE select_id = 66 OR select_id IS NULL order by id; CAST(my_datetime AS DECIMAL(37,2)) my_datetime id NULL NULL 1 10101000000.00 0001-01-01 00:00:00 2 @@ -3149,7 +3259,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal(37,2)) AS `CAST(my_datetime AS DECIMAL(37,2))`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 64 OR select_id IS NULL); +WHERE select_id = 66 OR select_id IS NULL) order by id; CAST(my_datetime AS DECIMAL(37,2)) my_datetime id NULL NULL 1 10101000000.00 0001-01-01 00:00:00 2 @@ -3159,11 +3269,49 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS DECIMAL(37,2)), +my_double, id FROM t1_values; +SELECT CAST(my_double AS DECIMAL(37,2)), +my_double, id FROM t1_values +WHERE select_id = 65 OR select_id IS NULL order by id; +CAST(my_double AS DECIMAL(37,2)) my_double id +NULL NULL 1 +-99999999999999999999999999999999999.99 -1.7976931348623e+308 2 +99999999999999999999999999999999999.99 1.7976931348623e+308 3 +0.00 0 4 +-1.00 -1 5 +-3333.33 -3333.3333 30 +Warnings: +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as decimal(37,2)) AS `CAST(my_double AS DECIMAL(37,2))`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 65 OR select_id IS NULL) order by id; +CAST(my_double AS DECIMAL(37,2)) my_double id +NULL NULL 1 +-99999999999999999999999999999999999.99 -1.7976931348623e+308 2 +99999999999999999999999999999999999.99 1.7976931348623e+308 3 +0.00 0 4 +-1.00 -1 5 +-3333.33 -3333.3333 30 +Warnings: +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL(37,2)), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS DECIMAL(37,2)), my_decimal, id FROM t1_values -WHERE select_id = 63 OR select_id IS NULL; +WHERE select_id = 64 OR select_id IS NULL order by id; CAST(my_decimal AS DECIMAL(37,2)) my_decimal id NULL NULL 1 -10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -3175,7 +3323,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal(37,2)) AS `CAST(my_decimal AS DECIMAL(37,2))`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 63 OR select_id IS NULL); +WHERE select_id = 64 OR select_id IS NULL) order by id; CAST(my_decimal AS DECIMAL(37,2)) my_decimal id NULL NULL 1 -10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -3189,7 +3337,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL(37,2)), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DECIMAL(37,2)), my_bigint, id FROM t1_values -WHERE select_id = 62 OR select_id IS NULL; +WHERE select_id = 63 OR select_id IS NULL order by id; CAST(my_bigint AS DECIMAL(37,2)) my_bigint id NULL NULL 1 -9223372036854775808.00 -9223372036854775808 2 @@ -3201,7 +3349,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal(37,2)) AS `CAST(my_bigint AS DECIMAL(37,2))`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 62 OR select_id IS NULL); +WHERE select_id = 63 OR select_id IS NULL) order by id; CAST(my_bigint AS DECIMAL(37,2)) my_bigint id NULL NULL 1 -9223372036854775808.00 -9223372036854775808 2 @@ -3215,14 +3363,14 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)), my_varbinary_1000, id FROM t1_values -WHERE select_id = 61 OR select_id IS NULL; +WHERE select_id = 62 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 28 +-3333.33 -3333.3333 29 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3232,14 +3380,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal(37,2)) AS `CAST(my_varbinary_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 61 OR select_id IS NULL); +WHERE select_id = 62 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 28 +-3333.33 -3333.3333 29 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3251,14 +3399,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL(37,2)), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DECIMAL(37,2)), my_binary_30, id FROM t1_values -WHERE select_id = 60 OR select_id IS NULL; +WHERE select_id = 61 OR select_id IS NULL order by id; CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id NULL NULL 1 -0.00 2 +0.00 2 0.00 <--------30 characters-------> 3 -0.00 ---äÖüß@µ*$-- 4 --1.00 -1 5 --3333.33 -3333.3333 27 +0.00 ---äÖüß@µ*$-- 4 +-1.00 -1 5 +-3333.33 -3333.3333 28 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: '' @@ -3273,14 +3421,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal(37,2)) AS `CAST(my_binary_30 AS DECIMAL(37,2))`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 60 OR select_id IS NULL); +WHERE select_id = 61 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 27 +-3333.33 -3333.3333 28 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: '' @@ -3297,14 +3445,14 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)), my_varchar_1000, id FROM t1_values -WHERE select_id = 59 OR select_id IS NULL; +WHERE select_id = 60 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 26 +-3333.33 -3333.3333 27 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3314,14 +3462,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal(37,2)) AS `CAST(my_varchar_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 59 OR select_id IS NULL); +WHERE select_id = 60 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 26 +-3333.33 -3333.3333 27 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3333,14 +3481,14 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL(37,2)), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DECIMAL(37,2)), my_char_30, id FROM t1_values -WHERE select_id = 58 OR select_id IS NULL; +WHERE select_id = 59 OR select_id IS NULL order by id; CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 25 +-3333.33 -3333.3333 26 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: ' ' @@ -3353,14 +3501,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal(37,2)) AS `CAST(my_char_30 AS DECIMAL(37,2))`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 58 OR select_id IS NULL); +WHERE select_id = 59 OR select_id IS NULL) order by id; CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 25 +-3333.33 -3333.3333 26 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: ' ' @@ -3375,7 +3523,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS TIME), my_year, id FROM t1_values; SELECT CAST(my_year AS TIME), my_year, id FROM t1_values -WHERE select_id = 57 OR select_id IS NULL; +WHERE select_id = 58 OR select_id IS NULL order by id; CAST(my_year AS TIME) my_year id NULL NULL 1 00:19:01 1901 2 @@ -3387,7 +3535,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as time) AS `CAST(my_year AS TIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 57 OR select_id IS NULL); +WHERE select_id = 58 OR select_id IS NULL) order by id; CAST(my_year AS TIME) my_year id NULL NULL 1 00:19:01 1901 2 @@ -3401,7 +3549,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS TIME), my_time, id FROM t1_values; SELECT CAST(my_time AS TIME), my_time, id FROM t1_values -WHERE select_id = 56 OR select_id IS NULL; +WHERE select_id = 57 OR select_id IS NULL order by id; CAST(my_time AS TIME) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -3413,7 +3561,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as time) AS `CAST(my_time AS TIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 56 OR select_id IS NULL); +WHERE select_id = 57 OR select_id IS NULL) order by id; CAST(my_time AS TIME) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -3427,7 +3575,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS TIME), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS TIME), my_timestamp, id FROM t1_values -WHERE select_id = 55 OR select_id IS NULL; +WHERE select_id = 56 OR select_id IS NULL order by id; CAST(my_timestamp AS TIME) my_timestamp id 00:00:00 0000-00-00 00:00:00 1 03:00:01 1970-01-01 03:00:01 2 @@ -3439,7 +3587,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as time) AS `CAST(my_timestamp AS TIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 55 OR select_id IS NULL); +WHERE select_id = 56 OR select_id IS NULL) order by id; CAST(my_timestamp AS TIME) my_timestamp id 00:00:00 0000-00-00 00:00:00 1 03:00:01 1970-01-01 03:00:01 2 @@ -3453,7 +3601,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS TIME), my_date, id FROM t1_values; SELECT CAST(my_date AS TIME), my_date, id FROM t1_values -WHERE select_id = 54 OR select_id IS NULL; +WHERE select_id = 55 OR select_id IS NULL order by id; CAST(my_date AS TIME) my_date id NULL NULL 1 00:00:00 0001-01-01 2 @@ -3465,7 +3613,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as time) AS `CAST(my_date AS TIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 54 OR select_id IS NULL); +WHERE select_id = 55 OR select_id IS NULL) order by id; CAST(my_date AS TIME) my_date id NULL NULL 1 00:00:00 0001-01-01 2 @@ -3479,7 +3627,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS TIME), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS TIME), my_datetime, id FROM t1_values -WHERE select_id = 53 OR select_id IS NULL; +WHERE select_id = 54 OR select_id IS NULL order by id; CAST(my_datetime AS TIME) my_datetime id NULL NULL 1 00:00:00 0001-01-01 00:00:00 2 @@ -3491,7 +3639,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as time) AS `CAST(my_datetime AS TIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 53 OR select_id IS NULL); +WHERE select_id = 54 OR select_id IS NULL) order by id; CAST(my_datetime AS TIME) my_datetime id NULL NULL 1 00:00:00 0001-01-01 00:00:00 2 @@ -3501,11 +3649,45 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS TIME), +my_double, id FROM t1_values; +SELECT CAST(my_double AS TIME), +my_double, id FROM t1_values +WHERE select_id = 53 OR select_id IS NULL order by id; +CAST(my_double AS TIME) my_double id +NULL NULL 1 +NULL -1.7976931348623e+308 2 +NULL 1.7976931348623e+308 3 +00:00:00 0 4 +-00:00:01 -1 5 +00:17:58 1758 25 +Warnings: +Warning 1292 Truncated incorrect time value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect time value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as time) AS `CAST(my_double AS TIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 53 OR select_id IS NULL) order by id; +CAST(my_double AS TIME) my_double id +NULL NULL 1 +NULL -1.7976931348623e+308 2 +NULL 1.7976931348623e+308 3 +00:00:00 0 4 +-00:00:01 -1 5 +00:17:58 1758 25 +Warnings: +Warning 1292 Truncated incorrect time value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect time value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_bigint AS TIME), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS TIME), my_bigint, id FROM t1_values -WHERE select_id = 52 OR select_id IS NULL; +WHERE select_id = 52 OR select_id IS NULL order by id; CAST(my_bigint AS TIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3521,7 +3703,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as time) AS `CAST(my_bigint AS TIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 52 OR select_id IS NULL); +WHERE select_id = 52 OR select_id IS NULL) order by id; CAST(my_bigint AS TIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3539,7 +3721,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS TIME), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS TIME), my_varbinary_1000, id FROM t1_values -WHERE select_id = 51 OR select_id IS NULL; +WHERE select_id = 51 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3556,7 +3738,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as time) AS `CAST(my_varbinary_1000 AS TIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 51 OR select_id IS NULL); +WHERE select_id = 51 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3575,14 +3757,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS TIME), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS TIME), my_binary_30, id FROM t1_values -WHERE select_id = 50 OR select_id IS NULL; +WHERE select_id = 50 OR select_id IS NULL order by id; CAST(my_binary_30 AS TIME) my_binary_30 id NULL NULL 1 -00:00:00 2 +00:00:00 2 00:00:00 <--------30 characters-------> 3 --00:00:00 ---äÖüß@µ*$-- 4 -NULL -1 5 -41:58:00 1 17:58 22 +-00:00:00 ---äÖüß@µ*$-- 4 +NULL -1 5 +41:58:00 1 17:58 22 Warnings: Warning 1292 Truncated incorrect time value: '' Warning 1292 Truncated incorrect time value: '<--------30 characters------->' @@ -3594,7 +3776,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as time) AS `CAST(my_binary_30 AS TIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 50 OR select_id IS NULL); +WHERE select_id = 50 OR select_id IS NULL) order by id; CAST(my_binary_30 AS TIME) my_binary_30 id NULL NULL 1 00:00:00 2 @@ -3615,7 +3797,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS TIME), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS TIME), my_varchar_1000, id FROM t1_values -WHERE select_id = 49 OR select_id IS NULL; +WHERE select_id = 49 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS TIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -3632,7 +3814,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as time) AS `CAST(my_varchar_1000 AS TIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 49 OR select_id IS NULL); +WHERE select_id = 49 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS TIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -3651,7 +3833,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS TIME), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS TIME), my_char_30, id FROM t1_values -WHERE select_id = 48 OR select_id IS NULL; +WHERE select_id = 48 OR select_id IS NULL order by id; CAST(my_char_30 AS TIME) my_char_30 id NULL NULL 1 NULL 2 @@ -3668,7 +3850,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as time) AS `CAST(my_char_30 AS TIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 48 OR select_id IS NULL); +WHERE select_id = 48 OR select_id IS NULL) order by id; CAST(my_char_30 AS TIME) my_char_30 id NULL NULL 1 NULL 2 @@ -3687,7 +3869,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DATETIME), my_year, id FROM t1_values; SELECT CAST(my_year AS DATETIME), my_year, id FROM t1_values -WHERE select_id = 47 OR select_id IS NULL; +WHERE select_id = 47 OR select_id IS NULL order by id; CAST(my_year AS DATETIME) my_year id NULL NULL 1 NULL 1901 2 @@ -3704,7 +3886,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as datetime) AS `CAST(my_year AS DATETIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 47 OR select_id IS NULL); +WHERE select_id = 47 OR select_id IS NULL) order by id; CAST(my_year AS DATETIME) my_year id NULL NULL 1 NULL 1901 2 @@ -3723,7 +3905,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DATETIME), my_time, id FROM t1_values; SELECT CAST(my_time AS DATETIME), my_time, id FROM t1_values -WHERE select_id = 46 OR select_id IS NULL; +WHERE select_id = 46 OR select_id IS NULL order by id; CAST(my_time AS DATETIME) my_time id NULL NULL 1 0000-00-00 00:00:00 -838:59:59 2 @@ -3738,7 +3920,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 46 OR select_id IS NULL); +WHERE select_id = 46 OR select_id IS NULL) order by id; CAST(my_time AS DATETIME) my_time id NULL NULL 1 0000-00-00 00:00:00 -838:59:59 2 @@ -3755,7 +3937,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATETIME), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DATETIME), my_timestamp, id FROM t1_values -WHERE select_id = 45 OR select_id IS NULL; +WHERE select_id = 45 OR select_id IS NULL order by id; CAST(my_timestamp AS DATETIME) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -3767,7 +3949,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as datetime) AS `CAST(my_timestamp AS DATETIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 45 OR select_id IS NULL); +WHERE select_id = 45 OR select_id IS NULL) order by id; CAST(my_timestamp AS DATETIME) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -3781,7 +3963,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DATETIME), my_date, id FROM t1_values; SELECT CAST(my_date AS DATETIME), my_date, id FROM t1_values -WHERE select_id = 44 OR select_id IS NULL; +WHERE select_id = 44 OR select_id IS NULL order by id; CAST(my_date AS DATETIME) my_date id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 2 @@ -3793,7 +3975,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as datetime) AS `CAST(my_date AS DATETIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 44 OR select_id IS NULL); +WHERE select_id = 44 OR select_id IS NULL) order by id; CAST(my_date AS DATETIME) my_date id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 2 @@ -3807,7 +3989,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATETIME), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DATETIME), my_datetime, id FROM t1_values -WHERE select_id = 43 OR select_id IS NULL; +WHERE select_id = 43 OR select_id IS NULL order by id; CAST(my_datetime AS DATETIME) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -3819,7 +4001,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as datetime) AS `CAST(my_datetime AS DATETIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 43 OR select_id IS NULL); +WHERE select_id = 43 OR select_id IS NULL) order by id; CAST(my_datetime AS DATETIME) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -3833,7 +4015,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS DATETIME), my_double, id FROM t1_values; SELECT CAST(my_double AS DATETIME), my_double, id FROM t1_values -WHERE select_id = 42 OR select_id IS NULL; +WHERE select_id = 42 OR select_id IS NULL order by id; CAST(my_double AS DATETIME) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -3852,7 +4034,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as datetime) AS `CAST(my_double AS DATETIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 42 OR select_id IS NULL); +WHERE select_id = 42 OR select_id IS NULL) order by id; CAST(my_double AS DATETIME) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -3873,7 +4055,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATETIME), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DATETIME), my_bigint, id FROM t1_values -WHERE select_id = 41 OR select_id IS NULL; +WHERE select_id = 41 OR select_id IS NULL order by id; CAST(my_bigint AS DATETIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3892,7 +4074,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as datetime) AS `CAST(my_bigint AS DATETIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 41 OR select_id IS NULL); +WHERE select_id = 41 OR select_id IS NULL) order by id; CAST(my_bigint AS DATETIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3913,7 +4095,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATETIME), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DATETIME), my_varbinary_1000, id FROM t1_values -WHERE select_id = 40 OR select_id IS NULL; +WHERE select_id = 40 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3931,7 +4113,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as datetime) AS `CAST(my_varbinary_1000 AS DATETIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 40 OR select_id IS NULL); +WHERE select_id = 40 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3951,14 +4133,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATETIME), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DATETIME), my_binary_30, id FROM t1_values -WHERE select_id = 39 OR select_id IS NULL; +WHERE select_id = 39 OR select_id IS NULL order by id; CAST(my_binary_30 AS DATETIME) my_binary_30 id NULL NULL 1 -NULL 2 +NULL 2 NULL <--------30 characters-------> 3 -NULL ---äÖüß@µ*$-- 4 -NULL -1 5 -2005-06-27 17:58:00 2005-06-27 17:58 16 +NULL ---äÖüß@µ*$-- 4 +NULL -1 5 +2005-06-27 17:58:00 2005-06-27 17:58 16 Warnings: Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->' @@ -3970,7 +4152,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as datetime) AS `CAST(my_binary_30 AS DATETIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 39 OR select_id IS NULL); +WHERE select_id = 39 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DATETIME) my_binary_30 id NULL NULL 1 NULL 2 @@ -3991,7 +4173,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATETIME), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DATETIME), my_varchar_1000, id FROM t1_values -WHERE select_id = 38 OR select_id IS NULL; +WHERE select_id = 38 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4009,7 +4191,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as datetime) AS `CAST(my_varchar_1000 AS DATETIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 38 OR select_id IS NULL); +WHERE select_id = 38 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4029,7 +4211,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATETIME), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DATETIME), my_char_30, id FROM t1_values -WHERE select_id = 37 OR select_id IS NULL; +WHERE select_id = 37 OR select_id IS NULL order by id; CAST(my_char_30 AS DATETIME) my_char_30 id NULL NULL 1 NULL 2 @@ -4047,7 +4229,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as datetime) AS `CAST(my_char_30 AS DATETIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 37 OR select_id IS NULL); +WHERE select_id = 37 OR select_id IS NULL) order by id; CAST(my_char_30 AS DATETIME) my_char_30 id NULL NULL 1 NULL 2 @@ -4067,7 +4249,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DATE), my_year, id FROM t1_values; SELECT CAST(my_year AS DATE), my_year, id FROM t1_values -WHERE select_id = 36 OR select_id IS NULL; +WHERE select_id = 36 OR select_id IS NULL order by id; CAST(my_year AS DATE) my_year id NULL NULL 1 NULL 1901 2 @@ -4084,7 +4266,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as date) AS `CAST(my_year AS DATE)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 36 OR select_id IS NULL); +WHERE select_id = 36 OR select_id IS NULL) order by id; CAST(my_year AS DATE) my_year id NULL NULL 1 NULL 1901 2 @@ -4103,7 +4285,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DATE), my_time, id FROM t1_values; SELECT CAST(my_time AS DATE), my_time, id FROM t1_values -WHERE select_id = 35 OR select_id IS NULL; +WHERE select_id = 35 OR select_id IS NULL order by id; CAST(my_time AS DATE) my_time id NULL NULL 1 0000-00-00 -838:59:59 2 @@ -4115,7 +4297,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as date) AS `CAST(my_time AS DATE)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 35 OR select_id IS NULL); +WHERE select_id = 35 OR select_id IS NULL) order by id; CAST(my_time AS DATE) my_time id NULL NULL 1 0000-00-00 -838:59:59 2 @@ -4129,7 +4311,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATE), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DATE), my_timestamp, id FROM t1_values -WHERE select_id = 34 OR select_id IS NULL; +WHERE select_id = 34 OR select_id IS NULL order by id; CAST(my_timestamp AS DATE) my_timestamp id 0000-00-00 0000-00-00 00:00:00 1 1970-01-01 1970-01-01 03:00:01 2 @@ -4141,7 +4323,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as date) AS `CAST(my_timestamp AS DATE)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 34 OR select_id IS NULL); +WHERE select_id = 34 OR select_id IS NULL) order by id; CAST(my_timestamp AS DATE) my_timestamp id 0000-00-00 0000-00-00 00:00:00 1 1970-01-01 1970-01-01 03:00:01 2 @@ -4155,7 +4337,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DATE), my_date, id FROM t1_values; SELECT CAST(my_date AS DATE), my_date, id FROM t1_values -WHERE select_id = 33 OR select_id IS NULL; +WHERE select_id = 33 OR select_id IS NULL order by id; CAST(my_date AS DATE) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4167,7 +4349,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as date) AS `CAST(my_date AS DATE)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 33 OR select_id IS NULL); +WHERE select_id = 33 OR select_id IS NULL) order by id; CAST(my_date AS DATE) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4181,7 +4363,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATE), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DATE), my_datetime, id FROM t1_values -WHERE select_id = 32 OR select_id IS NULL; +WHERE select_id = 32 OR select_id IS NULL order by id; CAST(my_datetime AS DATE) my_datetime id NULL NULL 1 0001-01-01 0001-01-01 00:00:00 2 @@ -4193,7 +4375,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as date) AS `CAST(my_datetime AS DATE)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 32 OR select_id IS NULL); +WHERE select_id = 32 OR select_id IS NULL) order by id; CAST(my_datetime AS DATE) my_datetime id NULL NULL 1 0001-01-01 0001-01-01 00:00:00 2 @@ -4207,7 +4389,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS DATE), my_double, id FROM t1_values; SELECT CAST(my_double AS DATE), my_double, id FROM t1_values -WHERE select_id = 31 OR select_id IS NULL; +WHERE select_id = 31 OR select_id IS NULL order by id; CAST(my_double AS DATE) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -4225,7 +4407,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as date) AS `CAST(my_double AS DATE)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 31 OR select_id IS NULL); +WHERE select_id = 31 OR select_id IS NULL) order by id; CAST(my_double AS DATE) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -4245,7 +4427,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATE), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DATE), my_bigint, id FROM t1_values -WHERE select_id = 30 OR select_id IS NULL; +WHERE select_id = 30 OR select_id IS NULL order by id; CAST(my_bigint AS DATE) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -4263,7 +4445,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as date) AS `CAST(my_bigint AS DATE)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 30 OR select_id IS NULL); +WHERE select_id = 30 OR select_id IS NULL) order by id; CAST(my_bigint AS DATE) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -4283,7 +4465,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATE), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DATE), my_varbinary_1000, id FROM t1_values -WHERE select_id = 29 OR select_id IS NULL; +WHERE select_id = 29 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -4301,7 +4483,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as date) AS `CAST(my_varbinary_1000 AS DATE)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 29 OR select_id IS NULL); +WHERE select_id = 29 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -4321,14 +4503,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATE), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DATE), my_binary_30, id FROM t1_values -WHERE select_id = 28 OR select_id IS NULL; +WHERE select_id = 28 OR select_id IS NULL order by id; CAST(my_binary_30 AS DATE) my_binary_30 id NULL NULL 1 -NULL 2 +NULL 2 NULL <--------30 characters-------> 3 -NULL ---äÖüß@µ*$-- 4 -NULL -1 5 -2005-06-27 2005-06-27 10 +NULL ---äÖüß@µ*$-- 4 +NULL -1 5 +2005-06-27 2005-06-27 10 Warnings: Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->' @@ -4340,7 +4522,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as date) AS `CAST(my_binary_30 AS DATE)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 28 OR select_id IS NULL); +WHERE select_id = 28 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DATE) my_binary_30 id NULL NULL 1 NULL 2 @@ -4361,7 +4543,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATE), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DATE), my_varchar_1000, id FROM t1_values -WHERE select_id = 27 OR select_id IS NULL; +WHERE select_id = 27 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DATE) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4379,7 +4561,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as date) AS `CAST(my_varchar_1000 AS DATE)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 27 OR select_id IS NULL); +WHERE select_id = 27 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DATE) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4399,7 +4581,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATE), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DATE), my_char_30, id FROM t1_values -WHERE select_id = 26 OR select_id IS NULL; +WHERE select_id = 26 OR select_id IS NULL order by id; CAST(my_char_30 AS DATE) my_char_30 id NULL NULL 1 NULL 2 @@ -4417,7 +4599,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as date) AS `CAST(my_char_30 AS DATE)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 26 OR select_id IS NULL); +WHERE select_id = 26 OR select_id IS NULL) order by id; CAST(my_char_30 AS DATE) my_char_30 id NULL NULL 1 NULL 2 @@ -4437,7 +4619,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS CHAR), my_year, id FROM t1_values; SELECT CAST(my_year AS CHAR), my_year, id FROM t1_values -WHERE select_id = 25 OR select_id IS NULL; +WHERE select_id = 25 OR select_id IS NULL order by id; CAST(my_year AS CHAR) my_year id NULL NULL 1 1901 1901 2 @@ -4449,7 +4631,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset latin1) AS `CAST(my_year AS CHAR)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 25 OR select_id IS NULL); +WHERE select_id = 25 OR select_id IS NULL) order by id; CAST(my_year AS CHAR) my_year id NULL NULL 1 1901 1901 2 @@ -4463,7 +4645,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS CHAR), my_time, id FROM t1_values; SELECT CAST(my_time AS CHAR), my_time, id FROM t1_values -WHERE select_id = 24 OR select_id IS NULL; +WHERE select_id = 24 OR select_id IS NULL order by id; CAST(my_time AS CHAR) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4475,7 +4657,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset latin1) AS `CAST(my_time AS CHAR)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 24 OR select_id IS NULL); +WHERE select_id = 24 OR select_id IS NULL) order by id; CAST(my_time AS CHAR) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4489,7 +4671,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS CHAR), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS CHAR), my_timestamp, id FROM t1_values -WHERE select_id = 23 OR select_id IS NULL; +WHERE select_id = 23 OR select_id IS NULL order by id; CAST(my_timestamp AS CHAR) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4501,7 +4683,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset latin1) AS `CAST(my_timestamp AS CHAR)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 23 OR select_id IS NULL); +WHERE select_id = 23 OR select_id IS NULL) order by id; CAST(my_timestamp AS CHAR) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4515,7 +4697,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS CHAR), my_date, id FROM t1_values; SELECT CAST(my_date AS CHAR), my_date, id FROM t1_values -WHERE select_id = 22 OR select_id IS NULL; +WHERE select_id = 22 OR select_id IS NULL order by id; CAST(my_date AS CHAR) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4527,7 +4709,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset latin1) AS `CAST(my_date AS CHAR)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 22 OR select_id IS NULL); +WHERE select_id = 22 OR select_id IS NULL) order by id; CAST(my_date AS CHAR) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4541,7 +4723,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS CHAR), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS CHAR), my_datetime, id FROM t1_values -WHERE select_id = 21 OR select_id IS NULL; +WHERE select_id = 21 OR select_id IS NULL order by id; CAST(my_datetime AS CHAR) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4553,7 +4735,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset latin1) AS `CAST(my_datetime AS CHAR)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 21 OR select_id IS NULL); +WHERE select_id = 21 OR select_id IS NULL) order by id; CAST(my_datetime AS CHAR) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4567,7 +4749,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS CHAR), my_double, id FROM t1_values; SELECT CAST(my_double AS CHAR), my_double, id FROM t1_values -WHERE select_id = 20 OR select_id IS NULL; +WHERE select_id = 20 OR select_id IS NULL order by id; CAST(my_double AS CHAR) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4579,7 +4761,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset latin1) AS `CAST(my_double AS CHAR)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 20 OR select_id IS NULL); +WHERE select_id = 20 OR select_id IS NULL) order by id; CAST(my_double AS CHAR) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4593,7 +4775,7 @@ CREATE VIEW v1 AS SELECT CAST(my_decimal AS CHAR), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS CHAR), my_decimal, id FROM t1_values -WHERE select_id = 19 OR select_id IS NULL; +WHERE select_id = 19 OR select_id IS NULL order by id; CAST(my_decimal AS CHAR) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4605,7 +4787,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset latin1) AS `CAST(my_decimal AS CHAR)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 19 OR select_id IS NULL); +WHERE select_id = 19 OR select_id IS NULL) order by id; CAST(my_decimal AS CHAR) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4619,7 +4801,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS CHAR), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS CHAR), my_bigint, id FROM t1_values -WHERE select_id = 18 OR select_id IS NULL; +WHERE select_id = 18 OR select_id IS NULL order by id; CAST(my_bigint AS CHAR) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4631,7 +4813,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset latin1) AS `CAST(my_bigint AS CHAR)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 18 OR select_id IS NULL); +WHERE select_id = 18 OR select_id IS NULL) order by id; CAST(my_bigint AS CHAR) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4645,7 +4827,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS CHAR), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS CHAR), my_varbinary_1000, id FROM t1_values -WHERE select_id = 17 OR select_id IS NULL; +WHERE select_id = 17 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id NULL NULL 1 2 @@ -4657,7 +4839,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset latin1) AS `CAST(my_varbinary_1000 AS CHAR)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 17 OR select_id IS NULL); +WHERE select_id = 17 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id NULL NULL 1 2 @@ -4671,19 +4853,19 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS CHAR), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS CHAR), my_binary_30, id FROM t1_values -WHERE select_id = 16 OR select_id IS NULL; +WHERE select_id = 16 OR select_id IS NULL order by id; CAST(my_binary_30 AS CHAR) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset latin1) AS `CAST(my_binary_30 AS CHAR)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 16 OR select_id IS NULL); +WHERE select_id = 16 OR select_id IS NULL) order by id; CAST(my_binary_30 AS CHAR) my_binary_30 id NULL NULL 1 2 @@ -4697,7 +4879,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS CHAR), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS CHAR), my_varchar_1000, id FROM t1_values -WHERE select_id = 15 OR select_id IS NULL; +WHERE select_id = 15 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id NULL NULL 1 2 @@ -4709,7 +4891,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset latin1) AS `CAST(my_varchar_1000 AS CHAR)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 15 OR select_id IS NULL); +WHERE select_id = 15 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id NULL NULL 1 2 @@ -4723,7 +4905,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS CHAR), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS CHAR), my_char_30, id FROM t1_values -WHERE select_id = 14 OR select_id IS NULL; +WHERE select_id = 14 OR select_id IS NULL order by id; CAST(my_char_30 AS CHAR) my_char_30 id NULL NULL 1 2 @@ -4735,7 +4917,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset latin1) AS `CAST(my_char_30 AS CHAR)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 14 OR select_id IS NULL); +WHERE select_id = 14 OR select_id IS NULL) order by id; CAST(my_char_30 AS CHAR) my_char_30 id NULL NULL 1 2 @@ -4749,7 +4931,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS BINARY), my_year, id FROM t1_values; SELECT CAST(my_year AS BINARY), my_year, id FROM t1_values -WHERE select_id = 13 OR select_id IS NULL; +WHERE select_id = 13 OR select_id IS NULL order by id; CAST(my_year AS BINARY) my_year id NULL NULL 1 1901 1901 2 @@ -4761,7 +4943,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset binary) AS `CAST(my_year AS BINARY)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 13 OR select_id IS NULL); +WHERE select_id = 13 OR select_id IS NULL) order by id; CAST(my_year AS BINARY) my_year id NULL NULL 1 1901 1901 2 @@ -4775,7 +4957,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS BINARY), my_time, id FROM t1_values; SELECT CAST(my_time AS BINARY), my_time, id FROM t1_values -WHERE select_id = 12 OR select_id IS NULL; +WHERE select_id = 12 OR select_id IS NULL order by id; CAST(my_time AS BINARY) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4787,7 +4969,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset binary) AS `CAST(my_time AS BINARY)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 12 OR select_id IS NULL); +WHERE select_id = 12 OR select_id IS NULL) order by id; CAST(my_time AS BINARY) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4801,7 +4983,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS BINARY), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS BINARY), my_timestamp, id FROM t1_values -WHERE select_id = 11 OR select_id IS NULL; +WHERE select_id = 11 OR select_id IS NULL order by id; CAST(my_timestamp AS BINARY) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4813,7 +4995,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset binary) AS `CAST(my_timestamp AS BINARY)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 11 OR select_id IS NULL); +WHERE select_id = 11 OR select_id IS NULL) order by id; CAST(my_timestamp AS BINARY) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4827,7 +5009,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS BINARY), my_date, id FROM t1_values; SELECT CAST(my_date AS BINARY), my_date, id FROM t1_values -WHERE select_id = 10 OR select_id IS NULL; +WHERE select_id = 10 OR select_id IS NULL order by id; CAST(my_date AS BINARY) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4839,7 +5021,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset binary) AS `CAST(my_date AS BINARY)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 10 OR select_id IS NULL); +WHERE select_id = 10 OR select_id IS NULL) order by id; CAST(my_date AS BINARY) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4853,7 +5035,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS BINARY), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS BINARY), my_datetime, id FROM t1_values -WHERE select_id = 9 OR select_id IS NULL; +WHERE select_id = 9 OR select_id IS NULL order by id; CAST(my_datetime AS BINARY) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4865,7 +5047,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset binary) AS `CAST(my_datetime AS BINARY)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 9 OR select_id IS NULL); +WHERE select_id = 9 OR select_id IS NULL) order by id; CAST(my_datetime AS BINARY) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4879,7 +5061,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS BINARY), my_double, id FROM t1_values; SELECT CAST(my_double AS BINARY), my_double, id FROM t1_values -WHERE select_id = 8 OR select_id IS NULL; +WHERE select_id = 8 OR select_id IS NULL order by id; CAST(my_double AS BINARY) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4891,7 +5073,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset binary) AS `CAST(my_double AS BINARY)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 8 OR select_id IS NULL); +WHERE select_id = 8 OR select_id IS NULL) order by id; CAST(my_double AS BINARY) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4905,7 +5087,7 @@ CREATE VIEW v1 AS SELECT CAST(my_decimal AS BINARY), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS BINARY), my_decimal, id FROM t1_values -WHERE select_id = 7 OR select_id IS NULL; +WHERE select_id = 7 OR select_id IS NULL order by id; CAST(my_decimal AS BINARY) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4917,7 +5099,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset binary) AS `CAST(my_decimal AS BINARY)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 7 OR select_id IS NULL); +WHERE select_id = 7 OR select_id IS NULL) order by id; CAST(my_decimal AS BINARY) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4931,7 +5113,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS BINARY), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS BINARY), my_bigint, id FROM t1_values -WHERE select_id = 6 OR select_id IS NULL; +WHERE select_id = 6 OR select_id IS NULL order by id; CAST(my_bigint AS BINARY) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4943,7 +5125,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset binary) AS `CAST(my_bigint AS BINARY)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 6 OR select_id IS NULL); +WHERE select_id = 6 OR select_id IS NULL) order by id; CAST(my_bigint AS BINARY) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4957,7 +5139,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS BINARY), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS BINARY), my_varbinary_1000, id FROM t1_values -WHERE select_id = 5 OR select_id IS NULL; +WHERE select_id = 5 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id NULL NULL 1 2 @@ -4969,7 +5151,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset binary) AS `CAST(my_varbinary_1000 AS BINARY)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 5 OR select_id IS NULL); +WHERE select_id = 5 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id NULL NULL 1 2 @@ -4983,19 +5165,19 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS BINARY), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS BINARY), my_binary_30, id FROM t1_values -WHERE select_id = 4 OR select_id IS NULL; +WHERE select_id = 4 OR select_id IS NULL order by id; CAST(my_binary_30 AS BINARY) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset binary) AS `CAST(my_binary_30 AS BINARY)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 4 OR select_id IS NULL); +WHERE select_id = 4 OR select_id IS NULL) order by id; CAST(my_binary_30 AS BINARY) my_binary_30 id NULL NULL 1 2 @@ -5009,7 +5191,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS BINARY), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS BINARY), my_varchar_1000, id FROM t1_values -WHERE select_id = 3 OR select_id IS NULL; +WHERE select_id = 3 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id NULL NULL 1 2 @@ -5021,7 +5203,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset binary) AS `CAST(my_varchar_1000 AS BINARY)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 3 OR select_id IS NULL); +WHERE select_id = 3 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id NULL NULL 1 2 @@ -5035,7 +5217,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS BINARY), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS BINARY), my_char_30, id FROM t1_values -WHERE select_id = 2 OR select_id IS NULL; +WHERE select_id = 2 OR select_id IS NULL order by id; CAST(my_char_30 AS BINARY) my_char_30 id NULL NULL 1 2 @@ -5047,7 +5229,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset binary) AS `CAST(my_char_30 AS BINARY)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 2 OR select_id IS NULL); +WHERE select_id = 2 OR select_id IS NULL) order by id; CAST(my_char_30 AS BINARY) my_char_30 id NULL NULL 1 2 @@ -5059,7 +5241,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT sqrt(my_bigint), my_bigint, id FROM t1_values; SELECT sqrt(my_bigint), my_bigint, id FROM t1_values -WHERE select_id = 1 OR select_id IS NULL; +WHERE select_id = 1 OR select_id IS NULL order by id; sqrt(my_bigint) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -5073,7 +5255,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sqrt(`t1_values`.`my_bigint`) AS `sqrt(my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 1 OR select_id IS NULL); +WHERE select_id = 1 OR select_id IS NULL) order by id; sqrt(my_bigint) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result index fd31aa76ab9..6ba95c9fa63 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_02.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.2 - Syntax checks for the stored procedure-specific programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE: @@ -164,7 +172,7 @@ declare y integer default 1; set @x = x; set @y = y; set @z = 234; -SELECT f1, f2 into @x, @y from t2 limit 1; +SELECT f1, f2 into @x, @y from t2 where f1='a`' and f2='a`' limit 1; SELECT @x, @y, @z, invar; BEGIN set @x = 2; @@ -207,7 +215,7 @@ BEGIN declare x integer; declare y integer; set @x=x; set @y=y; -SELECT f4, f3 into @x, @y from t2 limit 1; +SELECT f4, f3 into @x, @y from t2 where f4=-5000 and f3='1000-01-01' limit 1; SELECT @x, @y; END// CALL sp1(); @@ -695,7 +703,7 @@ Testcase 3.1.2.54: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -01 is always exactly equivalent in action to a handler with an SQLWARNING +“01“ is always exactly equivalent in action to a handler with an SQLWARNING condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -794,7 +802,7 @@ Testcase 3.1.2.56: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -02 is always exactly equivalent in action to a handler with a NOT FOUND +“02“ is always exactly equivalent in action to a handler with a NOT FOUND condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -902,7 +910,7 @@ Testcase 3.1.2.58: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -anything other that 01 or 02 is always exactly equivalent in action to a +anything other that “01“ or “02“ is always exactly equivalent in action to a handler with an SQLEXCEPTION condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -1082,7 +1090,8 @@ declare f2_value char(20); declare f5_value char(20); declare f4_value integer; declare f6_value integer; -declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3; +declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 +where f4 >=-5000 order by f4 limit 3; open cur1; while proceed do SELECT count AS 'loop'; @@ -1165,7 +1174,7 @@ of a compound statement ends. DROP TABLE IF EXISTS temp1; DROP PROCEDURE IF EXISTS sp1; create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) ); -SELECT f1, f2, f4, f5 from t2; +SELECT f1, f2, f4, f5 from t2 order by f4; f1 f2 f4 f5 a` a` -5000 a` aaa aaa -4999 aaa @@ -1185,8 +1194,8 @@ declare newf1 char(20); declare newf2 char(20); declare newf5 char(20); declare newf4 integer; -declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; -declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; +declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; +declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; open cur1; open cur2; BEGIN @@ -1268,8 +1277,10 @@ declare i_newf11 char(20); declare i_newf12 char(20); declare i_newf13 date; declare i_newf14 integer; -declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4; -declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3; +declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 +where f4>=-5000 order by f4 limit 4; +declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 +where f4>=-5000 order by f4 limit 3; declare continue handler for sqlstate '02000' set proceed=0; open cur1; open cur2; @@ -1300,8 +1311,10 @@ DECLARE o_newf11 CHAR(20); DECLARE o_newf12 CHAR(20); DECLARE o_newf13 DATE; DECLARE o_newf14 INTEGER; -DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; -DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; +DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 +WHERE f4>=-5000 ORDER BY f4 LIMIT 5; +DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 +WHERE f4>=-5000 ORDER BY f4 LIMIT 5; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0; OPEN cur1; OPEN cur2; diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result index c982691daad..53e25441e2e 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_03.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.3 - Syntax checks for the stored procedure-specific flow control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE: diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_06.result b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result index 890498e1966..88bddf68e24 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_06.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.6 - Privilege Checks: -------------------------------------------------------------------------------- @@ -79,6 +87,7 @@ BEGIN SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz'; END// ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1' +USE db_storedproc_1; root@localhost db_storedproc_1 GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost'; @@ -90,6 +99,7 @@ CREATE PROCEDURE sp1(v1 char(20)) BEGIN SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz'; END// +USE db_storedproc_1; root@localhost db_storedproc_1 DROP USER 'user_1'@'localhost'; @@ -115,6 +125,7 @@ CREATE FUNCTION fn1(v1 int) returns int BEGIN return v1; END// +USE db_storedproc_1; root@localhost db_storedproc_1 drop user 'user_1'@'localhost'; diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result index 0980ca84a8c..cbe0a18435a 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_07.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.7 - SQL mode checks: -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result index e3f9556a082..40ebc1e51e4 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_08.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.8 - SHOW statement checks: -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result index 7f9946218e9..163bae36bed 100644 --- a/mysql-test/suite/funcs_1/r/memory_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/memory_storedproc_10.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.10 - CALL checks: -------------------------------------------------------------------------------- @@ -78,7 +86,7 @@ connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK); user_1@localhost db_storedproc CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER BEGIN -SELECT * FROM db_storedproc.t1 LIMIT 1; +SELECT * FROM db_storedproc.t1 WHERE f4=-5000 LIMIT 1; END// CREATE FUNCTION fn31105(n INT) RETURNS INT BEGIN @@ -93,6 +101,8 @@ CALL sp31102(); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102' SELECT fn31105( 9 ); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105' +connection default; +USE db_storedproc; root@localhost db_storedproc CALL sp31102(); @@ -112,6 +122,8 @@ a` a` 1000-01-01 -5000 a` -5000 SELECT fn31105( 9 ); fn31105( 9 ) 81 +connection default; +USE db_storedproc; root@localhost db_storedproc REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost'; @@ -129,6 +141,7 @@ CALL sp31102(); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102' SELECT fn31105( 9 ); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105' +USE db_storedproc; root@localhost db_storedproc DROP PROCEDURE sp31102; @@ -176,6 +189,8 @@ DROP PROCEDURE IF EXISTS sp_ins_1; DROP PROCEDURE IF EXISTS sp_ins_3; DROP PROCEDURE IF EXISTS sp_upd; DROP PROCEDURE IF EXISTS sp_ins_upd; +DROP PROCEDURE IF EXISTS sp_del; +DROP PROCEDURE IF EXISTS sp_with_rowcount; CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT); INSERT INTO temp SELECT * FROM t10; CREATE PROCEDURE sp_ins_1() @@ -203,49 +218,72 @@ END; SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1; UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc'; END// +CREATE PROCEDURE sp_del() +BEGIN +DELETE FROM temp WHERE temp.f1 ='qwe' OR temp.f1 = 'updated_2'; +END// +CREATE PROCEDURE sp_with_rowcount() +BEGIN +BEGIN +INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000), +('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000), +('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000), +('qwe', 'xyz', '2005-11-07', 100, 'uvw', 1000); +END; +SELECT row_count() AS 'row_count() after insert'; +SELECT row_count() AS 'row_count() after select row_count()'; +SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; +UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f2 = 'abc'; +SELECT row_count() AS 'row_count() after update'; +SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; +DELETE FROM temp WHERE temp.f1 = 'updated_2'; +SELECT row_count() AS 'row_count() after delete'; +END// CALL sp_ins_1(); SELECT row_count(); row_count() 1 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 +abc abc 2005-10-03 100 uvw 1000 acaaa acaaa 1000-01-04 -4997 acaaa -4997 adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 -abc abc 2005-10-03 100 uvw 1000 CALL sp_ins_3(); SELECT row_count(); row_count() 1 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 +abc abc 2005-10-03 100 uvw 1000 +abc xyz 1949-05-23 100 uvw 1000 +abc xyz 1989-11-09 100 uvw 1000 +abc xyz 2005-10-24 100 uvw 1000 acaaa acaaa 1000-01-04 -4997 acaaa -4997 adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 -abc abc 2005-10-03 100 uvw 1000 -abc xyz 1949-05-23 100 uvw 1000 -abc xyz 1989-11-09 100 uvw 1000 -abc xyz 2005-10-24 100 uvw 1000 CALL sp_upd(); SELECT row_count(); row_count() 4 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 @@ -254,8 +292,6 @@ adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 updated abc 2005-10-03 100 uvw 1000 updated xyz 1949-05-23 100 uvw 1000 updated xyz 1989-11-09 100 uvw 1000 @@ -279,6 +315,8 @@ row_count() 3 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 @@ -287,26 +325,73 @@ adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 +qwe xyz 1998-03-26 100 uvw 1000 updated abc 2005-10-03 100 uvw 1000 updated xyz 1949-05-23 100 uvw 1000 updated xyz 1989-11-09 100 uvw 1000 updated xyz 2005-10-24 100 uvw 1000 updated_2 abc 1989-11-09 100 uvw 1000 -qwe xyz 1998-03-26 100 uvw 1000 updated_2 abc 2000-11-09 100 uvw 1000 updated_2 abc 2005-11-07 100 uvw 1000 +CALL sp_del(); +SELECT row_count(); +row_count() +4 +SELECT * FROM temp; +f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 +a` a` 1000-01-01 -5000 a` -5000 +aaa aaa 1000-01-02 -4999 aaa -4999 +abaa abaa 1000-01-03 -4998 abaa -4998 +acaaa acaaa 1000-01-04 -4997 acaaa -4997 +adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 +aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 +afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 +agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 +updated abc 2005-10-03 100 uvw 1000 +updated xyz 1949-05-23 100 uvw 1000 +updated xyz 1989-11-09 100 uvw 1000 +updated xyz 2005-10-24 100 uvw 1000 +DELETE FROM temp; +CALL sp_with_rowcount(); +row_count() after insert +4 +row_count() after select row_count() +-1 +f1 f2 f3 +qwe abc 1989-11-09 +qwe abc 2000-11-09 +qwe xyz 1998-03-26 +qwe xyz 2005-11-07 +row_count() after update +2 +f1 f2 f3 +qwe xyz 1998-03-26 +qwe xyz 2005-11-07 +updated_2 abc 1989-11-09 +updated_2 abc 2000-11-09 +row_count() after delete +2 +SELECT row_count(); +row_count() +-1 +SELECT * FROM temp; +f1 f2 f3 f4 f5 f6 +qwe xyz 1998-03-26 100 uvw 1000 +qwe xyz 2005-11-07 100 uvw 1000 DROP PROCEDURE sp_ins_1; DROP PROCEDURE sp_ins_3; DROP PROCEDURE sp_upd; DROP PROCEDURE sp_ins_upd; +DROP PROCEDURE sp_del; +DROP PROCEDURE sp_with_rowcount; DROP TABLE temp; Testcase 3.1.10.8: ------------------ -Ensure that the mysql_affected_rows() C API function always returns the correct +Ensure that the mysql_affected_rows() C API function always returns the correct number of rows affected by the execution of a stored procedure. -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/memory_trig_0102.result b/mysql-test/suite/funcs_1/r/memory_trig_0102.result index a9477604425..d926d682d13 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_0102.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_0102.result @@ -1,90 +1,91 @@ USE test; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; Testcase: 3.5.1.1: ------------------ use test; -Create trigger trg1_1 BEFORE INSERT +Create trigger trg1_1 BEFORE INSERT on tb3 for each row set @test_before = 2, new.f142 = @test_before; -Create trigger trg1_2 AFTER INSERT +Create trigger trg1_2 AFTER INSERT on tb3 for each row set @test_after = 6; -Create trigger trg1_4 BEFORE UPDATE -on tb3 for each row set @test_before = 27, -new.f142 = @test_before, +Create trigger trg1_4 BEFORE UPDATE +on tb3 for each row set @test_before = 27, +new.f142 = @test_before, new.f122 = 'Before Update Trigger'; -Create trigger trg1_3 AFTER UPDATE +Create trigger trg1_3 AFTER UPDATE on tb3 for each row set @test_after = '15'; -Create trigger trg1_5 BEFORE DELETE on tb3 for each row -select count(*) into @test_before from tb3 as tr_tb3 +Create trigger trg1_5 BEFORE DELETE on tb3 for each row +select count(*) into @test_before from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; -Create trigger trg1_6 AFTER DELETE on tb3 for each row -select count(*) into @test_after from tb3 as tr_tb3 +Create trigger trg1_6 AFTER DELETE on tb3 for each row +select count(*) into @test_after from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; set @test_before = 1; set @test_after = 5; select @test_before, @test_after; @test_before @test_after 1 5 -Insert into tb3 (f121, f122, f142, f144, f134) +Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; f121 f122 f142 f144 f134 @@ -97,9 +98,9 @@ set @test_after = 8; select @test_before, @test_after; @test_before @test_after 18 8 -Update tb3 set tb3.f122 = 'Update', -tb3.f142 = @test_before, -tb3.f144 = @test_after +Update tb3 set tb3.f122 = 'Update', +tb3.f142 = @test_before, +tb3.f144 = @test_after where tb3.f121 = 'Test 3.5.1.1'; select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; f121 f122 f142 f144 f134 @@ -107,7 +108,7 @@ Test 3.5.1.1 Before Update Trigger 27 0000000008 1 select @test_before, @test_after; @test_before @test_after 27 15 -Insert into tb3 (f121, f122, f142, f144, f134) +Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); set @test_before = 0; set @test_after = 0; @@ -135,7 +136,7 @@ delete from tb3 where f121='Test 3.5.1.1'; Testcase: 3.5.1.2: ------------------ -Create trigger trg_1 after insert +Create trigger trg_1 after insert on tb3 for each statement set @x= 1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statement set @x= 1' at line 2 drop trigger trg_1; @@ -188,7 +189,7 @@ drop table if exists t1; Warnings: Note 1051 Unknown table 't1' create table t1 (f1 int, f2 char(25),f3 int) engine=memory; -CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 +CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 for each row set new.f3 = '14'; CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; @@ -200,7 +201,7 @@ update t1 set f2='update 3.5.1.7'; select * from t1; f1 f2 f3 NULL update 3.5.1.7 42 -select trigger_name from information_schema.triggers; +select trigger_name from information_schema.triggers order by trigger_name; trigger_name trg5_1 trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX @@ -220,7 +221,7 @@ CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1 CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@name before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 +CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 for each row set new.f120 ='X'; ERROR HY000: Trigger in wrong schema drop database if exists trig_db; @@ -228,11 +229,11 @@ create database trig_db; use trig_db; create table t1 (f1 integer) engine = memory; use test; -CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 +CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 for each row set @ret_trg6_2 = 5; ERROR 42S02: Table 'trig_db.tb3' doesn't exist use trig_db; -CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 +CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 for each row set @ret_trg6_3 = 18; ERROR HY000: Trigger in wrong schema use test; @@ -256,9 +257,9 @@ drop table if exists t1; drop table if exists t2; create table t1 (f1 char(50), f2 integer) engine = memory; create table t2 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig t1'; -create trigger trig before update on t2 +create trigger trig before update on t2 for each row set new.f1 ='trig t2'; ERROR HY000: Trigger already exists insert into t1 value ('insert to t1',1); @@ -288,15 +289,15 @@ create database trig_db2; create database trig_db3; use trig_db1; create table t1 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig1', @test_var1='trig1'; use trig_db2; create table t2 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t2 +create trigger trig before insert on t2 for each row set new.f1 ='trig2', @test_var2='trig2'; use trig_db3; create table t1 (f1 char(50), f2 integer) engine = memory; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig3', @test_var3='trig3'; set @test_var1= '', @test_var2= '', @test_var3= ''; use trig_db1; @@ -307,7 +308,7 @@ insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); select @test_var1, @test_var2, @test_var3; @test_var1 @test_var2 @test_var3 trig1 trig2 trig3 -select * from t1; +select * from t1 order by f2; f1 f2 trig1 1 trig1 2 @@ -317,7 +318,7 @@ trig2 3 select * from trig_db3.t1; f1 f2 trig3 4 -select * from t1; +select * from t1 order by f2; f1 f2 trig1 1 trig1 2 @@ -335,17 +336,17 @@ create database trig_db2; use trig_db1; create table t1 (f1 char(50), f2 integer) engine = memory; create table trig_db2.t1 (f1 char(50), f2 integer) engine = memory; -create trigger trig1_b before insert on t1 +create trigger trig1_b before insert on t1 for each row set @test_var1='trig1_b'; -create trigger trig_db1.trig1_a after insert on t1 +create trigger trig_db1.trig1_a after insert on t1 for each row set @test_var2='trig1_a'; -create trigger trig_db2.trig2 before insert on trig_db2.t1 +create trigger trig_db2.trig2 before insert on trig_db2.t1 for each row set @test_var3='trig2'; select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; +from information_schema.triggers order by trigger_name; trigger_schema trigger_name event_object_table -trig_db1 trig1_b t1 trig_db1 trig1_a t1 +trig_db1 trig1_b t1 trig_db2 trig2 t1 set @test_var1= '', @test_var2= '', @test_var3= ''; insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); diff --git a/mysql-test/suite/funcs_1/r/memory_trig_03.result b/mysql-test/suite/funcs_1/r/memory_trig_03.result index e5813236213..4fa5a72afd5 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_03.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_03.result @@ -1,64 +1,65 @@ USE test; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; Testcase 3.5.3: --------------- @@ -100,7 +101,7 @@ set new.f1 = 'trig 3.5.3.2_1-no'; ERROR 42000: Access denied; you need the SUPER privilege for this operation use priv_db; insert into t1 (f1) values ('insert 3.5.3.2-no'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no select current_user; @@ -115,15 +116,12 @@ root@localhost use priv_db; insert into t1 (f1) values ('insert 3.5.3.2-yes'); ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for column 'f1' in table 't1' -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no grant UPDATE on priv_db.t1 to test_yesprivs@localhost; - -note: once 15166 is fixed a similar case for SELECT needs to be added ---------------------------------------------------------------------- insert into t1 (f1) values ('insert 3.5.3.2-yes'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no trig 3.5.3.2_2-yes @@ -135,7 +133,7 @@ drop trigger trg1_2; ERROR 42000: Access denied; you need the SUPER privilege for this operation use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-yes'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no trig 3.5.3.2_2-yes @@ -144,12 +142,12 @@ use priv_db; drop trigger trg1_2; use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-no'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes drop trigger trg1_2; Testcase 3.5.3.7a: @@ -174,23 +172,22 @@ use priv_db; show grants; Grants for test_noprivs@localhost GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +create trigger trg4a_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1a'; insert into t1 (f1) values ('insert 3.5.3.7-1a'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes drop trigger trg4a_1; use priv_db; select current_user; @@ -201,18 +198,13 @@ Grants for test_yesprivs@localhost GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' create trigger trg4a_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2a'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on *.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a drop trigger trg4a_2; @@ -239,30 +231,29 @@ Grants for test_noprivs@localhost GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4b_1 before UPDATE on t1 for each row +set new.f1 = 'trig 3.5.3.7-1b'; +ERROR 42000: Access denied; you need the SUPER privilege for this operation insert into t1 (f1) values ('insert 3.5.3.7-1b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a insert 3.5.3.7-1b +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +trig 3.5.3.7-2a update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a update 3.5.3.7-1b drop trigger trg4b_1; +ERROR HY000: Trigger does not exist show grants; Grants for test_yesprivs@localhost GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' @@ -270,32 +261,26 @@ GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4b_2 before UPDATE on t1 for each row set new.f1 = 'trig 3.5.3.7-2b'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on priv_db.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b insert 3.5.3.7-2b -update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; -select f1 from t1; -f1 -insert 3.5.3.2-no trig 3.5.3.2_2-yes trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a trig 3.5.3.7-2a update 3.5.3.7-1b +update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; +select f1 from t1 order by f1; +f1 +insert 3.5.3.2-no +insert 3.5.3.6-no +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +trig 3.5.3.7-2a trig 3.5.3.7-2b +update 3.5.3.7-1b drop trigger trg4b_2; Testcase 3.5.3.7c @@ -321,21 +306,19 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4c_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1c'; insert into t1 (f1) values ('insert 3.5.3.7-1c'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c +update 3.5.3.7-1b drop trigger trg4c_1; show grants; Grants for test_yesprivs@localhost @@ -344,23 +327,17 @@ GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4c_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2c'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2c'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c +update 3.5.3.7-1b drop trigger trg4c_2; Testcase 3.5.3.7d: @@ -384,23 +361,20 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4d_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1d'; insert into t1 (f1) values ('insert 3.5.3.7-1d'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c -insert 3.5.3.7-1d +update 3.5.3.7-1b drop trigger trg4d_1; show grants; Grants for test_yesprivs@localhost @@ -409,25 +383,18 @@ GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4d_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2d'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2d'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c -insert 3.5.3.7-1d trig 3.5.3.7-2d +update 3.5.3.7-1b drop trigger trg4d_2; Testcase 3.5.3.8a: @@ -452,14 +419,14 @@ use priv_db; show grants; Grants for test_noprivs@localhost GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5a_1 before INSERT on t1 for each row +set @test_var = new.f1; set @test_var = 'before trig 3.5.3.8-1a'; select @test_var; @test_var before trig 3.5.3.8-1a insert into t1 (f1) values ('insert 3.5.3.8-1a'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1a @@ -477,10 +444,6 @@ set @test_var= 'before trig 3.5.3.8-2a'; select @test_var; @test_var before trig 3.5.3.8-2a - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on *.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2a'); select @test_var; @test_var @@ -511,15 +474,15 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5b_1 before UPDATE on t1 for each row +set @test_var= new.f1; set @test_var= 'before trig 3.5.3.8-1b'; insert into t1 (f1) values ('insert 3.5.3.8-1b'); select @test_var; @test_var before trig 3.5.3.8-1b update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1b @@ -536,10 +499,6 @@ insert into t1 (f1) values ('insert 3.5.3.8-2b'); select @test_var; @test_var before trig 3.5.3.8-2b - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on priv_db.* to test_yesprivs@localhost; update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; select @test_var; @test_var @@ -570,11 +529,11 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5c_1 before INSERT on t1 for each row +set @test_var= new.f1; set @test_var= 'before trig 3.5.3.8-1c'; insert into t1 (f1) values ('insert 3.5.3.8-1c'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1c @@ -587,10 +546,6 @@ use priv_db; create trigger trg5c_2 before INSERT on t1 for each row set @test_var= new.f1; set @test_var='before trig 3.5.3.8-2c'; - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2c'); select @test_var; @test_var @@ -620,11 +575,11 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5d_1 before INSERT on t1 for each row +set @test_var= new.f1; set @test_var='before trig 3.5.3.8-1d'; insert into t1 (f1) values ('insert 3.5.3.8-1d'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1d @@ -637,10 +592,6 @@ use priv_db; create trigger trg5d_2 before INSERT on t1 for each row set @test_var= new.f1; set @test_var='before trig 3.5.3.8-2d'; - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2d'); select @test_var; @test_var @@ -676,10 +627,10 @@ ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (4); -select f1 from t1; +select f1 from t1 order by f1; f1 4 -select f2 from t2; +select f2 from t2 order by f2; f2 4 use priv_db; @@ -692,11 +643,11 @@ ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table revoke INSERT on priv_db.t2 from test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (2); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 2 -select f2 from t2; +4 +select f2 from t2 order by f2; f2 1 use priv_db; @@ -709,12 +660,12 @@ ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 -2 1 -select f2 from t2; +2 +4 +select f2 from t2 order by f2; f2 1 select @aaa; @@ -730,13 +681,13 @@ ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 +1 +1 2 -1 -1 -select f2 from t2; +4 +select f2 from t2 order by f2; f2 drop database if exists priv_db; drop user test_yesprivs@localhost; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_0407.result b/mysql-test/suite/funcs_1/r/memory_trig_0407.result index 14974428ecf..65bb3b91c9e 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_0407.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_0407.result @@ -1,64 +1,65 @@ USE test; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; Testcase: 3.5: -------------- @@ -82,22 +83,22 @@ Use db_drop; create table t1 (f1 char(30)) engine=memory; grant INSERT, SELECT on db_drop.t1 to test_general; Use db_drop; -Create trigger trg1 BEFORE INSERT on t1 +Create trigger trg1 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.1'; Use db_drop; Insert into t1 values ('Insert error 3.5.4.1'); -Select * from t1; +Select * from t1 order by f1; f1 Trigger 3.5.4.1 drop trigger trg1; select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; +from information_schema.triggers order by trigger_name; trigger_schema trigger_name event_object_table Insert into t1 values ('Insert no trigger 3.5.4.1'); -Select * from t1; +Select * from t1 order by f1; f1 -Trigger 3.5.4.1 Insert no trigger 3.5.4.1 +Trigger 3.5.4.1 drop trigger trg1; drop database if exists db_drop; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; @@ -121,7 +122,7 @@ drop table if exists t1_433 ; drop table if exists t1_433a ; create table t1_433 (f1 char (30)) engine=memory; create table t1_433a (f1a char (5)) engine=memory; -CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row +CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row set new.f1 = 'Trigger 3.5.4.3'; Drop trigger t1.433.trg3; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.trg3' at line 1 @@ -142,7 +143,7 @@ create database db_drop4; Use db_drop4; create table t1 (f1 char(30)) engine=memory; grant INSERT, SELECT on db_drop4.t1 to test_general; -Create trigger trg4 BEFORE INSERT on t1 +Create trigger trg4 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.4'; Use db_drop4; Insert into t1 values ('Insert 3.5.4.4'); @@ -178,7 +179,7 @@ create database db_drop5; Use db_drop5; create table t1 (f1 char(50)) engine=memory; grant INSERT, SELECT on t1 to test_general; -Create trigger trg5 BEFORE INSERT on t1 +Create trigger trg5 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.5'; Use db_drop5; Insert into t1 values ('Insert 3.5.4.5'); @@ -215,7 +216,7 @@ ERROR 42S02: Table 'test.t100' doesn't exist Testcase 3.5.5.2: ----------------- Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); -Create trigger trg2 before INSERT +Create trigger trg2 before INSERT on t1_temp for each row set new.f2=9999; ERROR HY000: Trigger's 't1_temp' is view or temporary table drop table t1_temp; @@ -223,7 +224,7 @@ drop table t1_temp; Testcase 3.5.5.3: ----------------- Create view vw3 as select f118 from tb3; -Create trigger trg3 before INSERT +Create trigger trg3 before INSERT on vw3 for each row set new.f118='s'; ERROR HY000: 'test.vw3' is not BASE TABLE drop view vw3; @@ -251,7 +252,7 @@ use dbtest_one; Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 -Select * from dbtest_two.t2; +Select * from dbtest_two.t2 order by f1; f1 1st Insert 3.5. 2nd Insert 3.5. @@ -304,9 +305,9 @@ drop trigger tb3.trg4_2; Testcase 3.5.7.5 / 3.5.7.6: --------------------------- -Create trigger trg5_1 BEFORE INSERT +Create trigger trg5_1 BEFORE INSERT on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; -Create trigger trg5_2 BEFORE INSERT +Create trigger trg5_2 BEFORE INSERT on tb3 for each row set new.f122='Trigger2 3.5.7.5'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); @@ -324,9 +325,9 @@ delete from tb3 where f121='Test 3.5.7.5/6'; Testcase 3.5.7.7 / 3.5.7.8: --------------------------- set @test_var='Before trig 3.5.7.7'; -Create trigger trg6_1 AFTER INSERT +Create trigger trg6_1 AFTER INSERT on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; -Create trigger trg6_2 AFTER INSERT +Create trigger trg6_2 AFTER INSERT on tb3 for each row set @test_var='Trigger2 3.5.7.7'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -352,9 +353,9 @@ delete from tb3 where f121='Test 3.5.7.7/8'; Testcase 3.5.7.9/10: -------------------- -Create trigger trg7_1 BEFORE UPDATE +Create trigger trg7_1 BEFORE UPDATE on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; -Create trigger trg7_2 BEFORE UPDATE +Create trigger trg7_2 BEFORE UPDATE on tb3 for each row set new.f122='Trigger2 3.5.7.9'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); @@ -372,9 +373,9 @@ delete from tb3 where f121='Test 3.5.7.9/10'; Testcase 3.5.7.11/12: --------------------- set @test_var='Before trig 3.5.7.11'; -Create trigger trg8_1 AFTER UPDATE +Create trigger trg8_1 AFTER UPDATE on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; -Create trigger trg8_2 AFTER UPDATE +Create trigger trg8_2 AFTER UPDATE on tb3 for each row set @test_var='Trigger2 3.5.7.11'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -402,9 +403,9 @@ delete from tb3 where f121='Test 3.5.7.11/12'; Testcase 3.5.7.13/14: --------------------- set @test_var=1; -Create trigger trg9_1 BEFORE DELETE +Create trigger trg9_1 BEFORE DELETE on tb3 for each row set @test_var=@test_var+1; -Create trigger trg9_2 BEFORE DELETE +Create trigger trg9_2 BEFORE DELETE on tb3 for each row set @test_var=@test_var+10; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -434,12 +435,12 @@ delete from tb3 where f121='Test 3.5.7.13/14'; Testcase 3.5.7.15/16: --------------------- set @test_var=1; -Create trigger trg_3_406010_1 AFTER DELETE +Create trigger trg_3_406010_1 AFTER DELETE on tb3 for each row set @test_var=@test_var+5; -Create trigger trg_3_406010_2 AFTER DELETE +Create trigger trg_3_406010_2 AFTER DELETE on tb3 for each row set @test_var=@test_var+50; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' -Create trigger trg_3_406010_1 AFTER INSERT +Create trigger trg_3_406010_1 AFTER INSERT on tb3 for each row set @test_var=@test_var+1; ERROR HY000: Trigger already exists select @test_var; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_08.result b/mysql-test/suite/funcs_1/r/memory_trig_08.result index a703de751c2..3224df54f4d 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_08.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_08.result @@ -1,64 +1,65 @@ USE test; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; Testcase: 3.5: -------------- @@ -83,17 +84,17 @@ create database db_test; grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; grant LOCK TABLES on db_test.* to test_general; Use db_test; -create table t1_i ( +create table t1_i ( i120 char ascii not null DEFAULT b'101', i136 smallint zerofill not null DEFAULT 999, i144 int zerofill not null DEFAULT 99999, i163 decimal (63,30)) engine=memory; -create table t1_u ( +create table t1_u ( u120 char ascii not null DEFAULT b'101', u136 smallint zerofill not null DEFAULT 999, u144 int zerofill not null DEFAULT 99999, u163 decimal (63,30)) engine=memory; -create table t1_d ( +create table t1_d ( d120 char ascii not null DEFAULT b'101', d136 smallint zerofill not null DEFAULT 999, d144 int zerofill not null DEFAULT 99999, @@ -116,18 +117,18 @@ Insert into t1_d values ('f',222,99999,999.99); use test; Create trigger trg1 AFTER INSERT on tb3 for each row BEGIN -insert into db_test.t1_i +insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); -update db_test.t1_u +update db_test.t1_u set u144=new.f144, u163=new.f163 -where u136=new.f136; +where u136=new.f136; delete from db_test.t1_d where d136= new.f136; -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; +select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u +where u136= new.f136; END// Use test; set @test_var=0; -Insert into tb3 (f120, f122, f136, f144, f163) +Insert into tb3 (f120, f122, f136, f144, f163) values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; f120 f122 f136 f144 f163 @@ -155,14 +156,22 @@ select @test_var; 3.5.8.4 - single SQL - insert ----------------------------- Create trigger trg2 BEFORE UPDATE on tb3 for each row -insert into db_test.t1_i +BEGIN +insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); +END// +Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; +f120 f122 f136 f144 f163 +1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000 +select * from db_test.t1_i order by i120; +i120 i136 i144 i163 +1 00222 0000023456 1.050000000000000000000000000000 update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' where f122='Test 3.5.8.4'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; +select * from db_test.t1_i order by i120; i120 i136 i144 i163 1 00222 0000023456 1.050000000000000000000000000000 I 00222 0000023456 1.050000000000000000000000000000 @@ -171,7 +180,7 @@ I 00222 0000023456 1.050000000000000000000000000000 ----------------------------- drop trigger trg2; Create trigger trg3 BEFORE UPDATE on tb3 for each row -update db_test.t1_u +update db_test.t1_u set u120=new.f120 where u136=new.f136; update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' @@ -179,27 +188,27 @@ update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; +select * from db_test.t1_u order by u120; u120 u136 u144 u163 a 00111 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 c 00333 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 f 00333 0000099999 999.990000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 3.5.8.3/4 - single SQL - delete ------------------------------- drop trigger trg3; Create trigger trg4 AFTER UPDATE on tb3 for each row delete from db_test.t1_d where d136= new.f136; -update tb3 set f120='D', f136=444, +update tb3 set f120='D', f136=444, f122='Test 3.5.8.4-Single Delete' where f122='Test 3.5.8.4-Single Update'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_d; +select * from db_test.t1_d order by d120; d120 d136 d144 d163 a 00111 0000099999 999.990000000000000000000000000000 c 00333 0000099999 999.990000000000000000000000000000 @@ -208,10 +217,10 @@ c 00333 0000099999 999.990000000000000000000000000000 ------------------------------- drop trigger trg4; Create trigger trg5 AFTER UPDATE on tb3 for each row -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u +select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u where u136= new.f136; set @test_var=0; -update tb3 set f120='S', f136=111, +update tb3 set f120='S', f136=111, f122='Test 3.5.8.4-Single Select' where f122='Test 3.5.8.4-Single Delete'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; @@ -239,36 +248,36 @@ set @test_var='three', new.f120='4'; END IF; IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; -ELSE +ELSE set @test_var2='2nd else', new.f120='D'; END IF; END// set @test_var='Empty', @test_var2=0; Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 D Test 3.5.8.5-if 00101 one 2nd else Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 D Test 3.5.8.5-if 00101 two 2nd else D Test 3.5.8.5-if 00102 two 2nd else Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 +d Test 3.5.8.5-if 00010 three 2nd if D Test 3.5.8.5-if 00101 three 2nd if D Test 3.5.8.5-if 00102 three 2nd if -d Test 3.5.8.5-if 00010 three 2nd if Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 +d Test 3.5.8.5-if 00010 three 2nd else D Test 3.5.8.5-if 00101 three 2nd else D Test 3.5.8.5-if 00102 three 2nd else -d Test 3.5.8.5-if 00010 three 2nd else D Test 3.5.8.5-if 00103 three 2nd else create trigger trg3 before update on tb3 for each row BEGIN @@ -283,7 +292,7 @@ create trigger trg4 before update on tb3 for each row BEGIN IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; -ELSE +ELSE set @test_var2='2nd else', new.f120='D'; END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7 @@ -325,60 +334,60 @@ ELSE set @test_var=CONCAT(new.f120, '*', new.f144); END case; END// set @test_var='Empty'; -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('a', 'Test 3.5.8.5-case', 5, 7); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 A*seven -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('b', 'Test 3.5.8.5-case', 71,16); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 B*0000000016 B Test 3.5.8.5-case 00191 0000000016 B*0000000016 -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('c', 'Test 3.5.8.5-case', 80,1); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 C=one B Test 3.5.8.5-case 00191 0000000016 C=one C Test 3.5.8.5-case 00200 0000000001 C=one -Insert into tb3 (f120, f122, f136) +Insert into tb3 (f120, f122, f136) values ('d', 'Test 3.5.8.5-case', 152); Warnings: Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 A Test 3.5.8.5-case 00125 0000000007 1*0000099999 B Test 3.5.8.5-case 00191 0000000016 1*0000099999 C Test 3.5.8.5-case 00200 0000000001 1*0000099999 -1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('e', 'Test 3.5.8.5-case', 200, 8); Warnings: Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1=eight +1 Test 3.5.8.5-case 00200 0000000008 1=eight A Test 3.5.8.5-case 00125 0000000007 1=eight B Test 3.5.8.5-case 00191 0000000016 1=eight C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('f', 'Test 3.5.8.5-case', 100, 8); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1=eight +1 Test 3.5.8.5-case 00200 0000000008 1=eight A Test 3.5.8.5-case 00125 0000000007 1=eight B Test 3.5.8.5-case 00191 0000000016 1=eight C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight create trigger trg3a before update on tb3 for each row BEGIN CASE @@ -392,40 +401,40 @@ delete from tb3 where f121='Test 3.5.8.5-case'; Testcase 3.5.8.5-loop/leave: ---------------------------- Create trigger trg4 after insert on tb3 for each row -BEGIN +BEGIN set @counter=0, @flag='Initial'; -Label1: loop +Label1: loop if new.f136 new.f136 END REPEAT rp_label; END// set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) +Insert into tb3 (f122, f136) values ('Test 3.5.8.5-repeat', 13); select @counter1, @counter2; @counter1 @counter2 15 8 Create trigger trg6_2 after update on tb3 for each row BEGIN -REPEAT -SET @counter2 = @counter2 + 1; +REPEAT +SET @counter2 = @counter2 + 1; END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5 drop trigger trg6; @@ -460,33 +469,62 @@ delete from tb3 where f122='Test 3.5.8.5-repeat'; Testcase 3.5.8.5-while: ----------------------- Create trigger trg7 after insert on tb3 for each row -wl_label: WHILE @counter1 < new.f136 DO -SET @counter1 = @counter1 + 1; +wl_label: WHILE @counter1 < new.f136 DO +SET @counter1 = @counter1 + 1; IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; END IF; -SET @counter2 = @counter2 + 1; +SET @counter2 = @counter2 + 1; END WHILE wl_label// set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) +Insert into tb3 (f122, f136) values ('Test 3.5.8.5-while', 7); select @counter1, @counter2; @counter1 @counter2 7 4 Create trigger trg7_2 after update on tb3 for each row BEGIN -WHILE @counter1 < new.f136 -SET @counter1 = @counter1 + 1; +WHILE @counter1 < new.f136 +SET @counter1 = @counter1 + 1; END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; END' at line 4 delete from tb3 where f122='Test 3.5.8.5-while'; drop trigger trg7; Testcase 3.5.8.6: (requirement void) ------------------------------------ +CREATE PROCEDURE sp_01 () BEGIN set @v1=1; END// +CREATE TRIGGER trg8_1 BEFORE UPDATE ON tb3 FOR EACH ROW +BEGIN +CALL sp_01 (); +END// +Insert into tb3 (f120, f122, f136) values ('6', 'Test 3.5.8.6-insert', 101); +update tb3 set f120='S', f136=111, +f122='Test 3.5.8.6-tr8_1' + where f122='Test 3.5.8.6-insert'; +select f120, f122 +from tb3 where f122 like 'Test 3.5.8.6%' order by f120; +f120 f122 +S Test 3.5.8.6-tr8_1 +DROP TRIGGER trg8_1; +DROP PROCEDURE sp_01; -Testcase 3.5.8.7: (Disabled as a result of bug _____) ------------------------------------------------------ +Testcase 3.5.8.7 +---------------- +Create trigger trg9_1 before update on tb3 for each row +BEGIN +Start transaction; +Set new.f120='U'; +Commit; +END// +ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. +Create trigger trg9_2 before delete on tb3 for each row +BEGIN +Start transaction; +Set @var2=old.f120; +Rollback; +END// +ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. drop user test_general@localhost; drop user test_general; drop user test_super@localhost; diff --git a/mysql-test/suite/funcs_1/r/memory_trig_09.result b/mysql-test/suite/funcs_1/r/memory_trig_09.result index da8b15901d9..b14e0a02aa2 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_09.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_09.result @@ -1,68 +1,69 @@ USE test; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; Testcase 3.5.9.1/2: ------------------- -Create trigger trg1 BEFORE UPDATE on tb3 for each row +Create trigger trg1 BEFORE UPDATE on tb3 for each row set new.f142 = 94087, @counter=@counter+1; TotalRows 10 @@ -74,15 +75,15 @@ NewValuew 0 set @counter=0; Update tb3 Set f142='1' where f130<100; -select count(*) as ExpectedChanged, @counter as TrigCounter +select count(*) as ExpectedChanged, @counter as TrigCounter from tb3 where f142=94087; ExpectedChanged TrigCounter 9 9 -select count(*) as ExpectedNotChange from tb3 +select count(*) as ExpectedNotChange from tb3 where f130<100 and f142<>94087; ExpectedNotChange 0 -select count(*) as NonExpectedChanged from tb3 +select count(*) as NonExpectedChanged from tb3 where f130>=130 and f142=94087; NonExpectedChanged 0 @@ -110,17 +111,17 @@ set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 0 0 0 0 0 -Insert into tb3 (f122, f136, f163) +Insert into tb3 (f122, f136, f163) values ('Test 3.5.9.3', 7, 123.17); Update tb3 Set f136=8 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; +select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; f118 f121 f122 f136 f163 a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 @@ -129,13 +130,13 @@ a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 0 0 0 0 0 delete from tb3 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; +select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; f118 f121 f122 f136 f163 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 @@ -166,17 +167,17 @@ set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, 0 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 0 0 0 0 0 0 -Insert into tb3 (f122, f136, f151, f163) +Insert into tb3 (f122, f136, f151, f163) values ('Test 3.5.9.4', 7, DEFAULT, 995.24); -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4%'; +select f118, f121, f122, f136, f151, f163 from tb3 +where f122 like 'Test 3.5.9.4%' order by f163; f118 f121 f122 f136 f151 f163 a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 @@ -188,15 +189,15 @@ Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; Warnings: Warning 1048 Column 'f136' cannot be null -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4-trig'; +select f118, f121, f122, f136, f151, f163 from tb3 +where f122 like 'Test 3.5.9.4-trig' order by f163; f118 f121 f122 f136 f151 f163 a NULL Test 3.5.9.4-trig 00000 999 NULL -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 a NULL Test 3.5.9.4-trig 0 999 NULL -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 a NULL Test 3.5.9.4-trig 0 999 NULL @@ -234,6 +235,7 @@ ERROR HY000: There is no NEW row in on DELETE trigger create trigger trg5b after DELETE on tb3 for each row set new.f122='test'; ERROR HY000: There is no NEW row in on DELETE trigger +drop trigger trg5a; drop trigger trg5b; Testcase 3.5.9.10: (implied in previous tests) diff --git a/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result index 8fc9178f494..5f7859189aa 100644 --- a/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/memory_trig_1011ext.result @@ -1,64 +1,65 @@ USE test; drop table if exists tb3; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 char(50), -f122 char(50), -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 char(50), +f122 char(50), +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) engine = memory; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/memory_tb3.txt' +into table tb3; Testcase 3.5.10.1/2/3: ---------------------- @@ -80,7 +81,7 @@ Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1); Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); Insert into vw11 (f122, f151) values ('Not in View', 3); select f121, f122, f151, f163 -from tb3 where f122 like 'Test 3.5.10.1/2/3%'; +from tb3 where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 @@ -94,7 +95,7 @@ f121 f122 f151 f163 NULL Not in View 3 111.110000000000000000000000000000 Update vw11 set f163=1; select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; +where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 @@ -108,7 +109,7 @@ before delete 0 delete from vw11 where f151=1; select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; +where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 select f121, f122, f151, f163 from vw11; @@ -135,11 +136,11 @@ set @counter= 0; select @counter as 'Rows Loaded Before'; Rows Loaded Before 0 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; +load data infile '/std_data_ln/funcs_1/t9.txt' into table tb_load; select @counter as 'Rows Loaded After'; Rows Loaded After 10 -Select * from tb_load limit 10; +Select * from tb_load order by f1 limit 10; f1 f2 f3 -5000 a` 1000 -4999 aaa 999 @@ -234,7 +235,7 @@ insert into t3 (f1) values (new.f1+1000); create trigger tr2_4 after insert on t2_4 for each row insert into t3 (f1) values (new.f1+10000); insert into t1 values (1); -select * from t3; +select * from t3 order by f1; f1 12 102 @@ -269,17 +270,17 @@ create trigger tr4 after insert on t4 for each row insert into t1 (f1) values (new.f4+1); insert into t1 values (1); ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. -select * from t1; +select * from t1 order by f1; f1 0 1 -select * from t2; +select * from t2 order by f2; f2 2 -select * from t3; +select * from t3 order by f3; f3 3 -select * from t4; +select * from t4 order by f4; f4 4 drop trigger tr1; @@ -291,8 +292,8 @@ drop table t2; drop table t3; drop table t4; -Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889) ----------------------------------------------------------------------- +Testcase y.y.y.4: Recursive trigger/SP references +------------------------------------------------- set @sql_mode='traditional'; create table t1_sp ( count integer, @@ -380,14 +381,14 @@ start transaction; insert into t1 values (1); ERROR 22003: Out of range value adjusted for column 'f4' at row 1 commit; -select * from t1; +select * from t1 order by f1; f1 1 1 -select * from t2; +select * from t2 order by f2; f2 2 -select * from t3; +select * from t3 order by f3; f3 3 drop trigger tr1; diff --git a/mysql-test/suite/funcs_1/r/memory_views.result b/mysql-test/suite/funcs_1/r/memory_views.result index cc50c8219f0..7bd674b8d76 100644 --- a/mysql-test/suite/funcs_1/r/memory_views.result +++ b/mysql-test/suite/funcs_1/r/memory_views.result @@ -1,117 +1,119 @@ USE test; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/memory_tb2.txt' +into table tb2 ; DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set" ) engine = memory; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/memory_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/memory_tb2.txt' +into table tb2 ; USE test; ! Attention: The file with the expected results is not diff --git a/mysql-test/suite/funcs_1/r/myisam_func_view.result b/mysql-test/suite/funcs_1/r/myisam_func_view.result index 94cba9796a2..c2689a36801 100644 --- a/mysql-test/suite/funcs_1/r/myisam_func_view.result +++ b/mysql-test/suite/funcs_1/r/myisam_func_view.result @@ -1,7 +1,3 @@ - -! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables --------------------------------------------------------------------------------- DROP TABLE IF EXISTS t1_selects, t1_modes, t1_values; DROP VIEW IF EXISTS v1; CREATE TABLE t1_values @@ -9,7 +5,7 @@ CREATE TABLE t1_values id BIGINT AUTO_INCREMENT, select_id BIGINT, PRIMARY KEY(id) -) ENGINE = 'MYISAM' ; +) ENGINE = ; ALTER TABLE t1_values ADD my_char_30 CHAR(30); ALTER TABLE t1_values ADD my_varchar_1000 VARCHAR(1000); ALTER TABLE t1_values ADD my_binary_30 BINARY(30); @@ -39,10 +35,10 @@ my_bigint = -9223372036854775808, my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 , my_double = -1.7976931348623E+308; INSERT INTO t1_values SET -my_char_30 = '<--------30 characters------->', +my_char_30 = '<--------30 characters------->', my_varchar_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), -my_binary_30 = '<--------30 characters------->', +my_binary_30 = '<--------30 characters------->', my_varbinary_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), my_datetime = '9999-12-31 23:59:59', @@ -54,23 +50,23 @@ my_bigint = 9223372036854775807, my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 , my_double = 1.7976931348623E+308; INSERT INTO t1_values SET -my_char_30 = ' ---äÖüß@µ*$-- ', -my_varchar_1000 = ' ---äÖüß@µ*$-- ', -my_binary_30 = ' ---äÖüß@µ*$-- ', -my_varbinary_1000 = ' ---äÖüß@µ*$-- ', +my_char_30 = ' ---äÖüß@µ*$-- ', +my_varchar_1000 = ' ---äÖüß@µ*$-- ', +my_binary_30 = ' ---äÖüß@µ*$-- ', +my_varbinary_1000 = ' ---äÖüß@µ*$-- ', my_datetime = '2004-02-29 23:59:59', my_date = '2004-02-29', my_timestamp = '2004-02-29 23:59:59', my_time = '13:00:00', my_year = 2000, -my_bigint = 0, +my_bigint = 0, my_decimal = 0.0, my_double = 0; INSERT INTO t1_values SET -my_char_30 = '-1', -my_varchar_1000 = '-1', -my_binary_30 = '-1', -my_varbinary_1000 = '-1', +my_char_30 = '-1', +my_varchar_1000 = '-1', +my_binary_30 = '-1', +my_varbinary_1000 = '-1', my_datetime = '2005-06-28 10:00:00', my_date = '2005-06-28', my_timestamp = '2005-06-28 10:00:00', @@ -89,6 +85,9 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 4; INSERT INTO t1_values SET select_id = @select_id, my_bigint = -25; +##### 1.1.1. CAST --> BINARY +##### 1.1.2. CAST --> CHAR +##### 1.1.3. CAST --> DATE INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '2005-06-27'; INSERT INTO t1_values SET select_id = @select_id, @@ -101,6 +100,7 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 20050627; INSERT INTO t1_values SET select_id = @select_id, my_double = +20.050627E+6; +##### 1.1.4. CAST --> DATETIME INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '2005-06-27 17:58'; INSERT INTO t1_values SET select_id = @select_id, @@ -113,6 +113,7 @@ INSERT INTO t1_values SET select_id = @select_id, my_bigint = 200506271758; INSERT INTO t1_values SET select_id = @select_id, my_double = +0.0200506271758E+13; +##### 1.1.5. CAST --> TIME INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '1 17:58'; INSERT INTO t1_values SET select_id = @select_id, @@ -123,10 +124,9 @@ INSERT INTO t1_values SET select_id = @select_id, my_varbinary_1000 = '1 17:58'; INSERT INTO t1_values SET select_id = @select_id, my_bigint = 1758; - -some statements disabled because of -Bug#12440: CAST(data type DOUBLE AS TIME) strange results --------------------------------------------------------------------------------- +INSERT INTO t1_values SET select_id = @select_id, +my_double = +1.758E+3; +##### 1.1.6. CAST --> DECIMAL INSERT INTO t1_values SET select_id = @select_id, my_char_30 = '-3333.3333'; INSERT INTO t1_values SET select_id = @select_id, @@ -135,51 +135,39 @@ INSERT INTO t1_values SET select_id = @select_id, my_binary_30 = '-3333.3333'; INSERT INTO t1_values SET select_id = @select_id, my_varbinary_1000 = '-3333.3333'; - -some statements disabled because of -Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian --------------------------------------------------------------------------------- +INSERT INTO t1_values SET select_id = @select_id, +my_double = -0.33333333E+4; +##### 1.1.7. CAST --> SIGNED INTEGER "Attention: CAST --> SIGNED INTEGER - The file with expected results suffers from - Bug#5083 Big integer values are inserted as negative into - decimal/string columns Bug#5913 Traditional mode: BIGINT range not correctly delimited - Both have the status: To be fixed later" --------------------------------------------------------------------------------- - -some statements disabled because of -Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result + Status: To be fixed later" -------------------------------------------------------------------------------- +##### 1.1.8. CAST --> UNSIGNED INTEGER "Attention: CAST --> UNSIGNED INTEGER - The file with expected results suffers from Bug 5083 5913 9809" + The file with expected results suffers from Bug 5913" -------------------------------------------------------------------------------- some statements disabled because of -Bugs#8663: cant use bgint unsigned as input to cast +Bug#5913 Traditional mode: BIGINT range not correctly delimited -------------------------------------------------------------------------------- -SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8), +SET @my_select = 'SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8), +SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8), +SET @my_select = 'SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8), +SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values'; -SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r), +SET @my_select = 'SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values'; - -"Attention: IF(my_year IS NULL, ... - The file with expected results suffers from - Bug#11689. successful CREATE VIEW but SELECT on view fails." --------------------------------------------------------------------------------- SET @my_select = 'SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT BIT_LENGTH(my_varchar_1000), @@ -192,22 +180,20 @@ SET @my_select = 'SELECT INSTR(my_char_30, ''char''), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values'; -SET @my_select = +SET @my_select = 'SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values'; - -"Attention: LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', ) - The file with expected results suffers from Bug 10963 11728" - and the testcases with length = BIGINT or DOUBLE column are deactivated, -because there are 32/64 Bit differences --------------------------------------------------------------------------------- +SET @my_select = +'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_bigint), my_bigint, id FROM t1_values'; SET @my_select = 'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_decimal), my_decimal, id FROM t1_values'; +SET @my_select = +'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', my_double), my_double, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_varchar_1000), @@ -216,8 +202,10 @@ SET @my_select = 'SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values'; SET @my_select = 'SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values'; -SET @my_select = -'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values'; +SET @my_select = +'SELECT LOAD_FILE(''/std_data_ln/funcs_1/load_file.txt'') + AS my_col, + id FROM t1_values'; SET @my_select = 'SELECT LOCATE(''char'', my_char_30), my_char_30, id FROM t1_values'; SET @my_select = 'SELECT LOCATE(''char'', my_varchar_1000), @@ -299,19 +287,19 @@ SET sql_mode = ''; -------------------------------------------------------------------------------- CREATE VIEW v1 AS SELECT my_char_30, id FROM t1_values; SELECT my_char_30, id FROM t1_values -WHERE select_id = 187 OR select_id IS NULL; +WHERE select_id = 193 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 187 OR select_id IS NULL); +WHERE select_id = 193 OR select_id IS NULL) order by id; DROP VIEW v1; CREATE VIEW v1 AS SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values; SELECT CONCAT('A',my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 186 OR select_id IS NULL; +WHERE select_id = 192 OR select_id IS NULL order by id; CONCAT('A',my_char_30) my_char_30 id NULL NULL 1 A 2 @@ -323,7 +311,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select concat(_latin1'A',`t1_values`.`my_char_30`) AS `CONCAT('A',my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 186 OR select_id IS NULL); +WHERE select_id = 192 OR select_id IS NULL) order by id; CONCAT('A',my_char_30) my_char_30 id NULL NULL 1 A 2 @@ -337,13 +325,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LTRIM(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 185 OR select_id IS NULL; +WHERE select_id = 191 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varbinary_1000`) AS `LTRIM(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 185 OR select_id IS NULL); +WHERE select_id = 191 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -351,13 +339,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_binary_30), my_binary_30, id FROM t1_values; SELECT LTRIM(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 184 OR select_id IS NULL; +WHERE select_id = 190 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_binary_30`) AS `LTRIM(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 184 OR select_id IS NULL); +WHERE select_id = 190 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -365,13 +353,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LTRIM(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 183 OR select_id IS NULL; +WHERE select_id = 189 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_varchar_1000`) AS `LTRIM(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 183 OR select_id IS NULL); +WHERE select_id = 189 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -379,13 +367,13 @@ CREATE VIEW v1 AS SELECT LTRIM(my_char_30), my_char_30, id FROM t1_values; SELECT LTRIM(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 182 OR select_id IS NULL; +WHERE select_id = 188 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ltrim(`t1_values`.`my_char_30`) AS `LTRIM(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 182 OR select_id IS NULL); +WHERE select_id = 188 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -393,13 +381,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LOWER(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 181 OR select_id IS NULL; +WHERE select_id = 187 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varbinary_1000`) AS `LOWER(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 181 OR select_id IS NULL); +WHERE select_id = 187 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -407,13 +395,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_binary_30), my_binary_30, id FROM t1_values; SELECT LOWER(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 180 OR select_id IS NULL; +WHERE select_id = 186 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_binary_30`) AS `LOWER(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 180 OR select_id IS NULL); +WHERE select_id = 186 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -421,13 +409,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LOWER(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 179 OR select_id IS NULL; +WHERE select_id = 185 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LOWER(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 179 OR select_id IS NULL); +WHERE select_id = 185 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -435,13 +423,13 @@ CREATE VIEW v1 AS SELECT LOWER(my_char_30), my_char_30, id FROM t1_values; SELECT LOWER(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 178 OR select_id IS NULL; +WHERE select_id = 184 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_char_30`) AS `LOWER(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 178 OR select_id IS NULL); +WHERE select_id = 184 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -449,13 +437,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_decimal), my_decimal, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_decimal), my_decimal, id FROM t1_values -WHERE select_id = 177 OR select_id IS NULL; +WHERE select_id = 183 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_decimal`) AS `LOCATE('-', ' - -ABC', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 177 OR select_id IS NULL); +WHERE select_id = 183 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -463,13 +451,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_double), my_double, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_double), my_double, id FROM t1_values -WHERE select_id = 176 OR select_id IS NULL; +WHERE select_id = 182 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_double`) AS `LOCATE('-', ' - -ABC', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 176 OR select_id IS NULL); +WHERE select_id = 182 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -477,13 +465,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', ' - -ABC', my_bigint), my_bigint, id FROM t1_values; SELECT LOCATE('-', ' - -ABC', my_bigint), my_bigint, id FROM t1_values -WHERE select_id = 175 OR select_id IS NULL; +WHERE select_id = 181 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',_latin1' - -ABC',`t1_values`.`my_bigint`) AS `LOCATE('-', ' - -ABC', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 175 OR select_id IS NULL); +WHERE select_id = 181 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -491,13 +479,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_varbinary_1000, 3), my_varbinary_1000, id FROM t1_values; SELECT LOCATE('-', my_varbinary_1000, 3), my_varbinary_1000, id FROM t1_values -WHERE select_id = 174 OR select_id IS NULL; +WHERE select_id = 180 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varbinary_1000`,3) AS `LOCATE('-', my_varbinary_1000, 3)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 174 OR select_id IS NULL); +WHERE select_id = 180 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -505,13 +493,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_binary_30, 3), my_binary_30, id FROM t1_values; SELECT LOCATE('-', my_binary_30, 3), my_binary_30, id FROM t1_values -WHERE select_id = 173 OR select_id IS NULL; +WHERE select_id = 179 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_binary_30`,3) AS `LOCATE('-', my_binary_30, 3)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 173 OR select_id IS NULL); +WHERE select_id = 179 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -519,13 +507,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_varchar_1000, 3), my_varchar_1000, id FROM t1_values; SELECT LOCATE('-', my_varchar_1000, 3), my_varchar_1000, id FROM t1_values -WHERE select_id = 172 OR select_id IS NULL; +WHERE select_id = 178 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_varchar_1000`,3) AS `LOCATE('-', my_varchar_1000, 3)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 172 OR select_id IS NULL); +WHERE select_id = 178 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -533,13 +521,13 @@ CREATE VIEW v1 AS SELECT LOCATE('-', my_char_30, 3), my_char_30, id FROM t1_values; SELECT LOCATE('-', my_char_30, 3), my_char_30, id FROM t1_values -WHERE select_id = 171 OR select_id IS NULL; +WHERE select_id = 177 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'-',`t1_values`.`my_char_30`,3) AS `LOCATE('-', my_char_30, 3)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 171 OR select_id IS NULL); +WHERE select_id = 177 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -547,13 +535,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_binary_30 ), my_varbinary_1000, my_binary_30 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_binary_30 ), my_varbinary_1000, my_binary_30 id FROM t1_values -WHERE select_id = 170 OR select_id IS NULL; +WHERE select_id = 176 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varbinary_1000, my_binary_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 170 OR select_id IS NULL); +WHERE select_id = 176 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -561,13 +549,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ), my_varbinary_1000, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_varchar_1000 ), my_varbinary_1000, my_varchar_1000 id FROM t1_values -WHERE select_id = 169 OR select_id IS NULL; +WHERE select_id = 175 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varbinary_1000, my_varchar_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 169 OR select_id IS NULL); +WHERE select_id = 175 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -575,13 +563,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_char_30 ), my_varbinary_1000, my_char_30 id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_char_30 ), my_varbinary_1000, my_char_30 id FROM t1_values -WHERE select_id = 168 OR select_id IS NULL; +WHERE select_id = 174 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varbinary_1000, my_char_30 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 168 OR select_id IS NULL); +WHERE select_id = 174 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -589,13 +577,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ), my_varbinary_1000, id FROM t1_values; SELECT LOCATE(my_varbinary_1000, my_varbinary_1000 ), my_varbinary_1000, id FROM t1_values -WHERE select_id = 167 OR select_id IS NULL; +WHERE select_id = 173 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varbinary_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varbinary_1000, my_varbinary_1000 )`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 167 OR select_id IS NULL); +WHERE select_id = 173 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -603,13 +591,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varbinary_1000 ), my_binary_30, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_binary_30, my_varbinary_1000 ), my_binary_30, my_varbinary_1000 id FROM t1_values -WHERE select_id = 166 OR select_id IS NULL; +WHERE select_id = 172 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_binary_30, my_varbinary_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 166 OR select_id IS NULL); +WHERE select_id = 172 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -617,13 +605,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_varchar_1000 ), my_binary_30, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_binary_30, my_varchar_1000 ), my_binary_30, my_varchar_1000 id FROM t1_values -WHERE select_id = 165 OR select_id IS NULL; +WHERE select_id = 171 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_binary_30, my_varchar_1000 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 165 OR select_id IS NULL); +WHERE select_id = 171 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -631,13 +619,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_char_30 ), my_binary_30, my_char_30 id FROM t1_values; SELECT LOCATE(my_binary_30, my_char_30 ), my_binary_30, my_char_30 id FROM t1_values -WHERE select_id = 164 OR select_id IS NULL; +WHERE select_id = 170 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_binary_30, my_char_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 164 OR select_id IS NULL); +WHERE select_id = 170 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -645,13 +633,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_binary_30, my_binary_30 ), my_binary_30, id FROM t1_values; SELECT LOCATE(my_binary_30, my_binary_30 ), my_binary_30, id FROM t1_values -WHERE select_id = 163 OR select_id IS NULL; +WHERE select_id = 169 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_binary_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_binary_30, my_binary_30 )`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 163 OR select_id IS NULL); +WHERE select_id = 169 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -659,13 +647,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ), my_varchar_1000, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_varbinary_1000 ), my_varchar_1000, my_varbinary_1000 id FROM t1_values -WHERE select_id = 162 OR select_id IS NULL; +WHERE select_id = 168 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_varchar_1000, my_varbinary_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 162 OR select_id IS NULL); +WHERE select_id = 168 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -673,13 +661,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_binary_30 ), my_varchar_1000, my_binary_30 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_binary_30 ), my_varchar_1000, my_binary_30 id FROM t1_values -WHERE select_id = 161 OR select_id IS NULL; +WHERE select_id = 167 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_binary_30`) AS `LOCATE(my_varchar_1000, my_binary_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 161 OR select_id IS NULL); +WHERE select_id = 167 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -687,13 +675,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_char_30 ), my_varchar_1000, my_char_30 id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_char_30 ), my_varchar_1000, my_char_30 id FROM t1_values -WHERE select_id = 160 OR select_id IS NULL; +WHERE select_id = 166 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_char_30`) AS `LOCATE(my_varchar_1000, my_char_30 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`my_char_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 160 OR select_id IS NULL); +WHERE select_id = 166 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -701,13 +689,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_varchar_1000, my_varchar_1000 ), my_varchar_1000, id FROM t1_values; SELECT LOCATE(my_varchar_1000, my_varchar_1000 ), my_varchar_1000, id FROM t1_values -WHERE select_id = 159 OR select_id IS NULL; +WHERE select_id = 165 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_varchar_1000`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_varchar_1000, my_varchar_1000 )`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 159 OR select_id IS NULL); +WHERE select_id = 165 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -715,13 +703,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varbinary_1000 ), my_char_30, my_varbinary_1000 id FROM t1_values; SELECT LOCATE(my_char_30, my_varbinary_1000 ), my_char_30, my_varbinary_1000 id FROM t1_values -WHERE select_id = 158 OR select_id IS NULL; +WHERE select_id = 164 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varbinary_1000`) AS `LOCATE(my_char_30, my_varbinary_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varbinary_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 158 OR select_id IS NULL); +WHERE select_id = 164 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -729,13 +717,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_binary_30 ), my_char_30, my_binary_30 id FROM t1_values; SELECT LOCATE(my_char_30, my_binary_30 ), my_char_30, my_binary_30 id FROM t1_values -WHERE select_id = 157 OR select_id IS NULL; +WHERE select_id = 163 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_binary_30`) AS `LOCATE(my_char_30, my_binary_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_binary_30` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 157 OR select_id IS NULL); +WHERE select_id = 163 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -743,13 +731,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_varchar_1000 ), my_char_30, my_varchar_1000 id FROM t1_values; SELECT LOCATE(my_char_30, my_varchar_1000 ), my_char_30, my_varchar_1000 id FROM t1_values -WHERE select_id = 156 OR select_id IS NULL; +WHERE select_id = 162 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_varchar_1000`) AS `LOCATE(my_char_30, my_varchar_1000 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`my_varchar_1000` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 156 OR select_id IS NULL); +WHERE select_id = 162 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -757,13 +745,13 @@ CREATE VIEW v1 AS SELECT LOCATE(my_char_30, my_char_30 ), my_char_30, id FROM t1_values; SELECT LOCATE(my_char_30, my_char_30 ), my_char_30, id FROM t1_values -WHERE select_id = 155 OR select_id IS NULL; +WHERE select_id = 161 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(`t1_values`.`my_char_30`,`t1_values`.`my_char_30`) AS `LOCATE(my_char_30, my_char_30 )`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 155 OR select_id IS NULL); +WHERE select_id = 161 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -771,13 +759,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LOCATE('char', my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 154 OR select_id IS NULL; +WHERE select_id = 160 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varbinary_1000`) AS `LOCATE('char', my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 154 OR select_id IS NULL); +WHERE select_id = 160 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -785,13 +773,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_binary_30), my_binary_30, id FROM t1_values; SELECT LOCATE('char', my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 153 OR select_id IS NULL; +WHERE select_id = 159 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_binary_30`) AS `LOCATE('char', my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 153 OR select_id IS NULL); +WHERE select_id = 159 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -799,13 +787,13 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LOCATE('char', my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 152 OR select_id IS NULL; +WHERE select_id = 158 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_varchar_1000`) AS `LOCATE('char', my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 152 OR select_id IS NULL); +WHERE select_id = 158 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -813,46 +801,50 @@ CREATE VIEW v1 AS SELECT LOCATE('char', my_char_30), my_char_30, id FROM t1_values; SELECT LOCATE('char', my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 151 OR select_id IS NULL; +WHERE select_id = 157 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `LOCATE('char', my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 151 OR select_id IS NULL); +WHERE select_id = 157 OR select_id IS NULL) order by id; DROP VIEW v1; -CREATE VIEW v1 AS SELECT LOAD_FILE('../log/current_test'), id FROM t1_values; -SELECT LOAD_FILE('../log/current_test'), id FROM t1_values -WHERE select_id = 150 OR select_id IS NULL; -LOAD_FILE('../log/current_test') id -CURRENT_TEST: myisam_func_view +CREATE VIEW v1 AS SELECT LOAD_FILE('/std_data_ln/funcs_1/load_file.txt') + AS my_col, + id FROM t1_values; +SELECT LOAD_FILE('/std_data_ln/funcs_1/load_file.txt') + AS my_col, + id FROM t1_values +WHERE select_id = 156 OR select_id IS NULL order by id; +my_col id +Here is content from load_file 1 -CURRENT_TEST: myisam_func_view +Here is content from load_file 2 -CURRENT_TEST: myisam_func_view +Here is content from load_file 3 -CURRENT_TEST: myisam_func_view +Here is content from load_file 4 -CURRENT_TEST: myisam_func_view +Here is content from load_file 5 SHOW CREATE VIEW v1; View Create View -v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'../log/current_test') AS `LOAD_FILE('../log/current_test')`,`t1_values`.`id` AS `id` from `t1_values` +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select load_file(_latin1'/std_data_ln/funcs_1/load_file.txt') AS `my_col`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 150 OR select_id IS NULL); -LOAD_FILE('../log/current_test') id -CURRENT_TEST: myisam_func_view +WHERE select_id = 156 OR select_id IS NULL) order by id; +my_col id +Here is content from load_file 1 -CURRENT_TEST: myisam_func_view +Here is content from load_file 2 -CURRENT_TEST: myisam_func_view +Here is content from load_file 3 -CURRENT_TEST: myisam_func_view +Here is content from load_file 4 -CURRENT_TEST: myisam_func_view +Here is content from load_file 5 DROP VIEW v1; @@ -861,13 +853,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 149 OR select_id IS NULL; +WHERE select_id = 155 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varbinary_1000`) AS `LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 149 OR select_id IS NULL); +WHERE select_id = 155 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -875,13 +867,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values; SELECT LENGTH(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 148 OR select_id IS NULL; +WHERE select_id = 154 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_binary_30`) AS `LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 148 OR select_id IS NULL); +WHERE select_id = 154 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -889,13 +881,13 @@ CREATE VIEW v1 AS SELECT LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 147 OR select_id IS NULL; +WHERE select_id = 153 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_varchar_1000`) AS `LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 147 OR select_id IS NULL); +WHERE select_id = 153 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -903,19 +895,49 @@ CREATE VIEW v1 AS SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values; SELECT LENGTH(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 146 OR select_id IS NULL; +WHERE select_id = 152 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select length(`t1_values`.`my_char_30`) AS `LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 146 OR select_id IS NULL); +WHERE select_id = 152 OR select_id IS NULL) order by id; +DROP VIEW v1; + + +CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double), my_double, id FROM t1_values; +SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double), my_double, id FROM t1_values +WHERE select_id = 151 OR select_id IS NULL order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double) my_double id +NULL NULL 1 + -1.7976931348623e+308 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 1.7976931348623e+308 3 + 0 4 + -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_double`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 151 OR select_id IS NULL) order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_double) my_double id +NULL NULL 1 + -1.7976931348623e+308 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 1.7976931348623e+308 3 + 0 4 + -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values; SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal), my_decimal, id FROM t1_values -WHERE select_id = 145 OR select_id IS NULL; +WHERE select_id = 150 OR select_id IS NULL order by id; LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -930,7 +952,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_decimal`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 145 OR select_id IS NULL); +WHERE select_id = 150 OR select_id IS NULL) order by id; LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_decimal) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -943,9 +965,33 @@ Error 1292 Truncated incorrect DECIMAL value: '' DROP VIEW v1; +CREATE VIEW v1 AS SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint), my_bigint, id FROM t1_values; +SELECT LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint), my_bigint, id FROM t1_values +WHERE select_id = 149 OR select_id IS NULL order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint) my_bigint id +NULL NULL 1 + -9223372036854775808 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9223372036854775807 3 + 0 4 + -1 5 +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(_latin1'AaBbCcDdEeFfGgHhIiJj',`t1_values`.`my_bigint`) AS `LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 149 OR select_id IS NULL) order by id; +LEFT('AaBbCcDdEeFfGgHhIiJjÄäÜüÖö', my_bigint) my_bigint id +NULL NULL 1 + -9223372036854775808 2 +AaBbCcDdEeFfGgHhIiJjÄäÜüÖö 9223372036854775807 3 + 0 4 + -1 5 +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values; SELECT LEFT(my_varbinary_1000, 2), my_varbinary_1000, id FROM t1_values -WHERE select_id = 144 OR select_id IS NULL; +WHERE select_id = 148 OR select_id IS NULL order by id; LEFT(my_varbinary_1000, 2) my_varbinary_1000 id NULL NULL 1 2 @@ -957,7 +1003,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varbinary_1000`,2) AS `LEFT(my_varbinary_1000, 2)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 144 OR select_id IS NULL); +WHERE select_id = 148 OR select_id IS NULL) order by id; LEFT(my_varbinary_1000, 2) my_varbinary_1000 id NULL NULL 1 2 @@ -969,19 +1015,19 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values; SELECT LEFT(my_binary_30, 2), my_binary_30, id FROM t1_values -WHERE select_id = 143 OR select_id IS NULL; +WHERE select_id = 147 OR select_id IS NULL order by id; LEFT(my_binary_30, 2) my_binary_30 id NULL NULL 1 - 2 + 2 <- <--------30 characters-------> 3 - - ---äÖüß@µ*$-- 4 --1 -1 5 + - ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_binary_30`,2) AS `LEFT(my_binary_30, 2)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 143 OR select_id IS NULL); +WHERE select_id = 147 OR select_id IS NULL) order by id; LEFT(my_binary_30, 2) my_binary_30 id NULL NULL 1 2 @@ -993,7 +1039,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values; SELECT LEFT(my_varchar_1000, 2), my_varchar_1000, id FROM t1_values -WHERE select_id = 142 OR select_id IS NULL; +WHERE select_id = 146 OR select_id IS NULL order by id; LEFT(my_varchar_1000, 2) my_varchar_1000 id NULL NULL 1 2 @@ -1005,7 +1051,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_varchar_1000`,2) AS `LEFT(my_varchar_1000, 2)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 142 OR select_id IS NULL); +WHERE select_id = 146 OR select_id IS NULL) order by id; LEFT(my_varchar_1000, 2) my_varchar_1000 id NULL NULL 1 2 @@ -1017,7 +1063,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values; SELECT LEFT(my_char_30, 2), my_char_30, id FROM t1_values -WHERE select_id = 141 OR select_id IS NULL; +WHERE select_id = 145 OR select_id IS NULL order by id; LEFT(my_char_30, 2) my_char_30 id NULL NULL 1 2 @@ -1029,7 +1075,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select left(`t1_values`.`my_char_30`,2) AS `LEFT(my_char_30, 2)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 141 OR select_id IS NULL); +WHERE select_id = 145 OR select_id IS NULL) order by id; LEFT(my_char_30, 2) my_char_30 id NULL NULL 1 2 @@ -1043,13 +1089,13 @@ CREATE VIEW v1 AS SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT LCASE(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 140 OR select_id IS NULL; +WHERE select_id = 144 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select lcase(`t1_values`.`my_varchar_1000`) AS `LCASE(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 140 OR select_id IS NULL); +WHERE select_id = 144 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -1057,13 +1103,13 @@ CREATE VIEW v1 AS SELECT INSTR(my_char_30, 'char'), my_char_30, id FROM t1_values; SELECT INSTR(my_char_30, 'char'), my_char_30, id FROM t1_values -WHERE select_id = 139 OR select_id IS NULL; +WHERE select_id = 143 OR select_id IS NULL order by id; SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select locate(_latin1'char',`t1_values`.`my_char_30`) AS `INSTR(my_char_30, 'char')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 139 OR select_id IS NULL); +WHERE select_id = 143 OR select_id IS NULL) order by id; DROP VIEW v1; @@ -1071,7 +1117,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values; SELECT BIT_LENGTH(my_varbinary_1000), my_varbinary_1000, id FROM t1_values -WHERE select_id = 138 OR select_id IS NULL; +WHERE select_id = 142 OR select_id IS NULL order by id; BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id NULL NULL 1 0 2 @@ -1083,7 +1129,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varbinary_1000`) AS `BIT_LENGTH(my_varbinary_1000)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 138 OR select_id IS NULL); +WHERE select_id = 142 OR select_id IS NULL) order by id; BIT_LENGTH(my_varbinary_1000) my_varbinary_1000 id NULL NULL 1 0 2 @@ -1097,19 +1143,19 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_binary_30), my_binary_30, id FROM t1_values; SELECT BIT_LENGTH(my_binary_30), my_binary_30, id FROM t1_values -WHERE select_id = 137 OR select_id IS NULL; +WHERE select_id = 141 OR select_id IS NULL order by id; BIT_LENGTH(my_binary_30) my_binary_30 id NULL NULL 1 -240 2 +240 2 240 <--------30 characters-------> 3 -240 ---äÖüß@µ*$-- 4 -240 -1 5 +240 ---äÖüß@µ*$-- 4 +240 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_binary_30`) AS `BIT_LENGTH(my_binary_30)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 137 OR select_id IS NULL); +WHERE select_id = 141 OR select_id IS NULL) order by id; BIT_LENGTH(my_binary_30) my_binary_30 id NULL NULL 1 240 2 @@ -1123,7 +1169,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values; SELECT BIT_LENGTH(my_varchar_1000), my_varchar_1000, id FROM t1_values -WHERE select_id = 136 OR select_id IS NULL; +WHERE select_id = 140 OR select_id IS NULL order by id; BIT_LENGTH(my_varchar_1000) my_varchar_1000 id NULL NULL 1 0 2 @@ -1135,7 +1181,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_varchar_1000`) AS `BIT_LENGTH(my_varchar_1000)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 136 OR select_id IS NULL); +WHERE select_id = 140 OR select_id IS NULL) order by id; BIT_LENGTH(my_varchar_1000) my_varchar_1000 id NULL NULL 1 0 2 @@ -1149,7 +1195,7 @@ CREATE VIEW v1 AS SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values; SELECT BIT_LENGTH(my_char_30), my_char_30, id FROM t1_values -WHERE select_id = 135 OR select_id IS NULL; +WHERE select_id = 139 OR select_id IS NULL order by id; BIT_LENGTH(my_char_30) my_char_30 id NULL NULL 1 0 2 @@ -1161,7 +1207,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select bit_length(`t1_values`.`my_char_30`) AS `BIT_LENGTH(my_char_30)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 135 OR select_id IS NULL); +WHERE select_id = 139 OR select_id IS NULL) order by id; BIT_LENGTH(my_char_30) my_char_30 id NULL NULL 1 0 2 @@ -1175,7 +1221,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_year,'IS_NULL'), my_year, id FROM t1_values; SELECT IFNULL(my_year,'IS_NULL'), my_year, id FROM t1_values -WHERE select_id = 134 OR select_id IS NULL; +WHERE select_id = 138 OR select_id IS NULL order by id; IFNULL(my_year,'IS_NULL') my_year id IS_NULL NULL 1 1901 1901 2 @@ -1187,7 +1233,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_year`,_latin1'IS_NULL') AS `IFNULL(my_year,'IS_NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 134 OR select_id IS NULL); +WHERE select_id = 138 OR select_id IS NULL) order by id; IFNULL(my_year,'IS_NULL') my_year id IS_NULL NULL 1 1901 1901 2 @@ -1201,7 +1247,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_time,'IS_NULL'), my_time, id FROM t1_values; SELECT IFNULL(my_time,'IS_NULL'), my_time, id FROM t1_values -WHERE select_id = 133 OR select_id IS NULL; +WHERE select_id = 137 OR select_id IS NULL order by id; IFNULL(my_time,'IS_NULL') my_time id IS_NULL NULL 1 -838:59:59 -838:59:59 2 @@ -1213,7 +1259,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_time`,_latin1'IS_NULL') AS `IFNULL(my_time,'IS_NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 133 OR select_id IS NULL); +WHERE select_id = 137 OR select_id IS NULL) order by id; IFNULL(my_time,'IS_NULL') my_time id IS_NULL NULL 1 -838:59:59 -838:59:59 2 @@ -1227,7 +1273,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_timestamp,'IS_NULL'), my_timestamp, id FROM t1_values; SELECT IFNULL(my_timestamp,'IS_NULL'), my_timestamp, id FROM t1_values -WHERE select_id = 132 OR select_id IS NULL; +WHERE select_id = 136 OR select_id IS NULL order by id; IFNULL(my_timestamp,'IS_NULL') my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -1239,7 +1285,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_timestamp`,_latin1'IS_NULL') AS `IFNULL(my_timestamp,'IS_NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 132 OR select_id IS NULL); +WHERE select_id = 136 OR select_id IS NULL) order by id; IFNULL(my_timestamp,'IS_NULL') my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -1253,7 +1299,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_date,'IS_NULL'), my_date, id FROM t1_values; SELECT IFNULL(my_date,'IS_NULL'), my_date, id FROM t1_values -WHERE select_id = 131 OR select_id IS NULL; +WHERE select_id = 135 OR select_id IS NULL order by id; IFNULL(my_date,'IS_NULL') my_date id IS_NULL NULL 1 0001-01-01 0001-01-01 2 @@ -1265,7 +1311,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_date`,_latin1'IS_NULL') AS `IFNULL(my_date,'IS_NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 131 OR select_id IS NULL); +WHERE select_id = 135 OR select_id IS NULL) order by id; IFNULL(my_date,'IS_NULL') my_date id IS_NULL NULL 1 0001-01-01 0001-01-01 2 @@ -1279,7 +1325,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_datetime,'IS_NULL'), my_datetime, id FROM t1_values; SELECT IFNULL(my_datetime,'IS_NULL'), my_datetime, id FROM t1_values -WHERE select_id = 130 OR select_id IS NULL; +WHERE select_id = 134 OR select_id IS NULL order by id; IFNULL(my_datetime,'IS_NULL') my_datetime id IS_NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -1291,7 +1337,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_datetime`,_latin1'IS_NULL') AS `IFNULL(my_datetime,'IS_NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 130 OR select_id IS NULL); +WHERE select_id = 134 OR select_id IS NULL) order by id; IFNULL(my_datetime,'IS_NULL') my_datetime id IS_NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -1305,7 +1351,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_double,'IS_NULL'), my_double, id FROM t1_values; SELECT IFNULL(my_double,'IS_NULL'), my_double, id FROM t1_values -WHERE select_id = 129 OR select_id IS NULL; +WHERE select_id = 133 OR select_id IS NULL order by id; IFNULL(my_double,'IS_NULL') my_double id IS_NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -1317,7 +1363,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_double`,_latin1'IS_NULL') AS `IFNULL(my_double,'IS_NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 129 OR select_id IS NULL); +WHERE select_id = 133 OR select_id IS NULL) order by id; IFNULL(my_double,'IS_NULL') my_double id IS_NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -1331,7 +1377,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_decimal,'IS_NULL'), my_decimal, id FROM t1_values; SELECT IFNULL(my_decimal,'IS_NULL'), my_decimal, id FROM t1_values -WHERE select_id = 128 OR select_id IS NULL; +WHERE select_id = 132 OR select_id IS NULL order by id; IFNULL(my_decimal,'IS_NULL') my_decimal id IS_NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -1343,7 +1389,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_decimal`,_latin1'IS_NULL') AS `IFNULL(my_decimal,'IS_NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 128 OR select_id IS NULL); +WHERE select_id = 132 OR select_id IS NULL) order by id; IFNULL(my_decimal,'IS_NULL') my_decimal id IS_NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -1357,7 +1403,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_bigint,'IS_NULL'), my_bigint, id FROM t1_values; SELECT IFNULL(my_bigint,'IS_NULL'), my_bigint, id FROM t1_values -WHERE select_id = 127 OR select_id IS NULL; +WHERE select_id = 131 OR select_id IS NULL order by id; IFNULL(my_bigint,'IS_NULL') my_bigint id IS_NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -1369,7 +1415,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_bigint`,_latin1'IS_NULL') AS `IFNULL(my_bigint,'IS_NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 127 OR select_id IS NULL); +WHERE select_id = 131 OR select_id IS NULL) order by id; IFNULL(my_bigint,'IS_NULL') my_bigint id IS_NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -1383,7 +1429,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_varbinary_1000,'IS_NULL'), my_varbinary_1000, id FROM t1_values; SELECT IFNULL(my_varbinary_1000,'IS_NULL'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 126 OR select_id IS NULL; +WHERE select_id = 130 OR select_id IS NULL order by id; IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id IS_NULL NULL 1 2 @@ -1395,7 +1441,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varbinary_1000`,_latin1'IS_NULL') AS `IFNULL(my_varbinary_1000,'IS_NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 126 OR select_id IS NULL); +WHERE select_id = 130 OR select_id IS NULL) order by id; IFNULL(my_varbinary_1000,'IS_NULL') my_varbinary_1000 id IS_NULL NULL 1 2 @@ -1409,19 +1455,19 @@ CREATE VIEW v1 AS SELECT IFNULL(my_binary_30,'IS_NULL'), my_binary_30, id FROM t1_values; SELECT IFNULL(my_binary_30,'IS_NULL'), my_binary_30, id FROM t1_values -WHERE select_id = 125 OR select_id IS NULL; +WHERE select_id = 129 OR select_id IS NULL order by id; IFNULL(my_binary_30,'IS_NULL') my_binary_30 id IS_NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_binary_30`,_latin1'IS_NULL') AS `IFNULL(my_binary_30,'IS_NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 125 OR select_id IS NULL); +WHERE select_id = 129 OR select_id IS NULL) order by id; IFNULL(my_binary_30,'IS_NULL') my_binary_30 id IS_NULL NULL 1 2 @@ -1435,7 +1481,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_varchar_1000,'IS_NULL'), my_varchar_1000, id FROM t1_values; SELECT IFNULL(my_varchar_1000,'IS_NULL'), my_varchar_1000, id FROM t1_values -WHERE select_id = 124 OR select_id IS NULL; +WHERE select_id = 128 OR select_id IS NULL order by id; IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id IS_NULL NULL 1 2 @@ -1447,7 +1493,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_varchar_1000`,_latin1'IS_NULL') AS `IFNULL(my_varchar_1000,'IS_NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 124 OR select_id IS NULL); +WHERE select_id = 128 OR select_id IS NULL) order by id; IFNULL(my_varchar_1000,'IS_NULL') my_varchar_1000 id IS_NULL NULL 1 2 @@ -1461,7 +1507,7 @@ CREATE VIEW v1 AS SELECT IFNULL(my_char_30,'IS_NULL'), my_char_30, id FROM t1_values; SELECT IFNULL(my_char_30,'IS_NULL'), my_char_30, id FROM t1_values -WHERE select_id = 123 OR select_id IS NULL; +WHERE select_id = 127 OR select_id IS NULL order by id; IFNULL(my_char_30,'IS_NULL') my_char_30 id IS_NULL NULL 1 2 @@ -1473,7 +1519,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select ifnull(`t1_values`.`my_char_30`,_latin1'IS_NULL') AS `IFNULL(my_char_30,'IS_NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 123 OR select_id IS NULL); +WHERE select_id = 127 OR select_id IS NULL) order by id; IFNULL(my_char_30,'IS_NULL') my_char_30 id IS_NULL NULL 1 2 @@ -1487,7 +1533,7 @@ CREATE VIEW v1 AS SELECT IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL'), my_year, id FROM t1_values; SELECT IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL'), my_year, id FROM t1_values -WHERE select_id = 122 OR select_id IS NULL; +WHERE select_id = 126 OR select_id IS NULL order by id; IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL') my_year id IS NULL NULL 1 @@ -1501,7 +1547,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 122 OR select_id IS NULL); +WHERE select_id = 126 OR select_id IS NULL) order by id; IF(my_year IS NULL, 'IS NULL', 'IS NOT NULL') my_year id IS NULL NULL 1 @@ -1516,7 +1562,7 @@ CREATE VIEW v1 AS SELECT IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL'), my_time, id FROM t1_values; SELECT IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL'), my_time, id FROM t1_values -WHERE select_id = 121 OR select_id IS NULL; +WHERE select_id = 125 OR select_id IS NULL order by id; IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL') my_time id IS NULL NULL 1 @@ -1530,7 +1576,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 121 OR select_id IS NULL); +WHERE select_id = 125 OR select_id IS NULL) order by id; IF(my_time IS NULL, 'IS NULL', 'IS NOT NULL') my_time id IS NULL NULL 1 @@ -1545,7 +1591,7 @@ CREATE VIEW v1 AS SELECT IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL'), my_timestamp, id FROM t1_values; SELECT IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL'), my_timestamp, id FROM t1_values -WHERE select_id = 120 OR select_id IS NULL; +WHERE select_id = 124 OR select_id IS NULL order by id; IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL') my_timestamp id IS NOT NULL 0000-00-00 00:00:00 1 @@ -1559,7 +1605,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 120 OR select_id IS NULL); +WHERE select_id = 124 OR select_id IS NULL) order by id; IF(my_timestamp IS NULL, 'IS NULL', 'IS NOT NULL') my_timestamp id IS NOT NULL 0000-00-00 00:00:00 1 @@ -1574,7 +1620,7 @@ CREATE VIEW v1 AS SELECT IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL'), my_date, id FROM t1_values; SELECT IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL'), my_date, id FROM t1_values -WHERE select_id = 119 OR select_id IS NULL; +WHERE select_id = 123 OR select_id IS NULL order by id; IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL') my_date id IS NULL NULL 1 @@ -1588,7 +1634,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 119 OR select_id IS NULL); +WHERE select_id = 123 OR select_id IS NULL) order by id; IF(my_date IS NULL, 'IS NULL', 'IS NOT NULL') my_date id IS NULL NULL 1 @@ -1603,7 +1649,7 @@ CREATE VIEW v1 AS SELECT IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL'), my_datetime, id FROM t1_values; SELECT IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL'), my_datetime, id FROM t1_values -WHERE select_id = 118 OR select_id IS NULL; +WHERE select_id = 122 OR select_id IS NULL order by id; IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL') my_datetime id IS NULL NULL 1 @@ -1617,7 +1663,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 118 OR select_id IS NULL); +WHERE select_id = 122 OR select_id IS NULL) order by id; IF(my_datetime IS NULL, 'IS NULL', 'IS NOT NULL') my_datetime id IS NULL NULL 1 @@ -1632,7 +1678,7 @@ CREATE VIEW v1 AS SELECT IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL'), my_double, id FROM t1_values; SELECT IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL'), my_double, id FROM t1_values -WHERE select_id = 117 OR select_id IS NULL; +WHERE select_id = 121 OR select_id IS NULL order by id; IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL') my_double id IS NULL NULL 1 @@ -1646,7 +1692,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 117 OR select_id IS NULL); +WHERE select_id = 121 OR select_id IS NULL) order by id; IF(my_double IS NULL, 'IS NULL', 'IS NOT NULL') my_double id IS NULL NULL 1 @@ -1661,7 +1707,7 @@ CREATE VIEW v1 AS SELECT IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL'), my_decimal, id FROM t1_values; SELECT IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL'), my_decimal, id FROM t1_values -WHERE select_id = 116 OR select_id IS NULL; +WHERE select_id = 120 OR select_id IS NULL order by id; IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL') my_decimal id IS NULL NULL 1 @@ -1675,7 +1721,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 116 OR select_id IS NULL); +WHERE select_id = 120 OR select_id IS NULL) order by id; IF(my_decimal IS NULL, 'IS NULL', 'IS NOT NULL') my_decimal id IS NULL NULL 1 @@ -1690,7 +1736,7 @@ CREATE VIEW v1 AS SELECT IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL'), my_bigint, id FROM t1_values; SELECT IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL'), my_bigint, id FROM t1_values -WHERE select_id = 115 OR select_id IS NULL; +WHERE select_id = 119 OR select_id IS NULL order by id; IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL') my_bigint id IS NULL NULL 1 @@ -1704,7 +1750,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 115 OR select_id IS NULL); +WHERE select_id = 119 OR select_id IS NULL) order by id; IF(my_bigint IS NULL, 'IS NULL', 'IS NOT NULL') my_bigint id IS NULL NULL 1 @@ -1719,7 +1765,7 @@ CREATE VIEW v1 AS SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varbinary_1000, id FROM t1_values; SELECT IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 114 OR select_id IS NULL; +WHERE select_id = 118 OR select_id IS NULL order by id; IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varbinary_1000 id IS NULL NULL 1 @@ -1733,7 +1779,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 114 OR select_id IS NULL); +WHERE select_id = 118 OR select_id IS NULL) order by id; IF(my_varbinary_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varbinary_1000 id IS NULL NULL 1 @@ -1748,21 +1794,21 @@ CREATE VIEW v1 AS SELECT IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_binary_30, id FROM t1_values; SELECT IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_binary_30, id FROM t1_values -WHERE select_id = 113 OR select_id IS NULL; +WHERE select_id = 117 OR select_id IS NULL order by id; IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_binary_30 id IS NULL NULL 1 -IS NOT NULL 2 +IS NOT NULL 2 IS NOT NULL <--------30 characters-------> 3 -IS NOT NULL ---äÖüß@µ*$-- 4 -IS NOT NULL -1 5 +IS NOT NULL ---äÖüß@µ*$-- 4 +IS NOT NULL -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(isnull(`t1_values`.`my_binary_30`),_latin1'IS NULL',_latin1'IS NOT NULL') AS `IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 113 OR select_id IS NULL); +WHERE select_id = 117 OR select_id IS NULL) order by id; IF(my_binary_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_binary_30 id IS NULL NULL 1 @@ -1777,7 +1823,7 @@ CREATE VIEW v1 AS SELECT IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varchar_1000, id FROM t1_values; SELECT IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL'), my_varchar_1000, id FROM t1_values -WHERE select_id = 112 OR select_id IS NULL; +WHERE select_id = 116 OR select_id IS NULL order by id; IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varchar_1000 id IS NULL NULL 1 @@ -1791,7 +1837,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 112 OR select_id IS NULL); +WHERE select_id = 116 OR select_id IS NULL) order by id; IF(my_varchar_1000 IS NULL, 'IS NULL', 'IS NOT NULL') my_varchar_1000 id IS NULL NULL 1 @@ -1806,7 +1852,7 @@ CREATE VIEW v1 AS SELECT IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_char_30, id FROM t1_values; SELECT IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL'), my_char_30, id FROM t1_values -WHERE select_id = 111 OR select_id IS NULL; +WHERE select_id = 115 OR select_id IS NULL order by id; IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_char_30 id IS NULL NULL 1 @@ -1820,7 +1866,7 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI 'IS NOT NULL')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 111 OR select_id IS NULL); +WHERE select_id = 115 OR select_id IS NULL) order by id; IF(my_char_30 IS NULL, 'IS NULL', 'IS NOT NULL') my_char_30 id IS NULL NULL 1 @@ -1835,7 +1881,7 @@ CREATE VIEW v1 AS SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'), my_year, id FROM t1_values; SELECT IF(my_year, 'IS TRUE', 'IS NOT TRUE'), my_year, id FROM t1_values -WHERE select_id = 110 OR select_id IS NULL; +WHERE select_id = 114 OR select_id IS NULL order by id; IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id IS NOT TRUE NULL 1 IS TRUE 1901 2 @@ -1847,7 +1893,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_year`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_year, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 110 OR select_id IS NULL); +WHERE select_id = 114 OR select_id IS NULL) order by id; IF(my_year, 'IS TRUE', 'IS NOT TRUE') my_year id IS NOT TRUE NULL 1 IS TRUE 1901 2 @@ -1861,7 +1907,7 @@ CREATE VIEW v1 AS SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'), my_time, id FROM t1_values; SELECT IF(my_time, 'IS TRUE', 'IS NOT TRUE'), my_time, id FROM t1_values -WHERE select_id = 109 OR select_id IS NULL; +WHERE select_id = 113 OR select_id IS NULL order by id; IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id IS NOT TRUE NULL 1 IS TRUE -838:59:59 2 @@ -1873,7 +1919,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_time`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_time, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 109 OR select_id IS NULL); +WHERE select_id = 113 OR select_id IS NULL) order by id; IF(my_time, 'IS TRUE', 'IS NOT TRUE') my_time id IS NOT TRUE NULL 1 IS TRUE -838:59:59 2 @@ -1887,7 +1933,7 @@ CREATE VIEW v1 AS SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'), my_timestamp, id FROM t1_values; SELECT IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE'), my_timestamp, id FROM t1_values -WHERE select_id = 108 OR select_id IS NULL; +WHERE select_id = 112 OR select_id IS NULL order by id; IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id IS NOT TRUE 0000-00-00 00:00:00 1 IS TRUE 1970-01-01 03:00:01 2 @@ -1899,7 +1945,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_timestamp`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 108 OR select_id IS NULL); +WHERE select_id = 112 OR select_id IS NULL) order by id; IF(my_timestamp, 'IS TRUE', 'IS NOT TRUE') my_timestamp id IS NOT TRUE 0000-00-00 00:00:00 1 IS TRUE 1970-01-01 03:00:01 2 @@ -1913,7 +1959,7 @@ CREATE VIEW v1 AS SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'), my_date, id FROM t1_values; SELECT IF(my_date, 'IS TRUE', 'IS NOT TRUE'), my_date, id FROM t1_values -WHERE select_id = 107 OR select_id IS NULL; +WHERE select_id = 111 OR select_id IS NULL order by id; IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 2 @@ -1925,7 +1971,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_date`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_date, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 107 OR select_id IS NULL); +WHERE select_id = 111 OR select_id IS NULL) order by id; IF(my_date, 'IS TRUE', 'IS NOT TRUE') my_date id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 2 @@ -1939,7 +1985,7 @@ CREATE VIEW v1 AS SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'), my_datetime, id FROM t1_values; SELECT IF(my_datetime, 'IS TRUE', 'IS NOT TRUE'), my_datetime, id FROM t1_values -WHERE select_id = 106 OR select_id IS NULL; +WHERE select_id = 110 OR select_id IS NULL order by id; IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 00:00:00 2 @@ -1951,7 +1997,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_datetime`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_datetime, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 106 OR select_id IS NULL); +WHERE select_id = 110 OR select_id IS NULL) order by id; IF(my_datetime, 'IS TRUE', 'IS NOT TRUE') my_datetime id IS NOT TRUE NULL 1 IS TRUE 0001-01-01 00:00:00 2 @@ -1965,7 +2011,7 @@ CREATE VIEW v1 AS SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'), my_double, id FROM t1_values; SELECT IF(my_double, 'IS TRUE', 'IS NOT TRUE'), my_double, id FROM t1_values -WHERE select_id = 105 OR select_id IS NULL; +WHERE select_id = 109 OR select_id IS NULL order by id; IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id IS NOT TRUE NULL 1 IS TRUE -1.7976931348623e+308 2 @@ -1977,7 +2023,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_double`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_double, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 105 OR select_id IS NULL); +WHERE select_id = 109 OR select_id IS NULL) order by id; IF(my_double, 'IS TRUE', 'IS NOT TRUE') my_double id IS NOT TRUE NULL 1 IS TRUE -1.7976931348623e+308 2 @@ -1991,7 +2037,7 @@ CREATE VIEW v1 AS SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'), my_decimal, id FROM t1_values; SELECT IF(my_decimal, 'IS TRUE', 'IS NOT TRUE'), my_decimal, id FROM t1_values -WHERE select_id = 104 OR select_id IS NULL; +WHERE select_id = 108 OR select_id IS NULL order by id; IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id IS NOT TRUE NULL 1 IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2003,7 +2049,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_decimal`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_decimal, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 104 OR select_id IS NULL); +WHERE select_id = 108 OR select_id IS NULL) order by id; IF(my_decimal, 'IS TRUE', 'IS NOT TRUE') my_decimal id IS NOT TRUE NULL 1 IS TRUE -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2017,7 +2063,7 @@ CREATE VIEW v1 AS SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'), my_bigint, id FROM t1_values; SELECT IF(my_bigint, 'IS TRUE', 'IS NOT TRUE'), my_bigint, id FROM t1_values -WHERE select_id = 103 OR select_id IS NULL; +WHERE select_id = 107 OR select_id IS NULL order by id; IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id IS NOT TRUE NULL 1 IS TRUE -9223372036854775808 2 @@ -2029,7 +2075,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_bigint`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_bigint, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 103 OR select_id IS NULL); +WHERE select_id = 107 OR select_id IS NULL) order by id; IF(my_bigint, 'IS TRUE', 'IS NOT TRUE') my_bigint id IS NOT TRUE NULL 1 IS TRUE -9223372036854775808 2 @@ -2043,7 +2089,7 @@ CREATE VIEW v1 AS SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'), my_varbinary_1000, id FROM t1_values; SELECT IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE'), my_varbinary_1000, id FROM t1_values -WHERE select_id = 102 OR select_id IS NULL; +WHERE select_id = 106 OR select_id IS NULL order by id; IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2055,7 +2101,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varbinary_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 102 OR select_id IS NULL); +WHERE select_id = 106 OR select_id IS NULL) order by id; IF(my_varbinary_1000, 'IS TRUE', 'IS NOT TRUE') my_varbinary_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2069,13 +2115,13 @@ CREATE VIEW v1 AS SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'), my_binary_30, id FROM t1_values; SELECT IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE'), my_binary_30, id FROM t1_values -WHERE select_id = 101 OR select_id IS NULL; +WHERE select_id = 105 OR select_id IS NULL order by id; IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id IS NOT TRUE NULL 1 -IS NOT TRUE 2 +IS NOT TRUE 2 IS NOT TRUE <--------30 characters-------> 3 -IS NOT TRUE ---äÖüß@µ*$-- 4 -IS TRUE -1 5 +IS NOT TRUE ---äÖüß@µ*$-- 4 +IS TRUE -1 5 Warnings: Warning 1292 Truncated incorrect DOUBLE value: '' Warning 1292 Truncated incorrect DOUBLE value: '<--------30 characters------->' @@ -2086,7 +2132,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_binary_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 101 OR select_id IS NULL); +WHERE select_id = 105 OR select_id IS NULL) order by id; IF(my_binary_30, 'IS TRUE', 'IS NOT TRUE') my_binary_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2105,7 +2151,7 @@ CREATE VIEW v1 AS SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'), my_varchar_1000, id FROM t1_values; SELECT IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE'), my_varchar_1000, id FROM t1_values -WHERE select_id = 100 OR select_id IS NULL; +WHERE select_id = 104 OR select_id IS NULL order by id; IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2117,7 +2163,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_varchar_1000`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 100 OR select_id IS NULL); +WHERE select_id = 104 OR select_id IS NULL) order by id; IF(my_varchar_1000, 'IS TRUE', 'IS NOT TRUE') my_varchar_1000 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2131,7 +2177,7 @@ CREATE VIEW v1 AS SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'), my_char_30, id FROM t1_values; SELECT IF(my_char_30, 'IS TRUE', 'IS NOT TRUE'), my_char_30, id FROM t1_values -WHERE select_id = 99 OR select_id IS NULL; +WHERE select_id = 103 OR select_id IS NULL order by id; IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2146,7 +2192,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select if(`t1_values`.`my_char_30`,_latin1'IS TRUE',_latin1'IS NOT TRUE') AS `IF(my_char_30, 'IS TRUE', 'IS NOT TRUE')`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 99 OR select_id IS NULL); +WHERE select_id = 103 OR select_id IS NULL) order by id; IF(my_char_30, 'IS TRUE', 'IS NOT TRUE') my_char_30 id IS NOT TRUE NULL 1 IS NOT TRUE 2 @@ -2159,11 +2205,11 @@ Warning 1292 Truncated incorrect DOUBLE value: ' --- DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values; -SELECT CONVERT(my_varbinary_1000 USING koi8r), +SELECT CONVERT(my_varbinary_1000 USING koi8r), my_varbinary_1000, id FROM t1_values -WHERE select_id = 98 OR select_id IS NULL; +WHERE select_id = 102 OR select_id IS NULL order by id; CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id NULL NULL 1 2 @@ -2175,7 +2221,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using koi8r) AS `CONVERT(my_varbinary_1000 USING koi8r)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 98 OR select_id IS NULL); +WHERE select_id = 102 OR select_id IS NULL) order by id; CONVERT(my_varbinary_1000 USING koi8r) my_varbinary_1000 id NULL NULL 1 2 @@ -2185,23 +2231,23 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values; -SELECT CONVERT(my_binary_30 USING koi8r), +SELECT CONVERT(my_binary_30 USING koi8r), my_binary_30, id FROM t1_values -WHERE select_id = 97 OR select_id IS NULL; +WHERE select_id = 101 OR select_id IS NULL order by id; CONVERT(my_binary_30 USING koi8r) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---???????@??*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---???????@??*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using koi8r) AS `CONVERT(my_binary_30 USING koi8r)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 97 OR select_id IS NULL); +WHERE select_id = 101 OR select_id IS NULL) order by id; CONVERT(my_binary_30 USING koi8r) my_binary_30 id NULL NULL 1 2 @@ -2211,11 +2257,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values; -SELECT CONVERT(my_varchar_1000 USING koi8r), +SELECT CONVERT(my_varchar_1000 USING koi8r), my_varchar_1000, id FROM t1_values -WHERE select_id = 96 OR select_id IS NULL; +WHERE select_id = 100 OR select_id IS NULL order by id; CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id NULL NULL 1 2 @@ -2227,7 +2273,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using koi8r) AS `CONVERT(my_varchar_1000 USING koi8r)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 96 OR select_id IS NULL); +WHERE select_id = 100 OR select_id IS NULL) order by id; CONVERT(my_varchar_1000 USING koi8r) my_varchar_1000 id NULL NULL 1 2 @@ -2237,11 +2283,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r), +CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values; -SELECT CONVERT(my_char_30 USING koi8r), +SELECT CONVERT(my_char_30 USING koi8r), my_char_30, id FROM t1_values -WHERE select_id = 95 OR select_id IS NULL; +WHERE select_id = 99 OR select_id IS NULL order by id; CONVERT(my_char_30 USING koi8r) my_char_30 id NULL NULL 1 2 @@ -2253,7 +2299,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using koi8r) AS `CONVERT(my_char_30 USING koi8r)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 95 OR select_id IS NULL); +WHERE select_id = 99 OR select_id IS NULL) order by id; CONVERT(my_char_30 USING koi8r) my_char_30 id NULL NULL 1 2 @@ -2263,11 +2309,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values; -SELECT CONVERT(my_varbinary_1000 USING utf8), +SELECT CONVERT(my_varbinary_1000 USING utf8), my_varbinary_1000, id FROM t1_values -WHERE select_id = 94 OR select_id IS NULL; +WHERE select_id = 98 OR select_id IS NULL order by id; CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id NULL NULL 1 2 @@ -2279,7 +2325,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varbinary_1000` using utf8) AS `CONVERT(my_varbinary_1000 USING utf8)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 94 OR select_id IS NULL); +WHERE select_id = 98 OR select_id IS NULL) order by id; CONVERT(my_varbinary_1000 USING utf8) my_varbinary_1000 id NULL NULL 1 2 @@ -2289,23 +2335,23 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values; -SELECT CONVERT(my_binary_30 USING utf8), +SELECT CONVERT(my_binary_30 USING utf8), my_binary_30, id FROM t1_values -WHERE select_id = 93 OR select_id IS NULL; +WHERE select_id = 97 OR select_id IS NULL order by id; CONVERT(my_binary_30 USING utf8) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---@*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---@*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_binary_30` using utf8) AS `CONVERT(my_binary_30 USING utf8)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 93 OR select_id IS NULL); +WHERE select_id = 97 OR select_id IS NULL) order by id; CONVERT(my_binary_30 USING utf8) my_binary_30 id NULL NULL 1 2 @@ -2315,11 +2361,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values; -SELECT CONVERT(my_varchar_1000 USING utf8), +SELECT CONVERT(my_varchar_1000 USING utf8), my_varchar_1000, id FROM t1_values -WHERE select_id = 92 OR select_id IS NULL; +WHERE select_id = 96 OR select_id IS NULL order by id; CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id NULL NULL 1 2 @@ -2331,7 +2377,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_varchar_1000` using utf8) AS `CONVERT(my_varchar_1000 USING utf8)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 92 OR select_id IS NULL); +WHERE select_id = 96 OR select_id IS NULL) order by id; CONVERT(my_varchar_1000 USING utf8) my_varchar_1000 id NULL NULL 1 2 @@ -2341,11 +2387,11 @@ NULL NULL 1 DROP VIEW v1; -CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8), +CREATE VIEW v1 AS SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values; -SELECT CONVERT(my_char_30 USING utf8), +SELECT CONVERT(my_char_30 USING utf8), my_char_30, id FROM t1_values -WHERE select_id = 91 OR select_id IS NULL; +WHERE select_id = 95 OR select_id IS NULL order by id; CONVERT(my_char_30 USING utf8) my_char_30 id NULL NULL 1 2 @@ -2357,7 +2403,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select convert(`t1_values`.`my_char_30` using utf8) AS `CONVERT(my_char_30 USING utf8)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 91 OR select_id IS NULL); +WHERE select_id = 95 OR select_id IS NULL) order by id; CONVERT(my_char_30 USING utf8) my_char_30 id NULL NULL 1 2 @@ -2371,7 +2417,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS UNSIGNED INTEGER), my_year, id FROM t1_values; SELECT CAST(my_year AS UNSIGNED INTEGER), my_year, id FROM t1_values -WHERE select_id = 90 OR select_id IS NULL; +WHERE select_id = 94 OR select_id IS NULL order by id; CAST(my_year AS UNSIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2383,7 +2429,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as unsigned) AS `CAST(my_year AS UNSIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 90 OR select_id IS NULL); +WHERE select_id = 94 OR select_id IS NULL) order by id; CAST(my_year AS UNSIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2397,7 +2443,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS UNSIGNED INTEGER), my_time, id FROM t1_values; SELECT CAST(my_time AS UNSIGNED INTEGER), my_time, id FROM t1_values -WHERE select_id = 89 OR select_id IS NULL; +WHERE select_id = 93 OR select_id IS NULL order by id; CAST(my_time AS UNSIGNED INTEGER) my_time id NULL NULL 1 18446744073701165657 -838:59:59 2 @@ -2409,7 +2455,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as unsigned) AS `CAST(my_time AS UNSIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 89 OR select_id IS NULL); +WHERE select_id = 93 OR select_id IS NULL) order by id; CAST(my_time AS UNSIGNED INTEGER) my_time id NULL NULL 1 18446744073701165657 -838:59:59 2 @@ -2423,7 +2469,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS UNSIGNED INTEGER), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS UNSIGNED INTEGER), my_timestamp, id FROM t1_values -WHERE select_id = 88 OR select_id IS NULL; +WHERE select_id = 92 OR select_id IS NULL order by id; CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2435,7 +2481,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as unsigned) AS `CAST(my_timestamp AS UNSIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 88 OR select_id IS NULL); +WHERE select_id = 92 OR select_id IS NULL) order by id; CAST(my_timestamp AS UNSIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2449,7 +2495,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS UNSIGNED INTEGER), my_date, id FROM t1_values; SELECT CAST(my_date AS UNSIGNED INTEGER), my_date, id FROM t1_values -WHERE select_id = 87 OR select_id IS NULL; +WHERE select_id = 91 OR select_id IS NULL order by id; CAST(my_date AS UNSIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2461,7 +2507,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as unsigned) AS `CAST(my_date AS UNSIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 87 OR select_id IS NULL); +WHERE select_id = 91 OR select_id IS NULL) order by id; CAST(my_date AS UNSIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2475,7 +2521,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS UNSIGNED INTEGER), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS UNSIGNED INTEGER), my_datetime, id FROM t1_values -WHERE select_id = 86 OR select_id IS NULL; +WHERE select_id = 90 OR select_id IS NULL order by id; CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2487,7 +2533,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as unsigned) AS `CAST(my_datetime AS UNSIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 86 OR select_id IS NULL); +WHERE select_id = 90 OR select_id IS NULL) order by id; CAST(my_datetime AS UNSIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2497,11 +2543,43 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS UNSIGNED INTEGER), +my_double, id FROM t1_values; +SELECT CAST(my_double AS UNSIGNED INTEGER), +my_double, id FROM t1_values +WHERE select_id = 89 OR select_id IS NULL order by id; +CAST(my_double AS UNSIGNED INTEGER) my_double id +NULL NULL 1 +9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +18446744073709551615 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as unsigned) AS `CAST(my_double AS UNSIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 89 OR select_id IS NULL) order by id; +CAST(my_double AS UNSIGNED INTEGER) my_double id +NULL NULL 1 +9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +18446744073709551615 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS UNSIGNED INTEGER), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS UNSIGNED INTEGER), my_decimal, id FROM t1_values -WHERE select_id = 85 OR select_id IS NULL; +WHERE select_id = 88 OR select_id IS NULL order by id; CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id NULL NULL 1 0 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2517,7 +2595,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as unsigned) AS `CAST(my_decimal AS UNSIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 85 OR select_id IS NULL); +WHERE select_id = 88 OR select_id IS NULL) order by id; CAST(my_decimal AS UNSIGNED INTEGER) my_decimal id NULL NULL 1 0 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2535,7 +2613,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS UNSIGNED INTEGER), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS UNSIGNED INTEGER), my_bigint, id FROM t1_values -WHERE select_id = 84 OR select_id IS NULL; +WHERE select_id = 87 OR select_id IS NULL order by id; CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id NULL NULL 1 9223372036854775808 -9223372036854775808 2 @@ -2547,7 +2625,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as unsigned) AS `CAST(my_bigint AS UNSIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 84 OR select_id IS NULL); +WHERE select_id = 87 OR select_id IS NULL) order by id; CAST(my_bigint AS UNSIGNED INTEGER) my_bigint id NULL NULL 1 9223372036854775808 -9223372036854775808 2 @@ -2561,7 +2639,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS UNSIGNED INTEGER), my_varbinary_1000, id FROM t1_values -WHERE select_id = 83 OR select_id IS NULL; +WHERE select_id = 86 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2578,7 +2656,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as unsigned) AS `CAST(my_varbinary_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 83 OR select_id IS NULL); +WHERE select_id = 86 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS UNSIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2597,13 +2675,13 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS UNSIGNED INTEGER), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS UNSIGNED INTEGER), my_binary_30, id FROM t1_values -WHERE select_id = 82 OR select_id IS NULL; +WHERE select_id = 85 OR select_id IS NULL order by id; CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id NULL NULL 1 -0 2 +0 2 0 <--------30 characters-------> 3 -0 ---äÖüß@µ*$-- 4 -18446744073709551615 -1 5 +0 ---äÖüß@µ*$-- 4 +18446744073709551615 -1 5 Warnings: Warning 1292 Truncated incorrect INTEGER value: '' Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->' @@ -2615,7 +2693,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as unsigned) AS `CAST(my_binary_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 82 OR select_id IS NULL); +WHERE select_id = 85 OR select_id IS NULL) order by id; CAST(my_binary_30 AS UNSIGNED INTEGER) my_binary_30 id NULL NULL 1 0 2 @@ -2635,7 +2713,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS UNSIGNED INTEGER), my_varchar_1000, id FROM t1_values -WHERE select_id = 81 OR select_id IS NULL; +WHERE select_id = 84 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2652,7 +2730,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as unsigned) AS `CAST(my_varchar_1000 AS UNSIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 81 OR select_id IS NULL); +WHERE select_id = 84 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS UNSIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2671,7 +2749,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS UNSIGNED INTEGER), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS UNSIGNED INTEGER), my_char_30, id FROM t1_values -WHERE select_id = 80 OR select_id IS NULL; +WHERE select_id = 83 OR select_id IS NULL order by id; CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -2688,7 +2766,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as unsigned) AS `CAST(my_char_30 AS UNSIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 80 OR select_id IS NULL); +WHERE select_id = 83 OR select_id IS NULL) order by id; CAST(my_char_30 AS UNSIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -2707,7 +2785,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS SIGNED INTEGER), my_year, id FROM t1_values; SELECT CAST(my_year AS SIGNED INTEGER), my_year, id FROM t1_values -WHERE select_id = 79 OR select_id IS NULL; +WHERE select_id = 82 OR select_id IS NULL order by id; CAST(my_year AS SIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2719,7 +2797,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as signed) AS `CAST(my_year AS SIGNED INTEGER)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 79 OR select_id IS NULL); +WHERE select_id = 82 OR select_id IS NULL) order by id; CAST(my_year AS SIGNED INTEGER) my_year id NULL NULL 1 1901 1901 2 @@ -2733,7 +2811,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS SIGNED INTEGER), my_time, id FROM t1_values; SELECT CAST(my_time AS SIGNED INTEGER), my_time, id FROM t1_values -WHERE select_id = 78 OR select_id IS NULL; +WHERE select_id = 81 OR select_id IS NULL order by id; CAST(my_time AS SIGNED INTEGER) my_time id NULL NULL 1 -8385959 -838:59:59 2 @@ -2745,7 +2823,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as signed) AS `CAST(my_time AS SIGNED INTEGER)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 78 OR select_id IS NULL); +WHERE select_id = 81 OR select_id IS NULL) order by id; CAST(my_time AS SIGNED INTEGER) my_time id NULL NULL 1 -8385959 -838:59:59 2 @@ -2759,7 +2837,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS SIGNED INTEGER), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS SIGNED INTEGER), my_timestamp, id FROM t1_values -WHERE select_id = 77 OR select_id IS NULL; +WHERE select_id = 80 OR select_id IS NULL order by id; CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2771,7 +2849,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as signed) AS `CAST(my_timestamp AS SIGNED INTEGER)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 77 OR select_id IS NULL); +WHERE select_id = 80 OR select_id IS NULL) order by id; CAST(my_timestamp AS SIGNED INTEGER) my_timestamp id 0 0000-00-00 00:00:00 1 19700101030001 1970-01-01 03:00:01 2 @@ -2785,7 +2863,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS SIGNED INTEGER), my_date, id FROM t1_values; SELECT CAST(my_date AS SIGNED INTEGER), my_date, id FROM t1_values -WHERE select_id = 76 OR select_id IS NULL; +WHERE select_id = 79 OR select_id IS NULL order by id; CAST(my_date AS SIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2797,7 +2875,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as signed) AS `CAST(my_date AS SIGNED INTEGER)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 76 OR select_id IS NULL); +WHERE select_id = 79 OR select_id IS NULL) order by id; CAST(my_date AS SIGNED INTEGER) my_date id NULL NULL 1 10101 0001-01-01 2 @@ -2811,7 +2889,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS SIGNED INTEGER), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS SIGNED INTEGER), my_datetime, id FROM t1_values -WHERE select_id = 75 OR select_id IS NULL; +WHERE select_id = 78 OR select_id IS NULL order by id; CAST(my_datetime AS SIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2823,7 +2901,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as signed) AS `CAST(my_datetime AS SIGNED INTEGER)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 75 OR select_id IS NULL); +WHERE select_id = 78 OR select_id IS NULL) order by id; CAST(my_datetime AS SIGNED INTEGER) my_datetime id NULL NULL 1 10101000000 0001-01-01 00:00:00 2 @@ -2833,11 +2911,43 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS SIGNED INTEGER), +my_double, id FROM t1_values; +SELECT CAST(my_double AS SIGNED INTEGER), +my_double, id FROM t1_values +WHERE select_id = 77 OR select_id IS NULL order by id; +CAST(my_double AS SIGNED INTEGER) my_double id +NULL NULL 1 +-9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +-1 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as signed) AS `CAST(my_double AS SIGNED INTEGER)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 77 OR select_id IS NULL) order by id; +CAST(my_double AS SIGNED INTEGER) my_double id +NULL NULL 1 +-9223372036854775808 -1.7976931348623e+308 2 +9223372036854775807 1.7976931348623e+308 3 +0 0 4 +-1 -1 5 +Warnings: +Warning 1292 Truncated incorrect INTEGER value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect INTEGER value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS SIGNED INTEGER), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS SIGNED INTEGER), my_decimal, id FROM t1_values -WHERE select_id = 74 OR select_id IS NULL; +WHERE select_id = 76 OR select_id IS NULL order by id; CAST(my_decimal AS SIGNED INTEGER) my_decimal id NULL NULL 1 -9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2852,7 +2962,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as signed) AS `CAST(my_decimal AS SIGNED INTEGER)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 74 OR select_id IS NULL); +WHERE select_id = 76 OR select_id IS NULL) order by id; CAST(my_decimal AS SIGNED INTEGER) my_decimal id NULL NULL 1 -9223372036854775808 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -2869,7 +2979,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS SIGNED INTEGER), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS SIGNED INTEGER), my_bigint, id FROM t1_values -WHERE select_id = 73 OR select_id IS NULL; +WHERE select_id = 75 OR select_id IS NULL order by id; CAST(my_bigint AS SIGNED INTEGER) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -2881,7 +2991,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as signed) AS `CAST(my_bigint AS SIGNED INTEGER)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 73 OR select_id IS NULL); +WHERE select_id = 75 OR select_id IS NULL) order by id; CAST(my_bigint AS SIGNED INTEGER) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -2895,7 +3005,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS SIGNED INTEGER), my_varbinary_1000, id FROM t1_values -WHERE select_id = 72 OR select_id IS NULL; +WHERE select_id = 74 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2911,7 +3021,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as signed) AS `CAST(my_varbinary_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 72 OR select_id IS NULL); +WHERE select_id = 74 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS SIGNED INTEGER) my_varbinary_1000 id NULL NULL 1 0 2 @@ -2929,13 +3039,13 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS SIGNED INTEGER), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS SIGNED INTEGER), my_binary_30, id FROM t1_values -WHERE select_id = 71 OR select_id IS NULL; +WHERE select_id = 73 OR select_id IS NULL order by id; CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id NULL NULL 1 -0 2 +0 2 0 <--------30 characters-------> 3 -0 ---äÖüß@µ*$-- 4 --1 -1 5 +0 ---äÖüß@µ*$-- 4 +-1 -1 5 Warnings: Warning 1292 Truncated incorrect INTEGER value: '' Warning 1292 Truncated incorrect INTEGER value: '<--------30 characters------->' @@ -2946,7 +3056,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as signed) AS `CAST(my_binary_30 AS SIGNED INTEGER)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 71 OR select_id IS NULL); +WHERE select_id = 73 OR select_id IS NULL) order by id; CAST(my_binary_30 AS SIGNED INTEGER) my_binary_30 id NULL NULL 1 0 2 @@ -2965,7 +3075,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS SIGNED INTEGER), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS SIGNED INTEGER), my_varchar_1000, id FROM t1_values -WHERE select_id = 70 OR select_id IS NULL; +WHERE select_id = 72 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2981,7 +3091,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as signed) AS `CAST(my_varchar_1000 AS SIGNED INTEGER)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 70 OR select_id IS NULL); +WHERE select_id = 72 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS SIGNED INTEGER) my_varchar_1000 id NULL NULL 1 0 2 @@ -2999,7 +3109,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS SIGNED INTEGER), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS SIGNED INTEGER), my_char_30, id FROM t1_values -WHERE select_id = 69 OR select_id IS NULL; +WHERE select_id = 71 OR select_id IS NULL order by id; CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -3015,7 +3125,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as signed) AS `CAST(my_char_30 AS SIGNED INTEGER)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 69 OR select_id IS NULL); +WHERE select_id = 71 OR select_id IS NULL) order by id; CAST(my_char_30 AS SIGNED INTEGER) my_char_30 id NULL NULL 1 0 2 @@ -3033,7 +3143,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DECIMAL(37,2)), my_year, id FROM t1_values; SELECT CAST(my_year AS DECIMAL(37,2)), my_year, id FROM t1_values -WHERE select_id = 68 OR select_id IS NULL; +WHERE select_id = 70 OR select_id IS NULL order by id; CAST(my_year AS DECIMAL(37,2)) my_year id NULL NULL 1 1901.00 1901 2 @@ -3045,7 +3155,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as decimal(37,2)) AS `CAST(my_year AS DECIMAL(37,2))`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 68 OR select_id IS NULL); +WHERE select_id = 70 OR select_id IS NULL) order by id; CAST(my_year AS DECIMAL(37,2)) my_year id NULL NULL 1 1901.00 1901 2 @@ -3059,7 +3169,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DECIMAL(37,2)), my_time, id FROM t1_values; SELECT CAST(my_time AS DECIMAL(37,2)), my_time, id FROM t1_values -WHERE select_id = 67 OR select_id IS NULL; +WHERE select_id = 69 OR select_id IS NULL order by id; CAST(my_time AS DECIMAL(37,2)) my_time id NULL NULL 1 -8385959.00 -838:59:59 2 @@ -3071,7 +3181,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as decimal(37,2)) AS `CAST(my_time AS DECIMAL(37,2))`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 67 OR select_id IS NULL); +WHERE select_id = 69 OR select_id IS NULL) order by id; CAST(my_time AS DECIMAL(37,2)) my_time id NULL NULL 1 -8385959.00 -838:59:59 2 @@ -3085,7 +3195,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DECIMAL(37,2)), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DECIMAL(37,2)), my_timestamp, id FROM t1_values -WHERE select_id = 66 OR select_id IS NULL; +WHERE select_id = 68 OR select_id IS NULL order by id; CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id 0.00 0000-00-00 00:00:00 1 19700101030001.00 1970-01-01 03:00:01 2 @@ -3097,7 +3207,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as decimal(37,2)) AS `CAST(my_timestamp AS DECIMAL(37,2))`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 66 OR select_id IS NULL); +WHERE select_id = 68 OR select_id IS NULL) order by id; CAST(my_timestamp AS DECIMAL(37,2)) my_timestamp id 0.00 0000-00-00 00:00:00 1 19700101030001.00 1970-01-01 03:00:01 2 @@ -3111,7 +3221,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DECIMAL(37,2)), my_date, id FROM t1_values; SELECT CAST(my_date AS DECIMAL(37,2)), my_date, id FROM t1_values -WHERE select_id = 65 OR select_id IS NULL; +WHERE select_id = 67 OR select_id IS NULL order by id; CAST(my_date AS DECIMAL(37,2)) my_date id NULL NULL 1 10101.00 0001-01-01 2 @@ -3123,7 +3233,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as decimal(37,2)) AS `CAST(my_date AS DECIMAL(37,2))`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 65 OR select_id IS NULL); +WHERE select_id = 67 OR select_id IS NULL) order by id; CAST(my_date AS DECIMAL(37,2)) my_date id NULL NULL 1 10101.00 0001-01-01 2 @@ -3137,7 +3247,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DECIMAL(37,2)), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DECIMAL(37,2)), my_datetime, id FROM t1_values -WHERE select_id = 64 OR select_id IS NULL; +WHERE select_id = 66 OR select_id IS NULL order by id; CAST(my_datetime AS DECIMAL(37,2)) my_datetime id NULL NULL 1 10101000000.00 0001-01-01 00:00:00 2 @@ -3149,7 +3259,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as decimal(37,2)) AS `CAST(my_datetime AS DECIMAL(37,2))`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 64 OR select_id IS NULL); +WHERE select_id = 66 OR select_id IS NULL) order by id; CAST(my_datetime AS DECIMAL(37,2)) my_datetime id NULL NULL 1 10101000000.00 0001-01-01 00:00:00 2 @@ -3159,11 +3269,49 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS DECIMAL(37,2)), +my_double, id FROM t1_values; +SELECT CAST(my_double AS DECIMAL(37,2)), +my_double, id FROM t1_values +WHERE select_id = 65 OR select_id IS NULL order by id; +CAST(my_double AS DECIMAL(37,2)) my_double id +NULL NULL 1 +-99999999999999999999999999999999999.99 -1.7976931348623e+308 2 +99999999999999999999999999999999999.99 1.7976931348623e+308 3 +0.00 0 4 +-1.00 -1 5 +-3333.33 -3333.3333 30 +Warnings: +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as decimal(37,2)) AS `CAST(my_double AS DECIMAL(37,2))`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 65 OR select_id IS NULL) order by id; +CAST(my_double AS DECIMAL(37,2)) my_double id +NULL NULL 1 +-99999999999999999999999999999999999.99 -1.7976931348623e+308 2 +99999999999999999999999999999999999.99 1.7976931348623e+308 3 +0.00 0 4 +-1.00 -1 5 +-3333.33 -3333.3333 30 +Warnings: +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +Error 1292 Truncated incorrect DECIMAL value: '' +Error 1264 Out of range value adjusted for column 'CAST(my_double AS DECIMAL(37,2))' at row 1 +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_decimal AS DECIMAL(37,2)), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS DECIMAL(37,2)), my_decimal, id FROM t1_values -WHERE select_id = 63 OR select_id IS NULL; +WHERE select_id = 64 OR select_id IS NULL order by id; CAST(my_decimal AS DECIMAL(37,2)) my_decimal id NULL NULL 1 -10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -3175,7 +3323,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as decimal(37,2)) AS `CAST(my_decimal AS DECIMAL(37,2))`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 63 OR select_id IS NULL); +WHERE select_id = 64 OR select_id IS NULL) order by id; CAST(my_decimal AS DECIMAL(37,2)) my_decimal id NULL NULL 1 -10000000000000000000000000000000000.00 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -3189,7 +3337,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DECIMAL(37,2)), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DECIMAL(37,2)), my_bigint, id FROM t1_values -WHERE select_id = 62 OR select_id IS NULL; +WHERE select_id = 63 OR select_id IS NULL order by id; CAST(my_bigint AS DECIMAL(37,2)) my_bigint id NULL NULL 1 -9223372036854775808.00 -9223372036854775808 2 @@ -3201,7 +3349,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as decimal(37,2)) AS `CAST(my_bigint AS DECIMAL(37,2))`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 62 OR select_id IS NULL); +WHERE select_id = 63 OR select_id IS NULL) order by id; CAST(my_bigint AS DECIMAL(37,2)) my_bigint id NULL NULL 1 -9223372036854775808.00 -9223372036854775808 2 @@ -3215,14 +3363,14 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DECIMAL(37,2)), my_varbinary_1000, id FROM t1_values -WHERE select_id = 61 OR select_id IS NULL; +WHERE select_id = 62 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 28 +-3333.33 -3333.3333 29 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3232,14 +3380,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as decimal(37,2)) AS `CAST(my_varbinary_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 61 OR select_id IS NULL); +WHERE select_id = 62 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DECIMAL(37,2)) my_varbinary_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 28 +-3333.33 -3333.3333 29 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3251,14 +3399,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DECIMAL(37,2)), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DECIMAL(37,2)), my_binary_30, id FROM t1_values -WHERE select_id = 60 OR select_id IS NULL; +WHERE select_id = 61 OR select_id IS NULL order by id; CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id NULL NULL 1 -0.00 2 +0.00 2 0.00 <--------30 characters-------> 3 -0.00 ---äÖüß@µ*$-- 4 --1.00 -1 5 --3333.33 -3333.3333 27 +0.00 ---äÖüß@µ*$-- 4 +-1.00 -1 5 +-3333.33 -3333.3333 28 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: '' @@ -3273,14 +3421,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as decimal(37,2)) AS `CAST(my_binary_30 AS DECIMAL(37,2))`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 60 OR select_id IS NULL); +WHERE select_id = 61 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DECIMAL(37,2)) my_binary_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 27 +-3333.33 -3333.3333 28 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: '' @@ -3297,14 +3445,14 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DECIMAL(37,2)), my_varchar_1000, id FROM t1_values -WHERE select_id = 59 OR select_id IS NULL; +WHERE select_id = 60 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 26 +-3333.33 -3333.3333 27 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3314,14 +3462,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as decimal(37,2)) AS `CAST(my_varchar_1000 AS DECIMAL(37,2))`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 59 OR select_id IS NULL); +WHERE select_id = 60 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DECIMAL(37,2)) my_varchar_1000 id NULL NULL 1 0.00 2 0.00 <---------1000 characters--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 26 +-3333.33 -3333.3333 27 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Error 1366 Incorrect decimal value: '' for column '' at row -1 @@ -3333,14 +3481,14 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DECIMAL(37,2)), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DECIMAL(37,2)), my_char_30, id FROM t1_values -WHERE select_id = 58 OR select_id IS NULL; +WHERE select_id = 59 OR select_id IS NULL order by id; CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 25 +-3333.33 -3333.3333 26 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: ' ' @@ -3353,14 +3501,14 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as decimal(37,2)) AS `CAST(my_char_30 AS DECIMAL(37,2))`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 58 OR select_id IS NULL); +WHERE select_id = 59 OR select_id IS NULL) order by id; CAST(my_char_30 AS DECIMAL(37,2)) my_char_30 id NULL NULL 1 0.00 2 0.00 <--------30 characters-------> 3 0.00 ---äÖüß@µ*$-- 4 -1.00 -1 5 --3333.33 -3333.3333 25 +-3333.33 -3333.3333 26 Warnings: Error 1366 Incorrect decimal value: '' for column '' at row -1 Warning 1292 Truncated incorrect DECIMAL value: ' ' @@ -3375,7 +3523,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS TIME), my_year, id FROM t1_values; SELECT CAST(my_year AS TIME), my_year, id FROM t1_values -WHERE select_id = 57 OR select_id IS NULL; +WHERE select_id = 58 OR select_id IS NULL order by id; CAST(my_year AS TIME) my_year id NULL NULL 1 00:19:01 1901 2 @@ -3387,7 +3535,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as time) AS `CAST(my_year AS TIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 57 OR select_id IS NULL); +WHERE select_id = 58 OR select_id IS NULL) order by id; CAST(my_year AS TIME) my_year id NULL NULL 1 00:19:01 1901 2 @@ -3401,7 +3549,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS TIME), my_time, id FROM t1_values; SELECT CAST(my_time AS TIME), my_time, id FROM t1_values -WHERE select_id = 56 OR select_id IS NULL; +WHERE select_id = 57 OR select_id IS NULL order by id; CAST(my_time AS TIME) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -3413,7 +3561,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as time) AS `CAST(my_time AS TIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 56 OR select_id IS NULL); +WHERE select_id = 57 OR select_id IS NULL) order by id; CAST(my_time AS TIME) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -3427,7 +3575,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS TIME), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS TIME), my_timestamp, id FROM t1_values -WHERE select_id = 55 OR select_id IS NULL; +WHERE select_id = 56 OR select_id IS NULL order by id; CAST(my_timestamp AS TIME) my_timestamp id 00:00:00 0000-00-00 00:00:00 1 03:00:01 1970-01-01 03:00:01 2 @@ -3439,7 +3587,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as time) AS `CAST(my_timestamp AS TIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 55 OR select_id IS NULL); +WHERE select_id = 56 OR select_id IS NULL) order by id; CAST(my_timestamp AS TIME) my_timestamp id 00:00:00 0000-00-00 00:00:00 1 03:00:01 1970-01-01 03:00:01 2 @@ -3453,7 +3601,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS TIME), my_date, id FROM t1_values; SELECT CAST(my_date AS TIME), my_date, id FROM t1_values -WHERE select_id = 54 OR select_id IS NULL; +WHERE select_id = 55 OR select_id IS NULL order by id; CAST(my_date AS TIME) my_date id NULL NULL 1 00:00:00 0001-01-01 2 @@ -3465,7 +3613,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as time) AS `CAST(my_date AS TIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 54 OR select_id IS NULL); +WHERE select_id = 55 OR select_id IS NULL) order by id; CAST(my_date AS TIME) my_date id NULL NULL 1 00:00:00 0001-01-01 2 @@ -3479,7 +3627,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS TIME), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS TIME), my_datetime, id FROM t1_values -WHERE select_id = 53 OR select_id IS NULL; +WHERE select_id = 54 OR select_id IS NULL order by id; CAST(my_datetime AS TIME) my_datetime id NULL NULL 1 00:00:00 0001-01-01 00:00:00 2 @@ -3491,7 +3639,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as time) AS `CAST(my_datetime AS TIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 53 OR select_id IS NULL); +WHERE select_id = 54 OR select_id IS NULL) order by id; CAST(my_datetime AS TIME) my_datetime id NULL NULL 1 00:00:00 0001-01-01 00:00:00 2 @@ -3501,11 +3649,45 @@ NULL NULL 1 DROP VIEW v1; +CREATE VIEW v1 AS SELECT CAST(my_double AS TIME), +my_double, id FROM t1_values; +SELECT CAST(my_double AS TIME), +my_double, id FROM t1_values +WHERE select_id = 53 OR select_id IS NULL order by id; +CAST(my_double AS TIME) my_double id +NULL NULL 1 +NULL -1.7976931348623e+308 2 +NULL 1.7976931348623e+308 3 +00:00:00 0 4 +-00:00:01 -1 5 +00:17:58 1758 25 +Warnings: +Warning 1292 Truncated incorrect time value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect time value: '1.7976931348623e+308' +SHOW CREATE VIEW v1; +View Create View +v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as time) AS `CAST(my_double AS TIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` +SELECT v1.* FROM v1 +WHERE v1.id IN (SELECT id FROM t1_values +WHERE select_id = 53 OR select_id IS NULL) order by id; +CAST(my_double AS TIME) my_double id +NULL NULL 1 +NULL -1.7976931348623e+308 2 +NULL 1.7976931348623e+308 3 +00:00:00 0 4 +-00:00:01 -1 5 +00:17:58 1758 25 +Warnings: +Warning 1292 Truncated incorrect time value: '-1.7976931348623e+308' +Warning 1292 Truncated incorrect time value: '1.7976931348623e+308' +DROP VIEW v1; + + CREATE VIEW v1 AS SELECT CAST(my_bigint AS TIME), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS TIME), my_bigint, id FROM t1_values -WHERE select_id = 52 OR select_id IS NULL; +WHERE select_id = 52 OR select_id IS NULL order by id; CAST(my_bigint AS TIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3521,7 +3703,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as time) AS `CAST(my_bigint AS TIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 52 OR select_id IS NULL); +WHERE select_id = 52 OR select_id IS NULL) order by id; CAST(my_bigint AS TIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3539,7 +3721,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS TIME), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS TIME), my_varbinary_1000, id FROM t1_values -WHERE select_id = 51 OR select_id IS NULL; +WHERE select_id = 51 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3556,7 +3738,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as time) AS `CAST(my_varbinary_1000 AS TIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 51 OR select_id IS NULL); +WHERE select_id = 51 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS TIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3575,14 +3757,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS TIME), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS TIME), my_binary_30, id FROM t1_values -WHERE select_id = 50 OR select_id IS NULL; +WHERE select_id = 50 OR select_id IS NULL order by id; CAST(my_binary_30 AS TIME) my_binary_30 id NULL NULL 1 -00:00:00 2 +00:00:00 2 00:00:00 <--------30 characters-------> 3 --00:00:00 ---äÖüß@µ*$-- 4 -NULL -1 5 -41:58:00 1 17:58 22 +-00:00:00 ---äÖüß@µ*$-- 4 +NULL -1 5 +41:58:00 1 17:58 22 Warnings: Warning 1292 Truncated incorrect time value: '' Warning 1292 Truncated incorrect time value: '<--------30 characters------->' @@ -3594,7 +3776,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as time) AS `CAST(my_binary_30 AS TIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 50 OR select_id IS NULL); +WHERE select_id = 50 OR select_id IS NULL) order by id; CAST(my_binary_30 AS TIME) my_binary_30 id NULL NULL 1 00:00:00 2 @@ -3615,7 +3797,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS TIME), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS TIME), my_varchar_1000, id FROM t1_values -WHERE select_id = 49 OR select_id IS NULL; +WHERE select_id = 49 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS TIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -3632,7 +3814,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as time) AS `CAST(my_varchar_1000 AS TIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 49 OR select_id IS NULL); +WHERE select_id = 49 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS TIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -3651,7 +3833,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS TIME), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS TIME), my_char_30, id FROM t1_values -WHERE select_id = 48 OR select_id IS NULL; +WHERE select_id = 48 OR select_id IS NULL order by id; CAST(my_char_30 AS TIME) my_char_30 id NULL NULL 1 NULL 2 @@ -3668,7 +3850,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as time) AS `CAST(my_char_30 AS TIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 48 OR select_id IS NULL); +WHERE select_id = 48 OR select_id IS NULL) order by id; CAST(my_char_30 AS TIME) my_char_30 id NULL NULL 1 NULL 2 @@ -3687,7 +3869,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DATETIME), my_year, id FROM t1_values; SELECT CAST(my_year AS DATETIME), my_year, id FROM t1_values -WHERE select_id = 47 OR select_id IS NULL; +WHERE select_id = 47 OR select_id IS NULL order by id; CAST(my_year AS DATETIME) my_year id NULL NULL 1 NULL 1901 2 @@ -3704,7 +3886,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as datetime) AS `CAST(my_year AS DATETIME)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 47 OR select_id IS NULL); +WHERE select_id = 47 OR select_id IS NULL) order by id; CAST(my_year AS DATETIME) my_year id NULL NULL 1 NULL 1901 2 @@ -3723,7 +3905,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DATETIME), my_time, id FROM t1_values; SELECT CAST(my_time AS DATETIME), my_time, id FROM t1_values -WHERE select_id = 46 OR select_id IS NULL; +WHERE select_id = 46 OR select_id IS NULL order by id; CAST(my_time AS DATETIME) my_time id NULL NULL 1 0000-00-00 00:00:00 -838:59:59 2 @@ -3738,7 +3920,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as datetime) AS `CAST(my_time AS DATETIME)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 46 OR select_id IS NULL); +WHERE select_id = 46 OR select_id IS NULL) order by id; CAST(my_time AS DATETIME) my_time id NULL NULL 1 0000-00-00 00:00:00 -838:59:59 2 @@ -3755,7 +3937,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATETIME), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DATETIME), my_timestamp, id FROM t1_values -WHERE select_id = 45 OR select_id IS NULL; +WHERE select_id = 45 OR select_id IS NULL order by id; CAST(my_timestamp AS DATETIME) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -3767,7 +3949,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as datetime) AS `CAST(my_timestamp AS DATETIME)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 45 OR select_id IS NULL); +WHERE select_id = 45 OR select_id IS NULL) order by id; CAST(my_timestamp AS DATETIME) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -3781,7 +3963,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DATETIME), my_date, id FROM t1_values; SELECT CAST(my_date AS DATETIME), my_date, id FROM t1_values -WHERE select_id = 44 OR select_id IS NULL; +WHERE select_id = 44 OR select_id IS NULL order by id; CAST(my_date AS DATETIME) my_date id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 2 @@ -3793,7 +3975,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as datetime) AS `CAST(my_date AS DATETIME)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 44 OR select_id IS NULL); +WHERE select_id = 44 OR select_id IS NULL) order by id; CAST(my_date AS DATETIME) my_date id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 2 @@ -3807,7 +3989,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATETIME), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DATETIME), my_datetime, id FROM t1_values -WHERE select_id = 43 OR select_id IS NULL; +WHERE select_id = 43 OR select_id IS NULL order by id; CAST(my_datetime AS DATETIME) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -3819,7 +4001,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as datetime) AS `CAST(my_datetime AS DATETIME)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 43 OR select_id IS NULL); +WHERE select_id = 43 OR select_id IS NULL) order by id; CAST(my_datetime AS DATETIME) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -3833,7 +4015,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS DATETIME), my_double, id FROM t1_values; SELECT CAST(my_double AS DATETIME), my_double, id FROM t1_values -WHERE select_id = 42 OR select_id IS NULL; +WHERE select_id = 42 OR select_id IS NULL order by id; CAST(my_double AS DATETIME) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -3852,7 +4034,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as datetime) AS `CAST(my_double AS DATETIME)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 42 OR select_id IS NULL); +WHERE select_id = 42 OR select_id IS NULL) order by id; CAST(my_double AS DATETIME) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -3873,7 +4055,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATETIME), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DATETIME), my_bigint, id FROM t1_values -WHERE select_id = 41 OR select_id IS NULL; +WHERE select_id = 41 OR select_id IS NULL order by id; CAST(my_bigint AS DATETIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3892,7 +4074,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as datetime) AS `CAST(my_bigint AS DATETIME)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 41 OR select_id IS NULL); +WHERE select_id = 41 OR select_id IS NULL) order by id; CAST(my_bigint AS DATETIME) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -3913,7 +4095,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATETIME), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DATETIME), my_varbinary_1000, id FROM t1_values -WHERE select_id = 40 OR select_id IS NULL; +WHERE select_id = 40 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3931,7 +4113,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as datetime) AS `CAST(my_varbinary_1000 AS DATETIME)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 40 OR select_id IS NULL); +WHERE select_id = 40 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DATETIME) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -3951,14 +4133,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATETIME), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DATETIME), my_binary_30, id FROM t1_values -WHERE select_id = 39 OR select_id IS NULL; +WHERE select_id = 39 OR select_id IS NULL order by id; CAST(my_binary_30 AS DATETIME) my_binary_30 id NULL NULL 1 -NULL 2 +NULL 2 NULL <--------30 characters-------> 3 -NULL ---äÖüß@µ*$-- 4 -NULL -1 5 -2005-06-27 17:58:00 2005-06-27 17:58 16 +NULL ---äÖüß@µ*$-- 4 +NULL -1 5 +2005-06-27 17:58:00 2005-06-27 17:58 16 Warnings: Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->' @@ -3970,7 +4152,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as datetime) AS `CAST(my_binary_30 AS DATETIME)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 39 OR select_id IS NULL); +WHERE select_id = 39 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DATETIME) my_binary_30 id NULL NULL 1 NULL 2 @@ -3991,7 +4173,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATETIME), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DATETIME), my_varchar_1000, id FROM t1_values -WHERE select_id = 38 OR select_id IS NULL; +WHERE select_id = 38 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4009,7 +4191,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as datetime) AS `CAST(my_varchar_1000 AS DATETIME)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 38 OR select_id IS NULL); +WHERE select_id = 38 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DATETIME) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4029,7 +4211,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATETIME), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DATETIME), my_char_30, id FROM t1_values -WHERE select_id = 37 OR select_id IS NULL; +WHERE select_id = 37 OR select_id IS NULL order by id; CAST(my_char_30 AS DATETIME) my_char_30 id NULL NULL 1 NULL 2 @@ -4047,7 +4229,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as datetime) AS `CAST(my_char_30 AS DATETIME)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 37 OR select_id IS NULL); +WHERE select_id = 37 OR select_id IS NULL) order by id; CAST(my_char_30 AS DATETIME) my_char_30 id NULL NULL 1 NULL 2 @@ -4067,7 +4249,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS DATE), my_year, id FROM t1_values; SELECT CAST(my_year AS DATE), my_year, id FROM t1_values -WHERE select_id = 36 OR select_id IS NULL; +WHERE select_id = 36 OR select_id IS NULL order by id; CAST(my_year AS DATE) my_year id NULL NULL 1 NULL 1901 2 @@ -4084,7 +4266,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as date) AS `CAST(my_year AS DATE)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 36 OR select_id IS NULL); +WHERE select_id = 36 OR select_id IS NULL) order by id; CAST(my_year AS DATE) my_year id NULL NULL 1 NULL 1901 2 @@ -4103,7 +4285,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS DATE), my_time, id FROM t1_values; SELECT CAST(my_time AS DATE), my_time, id FROM t1_values -WHERE select_id = 35 OR select_id IS NULL; +WHERE select_id = 35 OR select_id IS NULL order by id; CAST(my_time AS DATE) my_time id NULL NULL 1 0000-00-00 -838:59:59 2 @@ -4115,7 +4297,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as date) AS `CAST(my_time AS DATE)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 35 OR select_id IS NULL); +WHERE select_id = 35 OR select_id IS NULL) order by id; CAST(my_time AS DATE) my_time id NULL NULL 1 0000-00-00 -838:59:59 2 @@ -4129,7 +4311,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS DATE), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS DATE), my_timestamp, id FROM t1_values -WHERE select_id = 34 OR select_id IS NULL; +WHERE select_id = 34 OR select_id IS NULL order by id; CAST(my_timestamp AS DATE) my_timestamp id 0000-00-00 0000-00-00 00:00:00 1 1970-01-01 1970-01-01 03:00:01 2 @@ -4141,7 +4323,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as date) AS `CAST(my_timestamp AS DATE)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 34 OR select_id IS NULL); +WHERE select_id = 34 OR select_id IS NULL) order by id; CAST(my_timestamp AS DATE) my_timestamp id 0000-00-00 0000-00-00 00:00:00 1 1970-01-01 1970-01-01 03:00:01 2 @@ -4155,7 +4337,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS DATE), my_date, id FROM t1_values; SELECT CAST(my_date AS DATE), my_date, id FROM t1_values -WHERE select_id = 33 OR select_id IS NULL; +WHERE select_id = 33 OR select_id IS NULL order by id; CAST(my_date AS DATE) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4167,7 +4349,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as date) AS `CAST(my_date AS DATE)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 33 OR select_id IS NULL); +WHERE select_id = 33 OR select_id IS NULL) order by id; CAST(my_date AS DATE) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4181,7 +4363,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS DATE), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS DATE), my_datetime, id FROM t1_values -WHERE select_id = 32 OR select_id IS NULL; +WHERE select_id = 32 OR select_id IS NULL order by id; CAST(my_datetime AS DATE) my_datetime id NULL NULL 1 0001-01-01 0001-01-01 00:00:00 2 @@ -4193,7 +4375,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as date) AS `CAST(my_datetime AS DATE)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 32 OR select_id IS NULL); +WHERE select_id = 32 OR select_id IS NULL) order by id; CAST(my_datetime AS DATE) my_datetime id NULL NULL 1 0001-01-01 0001-01-01 00:00:00 2 @@ -4207,7 +4389,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS DATE), my_double, id FROM t1_values; SELECT CAST(my_double AS DATE), my_double, id FROM t1_values -WHERE select_id = 31 OR select_id IS NULL; +WHERE select_id = 31 OR select_id IS NULL order by id; CAST(my_double AS DATE) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -4225,7 +4407,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as date) AS `CAST(my_double AS DATE)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 31 OR select_id IS NULL); +WHERE select_id = 31 OR select_id IS NULL) order by id; CAST(my_double AS DATE) my_double id NULL NULL 1 NULL -1.7976931348623e+308 2 @@ -4245,7 +4427,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS DATE), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS DATE), my_bigint, id FROM t1_values -WHERE select_id = 30 OR select_id IS NULL; +WHERE select_id = 30 OR select_id IS NULL order by id; CAST(my_bigint AS DATE) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -4263,7 +4445,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as date) AS `CAST(my_bigint AS DATE)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 30 OR select_id IS NULL); +WHERE select_id = 30 OR select_id IS NULL) order by id; CAST(my_bigint AS DATE) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -4283,7 +4465,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS DATE), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS DATE), my_varbinary_1000, id FROM t1_values -WHERE select_id = 29 OR select_id IS NULL; +WHERE select_id = 29 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -4301,7 +4483,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as date) AS `CAST(my_varbinary_1000 AS DATE)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 29 OR select_id IS NULL); +WHERE select_id = 29 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS DATE) my_varbinary_1000 id NULL NULL 1 NULL 2 @@ -4321,14 +4503,14 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS DATE), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS DATE), my_binary_30, id FROM t1_values -WHERE select_id = 28 OR select_id IS NULL; +WHERE select_id = 28 OR select_id IS NULL order by id; CAST(my_binary_30 AS DATE) my_binary_30 id NULL NULL 1 -NULL 2 +NULL 2 NULL <--------30 characters-------> 3 -NULL ---äÖüß@µ*$-- 4 -NULL -1 5 -2005-06-27 2005-06-27 10 +NULL ---äÖüß@µ*$-- 4 +NULL -1 5 +2005-06-27 2005-06-27 10 Warnings: Warning 1292 Truncated incorrect datetime value: '' Warning 1292 Truncated incorrect datetime value: '<--------30 characters------->' @@ -4340,7 +4522,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as date) AS `CAST(my_binary_30 AS DATE)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 28 OR select_id IS NULL); +WHERE select_id = 28 OR select_id IS NULL) order by id; CAST(my_binary_30 AS DATE) my_binary_30 id NULL NULL 1 NULL 2 @@ -4361,7 +4543,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS DATE), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS DATE), my_varchar_1000, id FROM t1_values -WHERE select_id = 27 OR select_id IS NULL; +WHERE select_id = 27 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS DATE) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4379,7 +4561,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as date) AS `CAST(my_varchar_1000 AS DATE)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 27 OR select_id IS NULL); +WHERE select_id = 27 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS DATE) my_varchar_1000 id NULL NULL 1 NULL 2 @@ -4399,7 +4581,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS DATE), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS DATE), my_char_30, id FROM t1_values -WHERE select_id = 26 OR select_id IS NULL; +WHERE select_id = 26 OR select_id IS NULL order by id; CAST(my_char_30 AS DATE) my_char_30 id NULL NULL 1 NULL 2 @@ -4417,7 +4599,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as date) AS `CAST(my_char_30 AS DATE)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 26 OR select_id IS NULL); +WHERE select_id = 26 OR select_id IS NULL) order by id; CAST(my_char_30 AS DATE) my_char_30 id NULL NULL 1 NULL 2 @@ -4437,7 +4619,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS CHAR), my_year, id FROM t1_values; SELECT CAST(my_year AS CHAR), my_year, id FROM t1_values -WHERE select_id = 25 OR select_id IS NULL; +WHERE select_id = 25 OR select_id IS NULL order by id; CAST(my_year AS CHAR) my_year id NULL NULL 1 1901 1901 2 @@ -4449,7 +4631,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset latin1) AS `CAST(my_year AS CHAR)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 25 OR select_id IS NULL); +WHERE select_id = 25 OR select_id IS NULL) order by id; CAST(my_year AS CHAR) my_year id NULL NULL 1 1901 1901 2 @@ -4463,7 +4645,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS CHAR), my_time, id FROM t1_values; SELECT CAST(my_time AS CHAR), my_time, id FROM t1_values -WHERE select_id = 24 OR select_id IS NULL; +WHERE select_id = 24 OR select_id IS NULL order by id; CAST(my_time AS CHAR) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4475,7 +4657,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset latin1) AS `CAST(my_time AS CHAR)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 24 OR select_id IS NULL); +WHERE select_id = 24 OR select_id IS NULL) order by id; CAST(my_time AS CHAR) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4489,7 +4671,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS CHAR), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS CHAR), my_timestamp, id FROM t1_values -WHERE select_id = 23 OR select_id IS NULL; +WHERE select_id = 23 OR select_id IS NULL order by id; CAST(my_timestamp AS CHAR) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4501,7 +4683,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset latin1) AS `CAST(my_timestamp AS CHAR)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 23 OR select_id IS NULL); +WHERE select_id = 23 OR select_id IS NULL) order by id; CAST(my_timestamp AS CHAR) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4515,7 +4697,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS CHAR), my_date, id FROM t1_values; SELECT CAST(my_date AS CHAR), my_date, id FROM t1_values -WHERE select_id = 22 OR select_id IS NULL; +WHERE select_id = 22 OR select_id IS NULL order by id; CAST(my_date AS CHAR) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4527,7 +4709,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset latin1) AS `CAST(my_date AS CHAR)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 22 OR select_id IS NULL); +WHERE select_id = 22 OR select_id IS NULL) order by id; CAST(my_date AS CHAR) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4541,7 +4723,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS CHAR), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS CHAR), my_datetime, id FROM t1_values -WHERE select_id = 21 OR select_id IS NULL; +WHERE select_id = 21 OR select_id IS NULL order by id; CAST(my_datetime AS CHAR) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4553,7 +4735,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset latin1) AS `CAST(my_datetime AS CHAR)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 21 OR select_id IS NULL); +WHERE select_id = 21 OR select_id IS NULL) order by id; CAST(my_datetime AS CHAR) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4567,7 +4749,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS CHAR), my_double, id FROM t1_values; SELECT CAST(my_double AS CHAR), my_double, id FROM t1_values -WHERE select_id = 20 OR select_id IS NULL; +WHERE select_id = 20 OR select_id IS NULL order by id; CAST(my_double AS CHAR) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4579,7 +4761,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset latin1) AS `CAST(my_double AS CHAR)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 20 OR select_id IS NULL); +WHERE select_id = 20 OR select_id IS NULL) order by id; CAST(my_double AS CHAR) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4593,7 +4775,7 @@ CREATE VIEW v1 AS SELECT CAST(my_decimal AS CHAR), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS CHAR), my_decimal, id FROM t1_values -WHERE select_id = 19 OR select_id IS NULL; +WHERE select_id = 19 OR select_id IS NULL order by id; CAST(my_decimal AS CHAR) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4605,7 +4787,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset latin1) AS `CAST(my_decimal AS CHAR)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 19 OR select_id IS NULL); +WHERE select_id = 19 OR select_id IS NULL) order by id; CAST(my_decimal AS CHAR) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4619,7 +4801,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS CHAR), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS CHAR), my_bigint, id FROM t1_values -WHERE select_id = 18 OR select_id IS NULL; +WHERE select_id = 18 OR select_id IS NULL order by id; CAST(my_bigint AS CHAR) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4631,7 +4813,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset latin1) AS `CAST(my_bigint AS CHAR)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 18 OR select_id IS NULL); +WHERE select_id = 18 OR select_id IS NULL) order by id; CAST(my_bigint AS CHAR) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4645,7 +4827,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS CHAR), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS CHAR), my_varbinary_1000, id FROM t1_values -WHERE select_id = 17 OR select_id IS NULL; +WHERE select_id = 17 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id NULL NULL 1 2 @@ -4657,7 +4839,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset latin1) AS `CAST(my_varbinary_1000 AS CHAR)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 17 OR select_id IS NULL); +WHERE select_id = 17 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS CHAR) my_varbinary_1000 id NULL NULL 1 2 @@ -4671,19 +4853,19 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS CHAR), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS CHAR), my_binary_30, id FROM t1_values -WHERE select_id = 16 OR select_id IS NULL; +WHERE select_id = 16 OR select_id IS NULL order by id; CAST(my_binary_30 AS CHAR) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset latin1) AS `CAST(my_binary_30 AS CHAR)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 16 OR select_id IS NULL); +WHERE select_id = 16 OR select_id IS NULL) order by id; CAST(my_binary_30 AS CHAR) my_binary_30 id NULL NULL 1 2 @@ -4697,7 +4879,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS CHAR), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS CHAR), my_varchar_1000, id FROM t1_values -WHERE select_id = 15 OR select_id IS NULL; +WHERE select_id = 15 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id NULL NULL 1 2 @@ -4709,7 +4891,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset latin1) AS `CAST(my_varchar_1000 AS CHAR)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 15 OR select_id IS NULL); +WHERE select_id = 15 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS CHAR) my_varchar_1000 id NULL NULL 1 2 @@ -4723,7 +4905,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS CHAR), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS CHAR), my_char_30, id FROM t1_values -WHERE select_id = 14 OR select_id IS NULL; +WHERE select_id = 14 OR select_id IS NULL order by id; CAST(my_char_30 AS CHAR) my_char_30 id NULL NULL 1 2 @@ -4735,7 +4917,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset latin1) AS `CAST(my_char_30 AS CHAR)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 14 OR select_id IS NULL); +WHERE select_id = 14 OR select_id IS NULL) order by id; CAST(my_char_30 AS CHAR) my_char_30 id NULL NULL 1 2 @@ -4749,7 +4931,7 @@ CREATE VIEW v1 AS SELECT CAST(my_year AS BINARY), my_year, id FROM t1_values; SELECT CAST(my_year AS BINARY), my_year, id FROM t1_values -WHERE select_id = 13 OR select_id IS NULL; +WHERE select_id = 13 OR select_id IS NULL order by id; CAST(my_year AS BINARY) my_year id NULL NULL 1 1901 1901 2 @@ -4761,7 +4943,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_year` as char charset binary) AS `CAST(my_year AS BINARY)`,`t1_values`.`my_year` AS `my_year`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 13 OR select_id IS NULL); +WHERE select_id = 13 OR select_id IS NULL) order by id; CAST(my_year AS BINARY) my_year id NULL NULL 1 1901 1901 2 @@ -4775,7 +4957,7 @@ CREATE VIEW v1 AS SELECT CAST(my_time AS BINARY), my_time, id FROM t1_values; SELECT CAST(my_time AS BINARY), my_time, id FROM t1_values -WHERE select_id = 12 OR select_id IS NULL; +WHERE select_id = 12 OR select_id IS NULL order by id; CAST(my_time AS BINARY) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4787,7 +4969,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_time` as char charset binary) AS `CAST(my_time AS BINARY)`,`t1_values`.`my_time` AS `my_time`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 12 OR select_id IS NULL); +WHERE select_id = 12 OR select_id IS NULL) order by id; CAST(my_time AS BINARY) my_time id NULL NULL 1 -838:59:59 -838:59:59 2 @@ -4801,7 +4983,7 @@ CREATE VIEW v1 AS SELECT CAST(my_timestamp AS BINARY), my_timestamp, id FROM t1_values; SELECT CAST(my_timestamp AS BINARY), my_timestamp, id FROM t1_values -WHERE select_id = 11 OR select_id IS NULL; +WHERE select_id = 11 OR select_id IS NULL order by id; CAST(my_timestamp AS BINARY) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4813,7 +4995,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_timestamp` as char charset binary) AS `CAST(my_timestamp AS BINARY)`,`t1_values`.`my_timestamp` AS `my_timestamp`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 11 OR select_id IS NULL); +WHERE select_id = 11 OR select_id IS NULL) order by id; CAST(my_timestamp AS BINARY) my_timestamp id 0000-00-00 00:00:00 0000-00-00 00:00:00 1 1970-01-01 03:00:01 1970-01-01 03:00:01 2 @@ -4827,7 +5009,7 @@ CREATE VIEW v1 AS SELECT CAST(my_date AS BINARY), my_date, id FROM t1_values; SELECT CAST(my_date AS BINARY), my_date, id FROM t1_values -WHERE select_id = 10 OR select_id IS NULL; +WHERE select_id = 10 OR select_id IS NULL order by id; CAST(my_date AS BINARY) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4839,7 +5021,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_date` as char charset binary) AS `CAST(my_date AS BINARY)`,`t1_values`.`my_date` AS `my_date`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 10 OR select_id IS NULL); +WHERE select_id = 10 OR select_id IS NULL) order by id; CAST(my_date AS BINARY) my_date id NULL NULL 1 0001-01-01 0001-01-01 2 @@ -4853,7 +5035,7 @@ CREATE VIEW v1 AS SELECT CAST(my_datetime AS BINARY), my_datetime, id FROM t1_values; SELECT CAST(my_datetime AS BINARY), my_datetime, id FROM t1_values -WHERE select_id = 9 OR select_id IS NULL; +WHERE select_id = 9 OR select_id IS NULL order by id; CAST(my_datetime AS BINARY) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4865,7 +5047,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_datetime` as char charset binary) AS `CAST(my_datetime AS BINARY)`,`t1_values`.`my_datetime` AS `my_datetime`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 9 OR select_id IS NULL); +WHERE select_id = 9 OR select_id IS NULL) order by id; CAST(my_datetime AS BINARY) my_datetime id NULL NULL 1 0001-01-01 00:00:00 0001-01-01 00:00:00 2 @@ -4879,7 +5061,7 @@ CREATE VIEW v1 AS SELECT CAST(my_double AS BINARY), my_double, id FROM t1_values; SELECT CAST(my_double AS BINARY), my_double, id FROM t1_values -WHERE select_id = 8 OR select_id IS NULL; +WHERE select_id = 8 OR select_id IS NULL order by id; CAST(my_double AS BINARY) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4891,7 +5073,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_double` as char charset binary) AS `CAST(my_double AS BINARY)`,`t1_values`.`my_double` AS `my_double`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 8 OR select_id IS NULL); +WHERE select_id = 8 OR select_id IS NULL) order by id; CAST(my_double AS BINARY) my_double id NULL NULL 1 -1.7976931348623e+308 -1.7976931348623e+308 2 @@ -4905,7 +5087,7 @@ CREATE VIEW v1 AS SELECT CAST(my_decimal AS BINARY), my_decimal, id FROM t1_values; SELECT CAST(my_decimal AS BINARY), my_decimal, id FROM t1_values -WHERE select_id = 7 OR select_id IS NULL; +WHERE select_id = 7 OR select_id IS NULL order by id; CAST(my_decimal AS BINARY) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4917,7 +5099,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_decimal` as char charset binary) AS `CAST(my_decimal AS BINARY)`,`t1_values`.`my_decimal` AS `my_decimal`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 7 OR select_id IS NULL); +WHERE select_id = 7 OR select_id IS NULL) order by id; CAST(my_decimal AS BINARY) my_decimal id NULL NULL 1 -9999999999999999999999999999999999.999999999999999999999999999999 -9999999999999999999999999999999999.999999999999999999999999999999 2 @@ -4931,7 +5113,7 @@ CREATE VIEW v1 AS SELECT CAST(my_bigint AS BINARY), my_bigint, id FROM t1_values; SELECT CAST(my_bigint AS BINARY), my_bigint, id FROM t1_values -WHERE select_id = 6 OR select_id IS NULL; +WHERE select_id = 6 OR select_id IS NULL order by id; CAST(my_bigint AS BINARY) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4943,7 +5125,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_bigint` as char charset binary) AS `CAST(my_bigint AS BINARY)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 6 OR select_id IS NULL); +WHERE select_id = 6 OR select_id IS NULL) order by id; CAST(my_bigint AS BINARY) my_bigint id NULL NULL 1 -9223372036854775808 -9223372036854775808 2 @@ -4957,7 +5139,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varbinary_1000 AS BINARY), my_varbinary_1000, id FROM t1_values; SELECT CAST(my_varbinary_1000 AS BINARY), my_varbinary_1000, id FROM t1_values -WHERE select_id = 5 OR select_id IS NULL; +WHERE select_id = 5 OR select_id IS NULL order by id; CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id NULL NULL 1 2 @@ -4969,7 +5151,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varbinary_1000` as char charset binary) AS `CAST(my_varbinary_1000 AS BINARY)`,`t1_values`.`my_varbinary_1000` AS `my_varbinary_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 5 OR select_id IS NULL); +WHERE select_id = 5 OR select_id IS NULL) order by id; CAST(my_varbinary_1000 AS BINARY) my_varbinary_1000 id NULL NULL 1 2 @@ -4983,19 +5165,19 @@ CREATE VIEW v1 AS SELECT CAST(my_binary_30 AS BINARY), my_binary_30, id FROM t1_values; SELECT CAST(my_binary_30 AS BINARY), my_binary_30, id FROM t1_values -WHERE select_id = 4 OR select_id IS NULL; +WHERE select_id = 4 OR select_id IS NULL order by id; CAST(my_binary_30 AS BINARY) my_binary_30 id NULL NULL 1 - 2 + 2 <--------30 characters-------> <--------30 characters-------> 3 - ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 --1 -1 5 + ---äÖüß@µ*$-- ---äÖüß@µ*$-- 4 +-1 -1 5 SHOW CREATE VIEW v1; View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_binary_30` as char charset binary) AS `CAST(my_binary_30 AS BINARY)`,`t1_values`.`my_binary_30` AS `my_binary_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 4 OR select_id IS NULL); +WHERE select_id = 4 OR select_id IS NULL) order by id; CAST(my_binary_30 AS BINARY) my_binary_30 id NULL NULL 1 2 @@ -5009,7 +5191,7 @@ CREATE VIEW v1 AS SELECT CAST(my_varchar_1000 AS BINARY), my_varchar_1000, id FROM t1_values; SELECT CAST(my_varchar_1000 AS BINARY), my_varchar_1000, id FROM t1_values -WHERE select_id = 3 OR select_id IS NULL; +WHERE select_id = 3 OR select_id IS NULL order by id; CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id NULL NULL 1 2 @@ -5021,7 +5203,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_varchar_1000` as char charset binary) AS `CAST(my_varchar_1000 AS BINARY)`,`t1_values`.`my_varchar_1000` AS `my_varchar_1000`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 3 OR select_id IS NULL); +WHERE select_id = 3 OR select_id IS NULL) order by id; CAST(my_varchar_1000 AS BINARY) my_varchar_1000 id NULL NULL 1 2 @@ -5035,7 +5217,7 @@ CREATE VIEW v1 AS SELECT CAST(my_char_30 AS BINARY), my_char_30, id FROM t1_values; SELECT CAST(my_char_30 AS BINARY), my_char_30, id FROM t1_values -WHERE select_id = 2 OR select_id IS NULL; +WHERE select_id = 2 OR select_id IS NULL order by id; CAST(my_char_30 AS BINARY) my_char_30 id NULL NULL 1 2 @@ -5047,7 +5229,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select cast(`t1_values`.`my_char_30` as char charset binary) AS `CAST(my_char_30 AS BINARY)`,`t1_values`.`my_char_30` AS `my_char_30`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 2 OR select_id IS NULL); +WHERE select_id = 2 OR select_id IS NULL) order by id; CAST(my_char_30 AS BINARY) my_char_30 id NULL NULL 1 2 @@ -5059,7 +5241,7 @@ DROP VIEW v1; CREATE VIEW v1 AS SELECT sqrt(my_bigint), my_bigint, id FROM t1_values; SELECT sqrt(my_bigint), my_bigint, id FROM t1_values -WHERE select_id = 1 OR select_id IS NULL; +WHERE select_id = 1 OR select_id IS NULL order by id; sqrt(my_bigint) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 @@ -5073,7 +5255,7 @@ View Create View v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select sqrt(`t1_values`.`my_bigint`) AS `sqrt(my_bigint)`,`t1_values`.`my_bigint` AS `my_bigint`,`t1_values`.`id` AS `id` from `t1_values` SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values -WHERE select_id = 1 OR select_id IS NULL); +WHERE select_id = 1 OR select_id IS NULL) order by id; sqrt(my_bigint) my_bigint id NULL NULL 1 NULL -9223372036854775808 2 diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result index aff27fbabc4..6ba95c9fa63 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_02.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.2 - Syntax checks for the stored procedure-specific programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE: @@ -164,7 +172,7 @@ declare y integer default 1; set @x = x; set @y = y; set @z = 234; -SELECT f1, f2 into @x, @y from t2 limit 1; +SELECT f1, f2 into @x, @y from t2 where f1='a`' and f2='a`' limit 1; SELECT @x, @y, @z, invar; BEGIN set @x = 2; @@ -207,7 +215,7 @@ BEGIN declare x integer; declare y integer; set @x=x; set @y=y; -SELECT f4, f3 into @x, @y from t2 limit 1; +SELECT f4, f3 into @x, @y from t2 where f4=-5000 and f3='1000-01-01' limit 1; SELECT @x, @y; END// CALL sp1(); @@ -695,7 +703,7 @@ Testcase 3.1.2.54: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -01 is always exactly equivalent in action to a handler with an SQLWARNING +“01“ is always exactly equivalent in action to a handler with an SQLWARNING condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -794,7 +802,7 @@ Testcase 3.1.2.56: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -02 is always exactly equivalent in action to a handler with a NOT FOUND +“02“ is always exactly equivalent in action to a handler with a NOT FOUND condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -902,7 +910,7 @@ Testcase 3.1.2.58: ------------------ Ensure that a handler with a condition defined with an SQLSTATE that begins with -anything other that 01 or 02 is always exactly equivalent in action to a +anything other that “01“ or “02“ is always exactly equivalent in action to a handler with an SQLEXCEPTION condition. -------------------------------------------------------------------------------- DROP PROCEDURE IF EXISTS sp0; @@ -1082,7 +1090,8 @@ declare f2_value char(20); declare f5_value char(20); declare f4_value integer; declare f6_value integer; -declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3; +declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 +where f4 >=-5000 order by f4 limit 3; open cur1; while proceed do SELECT count AS 'loop'; @@ -1165,7 +1174,7 @@ of a compound statement ends. DROP TABLE IF EXISTS temp1; DROP PROCEDURE IF EXISTS sp1; create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) ); -SELECT f1, f2, f4, f5 from t2; +SELECT f1, f2, f4, f5 from t2 order by f4; f1 f2 f4 f5 a` a` -5000 a` aaa aaa -4999 aaa @@ -1185,8 +1194,8 @@ declare newf1 char(20); declare newf2 char(20); declare newf5 char(20); declare newf4 integer; -declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; -declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; +declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; +declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; open cur1; open cur2; BEGIN @@ -1268,8 +1277,10 @@ declare i_newf11 char(20); declare i_newf12 char(20); declare i_newf13 date; declare i_newf14 integer; -declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4; -declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3; +declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 +where f4>=-5000 order by f4 limit 4; +declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 +where f4>=-5000 order by f4 limit 3; declare continue handler for sqlstate '02000' set proceed=0; open cur1; open cur2; @@ -1300,8 +1311,10 @@ DECLARE o_newf11 CHAR(20); DECLARE o_newf12 CHAR(20); DECLARE o_newf13 DATE; DECLARE o_newf14 INTEGER; -DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; -DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; +DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 +WHERE f4>=-5000 ORDER BY f4 LIMIT 5; +DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 +WHERE f4>=-5000 ORDER BY f4 LIMIT 5; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0; OPEN cur1; OPEN cur2; diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result index 0057b7ef229..53e25441e2e 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_03.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.3 - Syntax checks for the stored procedure-specific flow control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE: diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result index a85c4347962..88bddf68e24 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_06.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.6 - Privilege Checks: -------------------------------------------------------------------------------- @@ -79,6 +87,7 @@ BEGIN SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz'; END// ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1' +USE db_storedproc_1; root@localhost db_storedproc_1 GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost'; @@ -90,6 +99,7 @@ CREATE PROCEDURE sp1(v1 char(20)) BEGIN SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz'; END// +USE db_storedproc_1; root@localhost db_storedproc_1 DROP USER 'user_1'@'localhost'; @@ -115,6 +125,7 @@ CREATE FUNCTION fn1(v1 int) returns int BEGIN return v1; END// +USE db_storedproc_1; root@localhost db_storedproc_1 drop user 'user_1'@'localhost'; diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result index 0865d77e4f0..cbe0a18435a 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_07.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.7 - SQL mode checks: -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result index 3e612817200..40ebc1e51e4 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_08.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.8 - SHOW statement checks: -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result index b24e222fc4b..163bae36bed 100644 --- a/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result +++ b/mysql-test/suite/funcs_1/r/myisam_storedproc_10.result @@ -9,20 +9,25 @@ DROP DATABASE IF EXISTS db_storedproc_1; CREATE DATABASE db_storedproc; CREATE DATABASE db_storedproc_1; USE db_storedproc; -create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; -create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; -create table t3(f1 char(20),f2 char(20),f3 integer) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; -create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t1; +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t2; +create table t3(f1 char(20),f2 char(20),f3 integer) engine = ; +load data infile '/std_data_ln/funcs_1/t3.txt' into table t3; +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t7; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -34,8 +39,9 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t7.txt' into table t8; Warnings: Warning 1265 Data truncated for column 'f3' at row 1 Warning 1265 Data truncated for column 'f3' at row 2 @@ -47,12 +53,14 @@ Warning 1265 Data truncated for column 'f3' at row 7 Warning 1265 Data truncated for column 'f3' at row 8 Warning 1265 Data truncated for column 'f3' at row 9 Warning 1265 Data truncated for column 'f3' at row 10 -create table t9(f1 int, f2 char(25), f3 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; -create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; -create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +create table t9(f1 int, f2 char(25), f3 int) engine = ; +load data infile '/std_data_ln/funcs_1/t9.txt' into table t9; +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t10; +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = ; +load data infile '/std_data_ln/funcs_1/t4.txt' into table t11; Section 3.1.10 - CALL checks: -------------------------------------------------------------------------------- @@ -78,7 +86,7 @@ connect(localhost,user_1,,db_storedproc,MYSQL_PORT,MYSQL_SOCK); user_1@localhost db_storedproc CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER BEGIN -SELECT * FROM db_storedproc.t1 LIMIT 1; +SELECT * FROM db_storedproc.t1 WHERE f4=-5000 LIMIT 1; END// CREATE FUNCTION fn31105(n INT) RETURNS INT BEGIN @@ -93,6 +101,8 @@ CALL sp31102(); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102' SELECT fn31105( 9 ); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105' +connection default; +USE db_storedproc; root@localhost db_storedproc CALL sp31102(); @@ -112,6 +122,8 @@ a` a` 1000-01-01 -5000 a` -5000 SELECT fn31105( 9 ); fn31105( 9 ) 81 +connection default; +USE db_storedproc; root@localhost db_storedproc REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost'; @@ -129,6 +141,7 @@ CALL sp31102(); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102' SELECT fn31105( 9 ); ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105' +USE db_storedproc; root@localhost db_storedproc DROP PROCEDURE sp31102; @@ -176,6 +189,8 @@ DROP PROCEDURE IF EXISTS sp_ins_1; DROP PROCEDURE IF EXISTS sp_ins_3; DROP PROCEDURE IF EXISTS sp_upd; DROP PROCEDURE IF EXISTS sp_ins_upd; +DROP PROCEDURE IF EXISTS sp_del; +DROP PROCEDURE IF EXISTS sp_with_rowcount; CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT); INSERT INTO temp SELECT * FROM t10; CREATE PROCEDURE sp_ins_1() @@ -203,49 +218,72 @@ END; SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1; UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc'; END// +CREATE PROCEDURE sp_del() +BEGIN +DELETE FROM temp WHERE temp.f1 ='qwe' OR temp.f1 = 'updated_2'; +END// +CREATE PROCEDURE sp_with_rowcount() +BEGIN +BEGIN +INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000), +('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000), +('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000), +('qwe', 'xyz', '2005-11-07', 100, 'uvw', 1000); +END; +SELECT row_count() AS 'row_count() after insert'; +SELECT row_count() AS 'row_count() after select row_count()'; +SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; +UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f2 = 'abc'; +SELECT row_count() AS 'row_count() after update'; +SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; +DELETE FROM temp WHERE temp.f1 = 'updated_2'; +SELECT row_count() AS 'row_count() after delete'; +END// CALL sp_ins_1(); SELECT row_count(); row_count() 1 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 +abc abc 2005-10-03 100 uvw 1000 acaaa acaaa 1000-01-04 -4997 acaaa -4997 adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 -abc abc 2005-10-03 100 uvw 1000 CALL sp_ins_3(); SELECT row_count(); row_count() 1 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 +abc abc 2005-10-03 100 uvw 1000 +abc xyz 1949-05-23 100 uvw 1000 +abc xyz 1989-11-09 100 uvw 1000 +abc xyz 2005-10-24 100 uvw 1000 acaaa acaaa 1000-01-04 -4997 acaaa -4997 adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 -abc abc 2005-10-03 100 uvw 1000 -abc xyz 1949-05-23 100 uvw 1000 -abc xyz 1989-11-09 100 uvw 1000 -abc xyz 2005-10-24 100 uvw 1000 CALL sp_upd(); SELECT row_count(); row_count() 4 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 @@ -254,8 +292,6 @@ adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 updated abc 2005-10-03 100 uvw 1000 updated xyz 1949-05-23 100 uvw 1000 updated xyz 1989-11-09 100 uvw 1000 @@ -279,6 +315,8 @@ row_count() 3 SELECT * FROM temp; f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 a` a` 1000-01-01 -5000 a` -5000 aaa aaa 1000-01-02 -4999 aaa -4999 abaa abaa 1000-01-03 -4998 abaa -4998 @@ -287,26 +325,73 @@ adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 -a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 -a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 +qwe xyz 1998-03-26 100 uvw 1000 updated abc 2005-10-03 100 uvw 1000 updated xyz 1949-05-23 100 uvw 1000 updated xyz 1989-11-09 100 uvw 1000 updated xyz 2005-10-24 100 uvw 1000 updated_2 abc 1989-11-09 100 uvw 1000 -qwe xyz 1998-03-26 100 uvw 1000 updated_2 abc 2000-11-09 100 uvw 1000 updated_2 abc 2005-11-07 100 uvw 1000 +CALL sp_del(); +SELECT row_count(); +row_count() +4 +SELECT * FROM temp; +f1 f2 f3 f4 f5 f6 +a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992 +a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991 +a` a` 1000-01-01 -5000 a` -5000 +aaa aaa 1000-01-02 -4999 aaa -4999 +abaa abaa 1000-01-03 -4998 abaa -4998 +acaaa acaaa 1000-01-04 -4997 acaaa -4997 +adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996 +aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995 +afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994 +agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993 +updated abc 2005-10-03 100 uvw 1000 +updated xyz 1949-05-23 100 uvw 1000 +updated xyz 1989-11-09 100 uvw 1000 +updated xyz 2005-10-24 100 uvw 1000 +DELETE FROM temp; +CALL sp_with_rowcount(); +row_count() after insert +4 +row_count() after select row_count() +-1 +f1 f2 f3 +qwe abc 1989-11-09 +qwe abc 2000-11-09 +qwe xyz 1998-03-26 +qwe xyz 2005-11-07 +row_count() after update +2 +f1 f2 f3 +qwe xyz 1998-03-26 +qwe xyz 2005-11-07 +updated_2 abc 1989-11-09 +updated_2 abc 2000-11-09 +row_count() after delete +2 +SELECT row_count(); +row_count() +-1 +SELECT * FROM temp; +f1 f2 f3 f4 f5 f6 +qwe xyz 1998-03-26 100 uvw 1000 +qwe xyz 2005-11-07 100 uvw 1000 DROP PROCEDURE sp_ins_1; DROP PROCEDURE sp_ins_3; DROP PROCEDURE sp_upd; DROP PROCEDURE sp_ins_upd; +DROP PROCEDURE sp_del; +DROP PROCEDURE sp_with_rowcount; DROP TABLE temp; Testcase 3.1.10.8: ------------------ -Ensure that the mysql_affected_rows() C API function always returns the correct +Ensure that the mysql_affected_rows() C API function always returns the correct number of rows affected by the execution of a stored procedure. -------------------------------------------------------------------------------- diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_0102.result b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result index 08ad956b167..b49fe114791 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_0102.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_0102.result @@ -1,96 +1,97 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; Testcase: 3.5.1.1: ------------------ use test; -Create trigger trg1_1 BEFORE INSERT +Create trigger trg1_1 BEFORE INSERT on tb3 for each row set @test_before = 2, new.f142 = @test_before; -Create trigger trg1_2 AFTER INSERT +Create trigger trg1_2 AFTER INSERT on tb3 for each row set @test_after = 6; -Create trigger trg1_4 BEFORE UPDATE -on tb3 for each row set @test_before = 27, -new.f142 = @test_before, +Create trigger trg1_4 BEFORE UPDATE +on tb3 for each row set @test_before = 27, +new.f142 = @test_before, new.f122 = 'Before Update Trigger'; -Create trigger trg1_3 AFTER UPDATE +Create trigger trg1_3 AFTER UPDATE on tb3 for each row set @test_after = '15'; -Create trigger trg1_5 BEFORE DELETE on tb3 for each row -select count(*) into @test_before from tb3 as tr_tb3 +Create trigger trg1_5 BEFORE DELETE on tb3 for each row +select count(*) into @test_before from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; -Create trigger trg1_6 AFTER DELETE on tb3 for each row -select count(*) into @test_after from tb3 as tr_tb3 +Create trigger trg1_6 AFTER DELETE on tb3 for each row +select count(*) into @test_after from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; set @test_before = 1; set @test_after = 5; select @test_before, @test_after; @test_before @test_after 1 5 -Insert into tb3 (f121, f122, f142, f144, f134) +Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; f121 f122 f142 f144 f134 @@ -103,9 +104,9 @@ set @test_after = 8; select @test_before, @test_after; @test_before @test_after 18 8 -Update tb3 set tb3.f122 = 'Update', -tb3.f142 = @test_before, -tb3.f144 = @test_after +Update tb3 set tb3.f122 = 'Update', +tb3.f142 = @test_before, +tb3.f144 = @test_after where tb3.f121 = 'Test 3.5.1.1'; select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; f121 f122 f142 f144 f134 @@ -113,7 +114,7 @@ Test 3.5.1.1 Before Update Trigger 27 0000000008 1 select @test_before, @test_after; @test_before @test_after 27 15 -Insert into tb3 (f121, f122, f142, f144, f134) +Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); set @test_before = 0; set @test_after = 0; @@ -141,7 +142,7 @@ delete from tb3 where f121='Test 3.5.1.1'; Testcase: 3.5.1.2: ------------------ -Create trigger trg_1 after insert +Create trigger trg_1 after insert on tb3 for each statement set @x= 1; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statement set @x= 1' at line 2 drop trigger trg_1; @@ -194,7 +195,7 @@ drop table if exists t1; Warnings: Note 1051 Unknown table 't1' create table t1 (f1 int, f2 char(25),f3 int) engine=myisam; -CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 +CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 for each row set new.f3 = '14'; CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; @@ -206,7 +207,7 @@ update t1 set f2='update 3.5.1.7'; select * from t1; f1 f2 f3 NULL update 3.5.1.7 42 -select trigger_name from information_schema.triggers; +select trigger_name from information_schema.triggers order by trigger_name; trigger_name trg5_1 trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX @@ -226,7 +227,7 @@ CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1 CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@name before insert on tb3 for each row set new.f120 = 't'' at line 1 -CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 +CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 for each row set new.f120 ='X'; ERROR HY000: Trigger in wrong schema drop database if exists trig_db; @@ -234,11 +235,11 @@ create database trig_db; use trig_db; create table t1 (f1 integer) engine = myisam; use test; -CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 +CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 for each row set @ret_trg6_2 = 5; ERROR 42S02: Table 'trig_db.tb3' doesn't exist use trig_db; -CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 +CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 for each row set @ret_trg6_3 = 18; ERROR HY000: Trigger in wrong schema use test; @@ -262,9 +263,9 @@ drop table if exists t1; drop table if exists t2; create table t1 (f1 char(50), f2 integer) engine = myisam; create table t2 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig t1'; -create trigger trig before update on t2 +create trigger trig before update on t2 for each row set new.f1 ='trig t2'; ERROR HY000: Trigger already exists insert into t1 value ('insert to t1',1); @@ -294,15 +295,15 @@ create database trig_db2; create database trig_db3; use trig_db1; create table t1 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig1', @test_var1='trig1'; use trig_db2; create table t2 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t2 +create trigger trig before insert on t2 for each row set new.f1 ='trig2', @test_var2='trig2'; use trig_db3; create table t1 (f1 char(50), f2 integer) engine = myisam; -create trigger trig before insert on t1 +create trigger trig before insert on t1 for each row set new.f1 ='trig3', @test_var3='trig3'; set @test_var1= '', @test_var2= '', @test_var3= ''; use trig_db1; @@ -313,7 +314,7 @@ insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); select @test_var1, @test_var2, @test_var3; @test_var1 @test_var2 @test_var3 trig1 trig2 trig3 -select * from t1; +select * from t1 order by f2; f1 f2 trig1 1 trig1 2 @@ -323,7 +324,7 @@ trig2 3 select * from trig_db3.t1; f1 f2 trig3 4 -select * from t1; +select * from t1 order by f2; f1 f2 trig1 1 trig1 2 @@ -341,17 +342,17 @@ create database trig_db2; use trig_db1; create table t1 (f1 char(50), f2 integer) engine = myisam; create table trig_db2.t1 (f1 char(50), f2 integer) engine = myisam; -create trigger trig1_b before insert on t1 +create trigger trig1_b before insert on t1 for each row set @test_var1='trig1_b'; -create trigger trig_db1.trig1_a after insert on t1 +create trigger trig_db1.trig1_a after insert on t1 for each row set @test_var2='trig1_a'; -create trigger trig_db2.trig2 before insert on trig_db2.t1 +create trigger trig_db2.trig2 before insert on trig_db2.t1 for each row set @test_var3='trig2'; select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; +from information_schema.triggers order by trigger_name; trigger_schema trigger_name event_object_table -trig_db1 trig1_b t1 trig_db1 trig1_a t1 +trig_db1 trig1_b t1 trig_db2 trig2 t1 set @test_var1= '', @test_var2= '', @test_var3= ''; insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_03.result b/mysql-test/suite/funcs_1/r/myisam_trig_03.result index 42e984245e3..ae003721cb4 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_03.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_03.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; Testcase 3.5.3: --------------- @@ -106,7 +107,7 @@ set new.f1 = 'trig 3.5.3.2_1-no'; ERROR 42000: Access denied; you need the SUPER privilege for this operation use priv_db; insert into t1 (f1) values ('insert 3.5.3.2-no'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no select current_user; @@ -121,15 +122,12 @@ root@localhost use priv_db; insert into t1 (f1) values ('insert 3.5.3.2-yes'); ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for column 'f1' in table 't1' -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no grant UPDATE on priv_db.t1 to test_yesprivs@localhost; - -note: once 15166 is fixed a similar case for SELECT needs to be added ---------------------------------------------------------------------- insert into t1 (f1) values ('insert 3.5.3.2-yes'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no trig 3.5.3.2_2-yes @@ -141,7 +139,7 @@ drop trigger trg1_2; ERROR 42000: Access denied; you need the SUPER privilege for this operation use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-yes'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no trig 3.5.3.2_2-yes @@ -150,12 +148,12 @@ use priv_db; drop trigger trg1_2; use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-no'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes drop trigger trg1_2; Testcase 3.5.3.7a: @@ -180,23 +178,22 @@ use priv_db; show grants; Grants for test_noprivs@localhost GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +create trigger trg4a_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1a'; insert into t1 (f1) values ('insert 3.5.3.7-1a'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes drop trigger trg4a_1; use priv_db; select current_user; @@ -207,18 +204,13 @@ Grants for test_yesprivs@localhost GRANT UPDATE, SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' create trigger trg4a_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2a'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on *.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a drop trigger trg4a_2; @@ -245,30 +237,29 @@ Grants for test_noprivs@localhost GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4b_1 before UPDATE on t1 for each row +set new.f1 = 'trig 3.5.3.7-1b'; +ERROR 42000: Access denied; you need the SUPER privilege for this operation insert into t1 (f1) values ('insert 3.5.3.7-1b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a insert 3.5.3.7-1b +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +trig 3.5.3.7-2a update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a update 3.5.3.7-1b drop trigger trg4b_1; +ERROR HY000: Trigger does not exist show grants; Grants for test_yesprivs@localhost GRANT SUPER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' @@ -276,32 +267,26 @@ GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4b_2 before UPDATE on t1 for each row set new.f1 = 'trig 3.5.3.7-2b'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on priv_db.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2b'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a -trig 3.5.3.7-2a -update 3.5.3.7-1b insert 3.5.3.7-2b -update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; -select f1 from t1; -f1 -insert 3.5.3.2-no trig 3.5.3.2_2-yes trig 3.5.3.2_2-yes -insert 3.5.3.6-no -insert 3.5.3.7-1a trig 3.5.3.7-2a update 3.5.3.7-1b +update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; +select f1 from t1 order by f1; +f1 +insert 3.5.3.2-no +insert 3.5.3.6-no +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes +trig 3.5.3.7-2a trig 3.5.3.7-2b +update 3.5.3.7-1b drop trigger trg4b_2; Testcase 3.5.3.7c @@ -327,21 +312,19 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4c_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1c'; insert into t1 (f1) values ('insert 3.5.3.7-1c'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c +update 3.5.3.7-1b drop trigger trg4c_1; show grants; Grants for test_yesprivs@localhost @@ -350,23 +333,17 @@ GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4c_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2c'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2c'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c +update 3.5.3.7-1b drop trigger trg4c_2; Testcase 3.5.3.7d: @@ -390,23 +367,20 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8884 ------------------------------------------------- +create trigger trg4d_1 before INSERT on t1 for each row +set new.f1 = 'trig 3.5.3.7-1d'; insert into t1 (f1) values ('insert 3.5.3.7-1d'); -select f1 from t1; +ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c -insert 3.5.3.7-1d +update 3.5.3.7-1b drop trigger trg4d_1; show grants; Grants for test_yesprivs@localhost @@ -415,25 +389,18 @@ GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost' use priv_db; create trigger trg4d_2 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.7-2d'; - -SELECT priv added to bypass bug 15166 -------------------------------------- -grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.7-2d'); -select f1 from t1; +select f1 from t1 order by f1; f1 insert 3.5.3.2-no -trig 3.5.3.2_2-yes -trig 3.5.3.2_2-yes insert 3.5.3.6-no -insert 3.5.3.7-1a +trig 3.5.3.2_2-yes +trig 3.5.3.2_2-yes trig 3.5.3.7-2a -update 3.5.3.7-1b trig 3.5.3.7-2b -insert 3.5.3.7-1c trig 3.5.3.7-2c -insert 3.5.3.7-1d trig 3.5.3.7-2d +update 3.5.3.7-1b drop trigger trg4d_2; Testcase 3.5.3.8a: @@ -458,14 +425,14 @@ use priv_db; show grants; Grants for test_noprivs@localhost GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5a_1 before INSERT on t1 for each row +set @test_var = new.f1; set @test_var = 'before trig 3.5.3.8-1a'; select @test_var; @test_var before trig 3.5.3.8-1a insert into t1 (f1) values ('insert 3.5.3.8-1a'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1a @@ -483,10 +450,6 @@ set @test_var= 'before trig 3.5.3.8-2a'; select @test_var; @test_var before trig 3.5.3.8-2a - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on *.* to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2a'); select @test_var; @test_var @@ -517,15 +480,15 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE ON `priv_db`.* TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5b_1 before UPDATE on t1 for each row +set @test_var= new.f1; set @test_var= 'before trig 3.5.3.8-1b'; insert into t1 (f1) values ('insert 3.5.3.8-1b'); select @test_var; @test_var before trig 3.5.3.8-1b update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1b @@ -542,10 +505,6 @@ insert into t1 (f1) values ('insert 3.5.3.8-2b'); select @test_var; @test_var before trig 3.5.3.8-2b - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on priv_db.* to test_yesprivs@localhost; update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; select @test_var; @test_var @@ -576,11 +535,11 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5c_1 before INSERT on t1 for each row +set @test_var= new.f1; set @test_var= 'before trig 3.5.3.8-1c'; insert into t1 (f1) values ('insert 3.5.3.8-1c'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1c @@ -593,10 +552,6 @@ use priv_db; create trigger trg5c_2 before INSERT on t1 for each row set @test_var= new.f1; set @test_var='before trig 3.5.3.8-2c'; - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2c'); select @test_var; @test_var @@ -626,11 +581,11 @@ Grants for test_noprivs@localhost GRANT SUPER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576' GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost' use priv_db; - -Trigger create disabled - should fail - Bug 8887 ------------------------------------------------- +create trigger trg5d_1 before INSERT on t1 for each row +set @test_var= new.f1; set @test_var='before trig 3.5.3.8-1d'; insert into t1 (f1) values ('insert 3.5.3.8-1d'); +ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1' select @test_var; @test_var before trig 3.5.3.8-1d @@ -643,10 +598,6 @@ use priv_db; create trigger trg5d_2 before INSERT on t1 for each row set @test_var= new.f1; set @test_var='before trig 3.5.3.8-2d'; - -UPDATE priv added to bypass bug 15166 -------------------------------------- -grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; insert into t1 (f1) values ('insert 3.5.3.8-2d'); select @test_var; @test_var @@ -682,10 +633,10 @@ ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (4); -select f1 from t1; +select f1 from t1 order by f1; f1 4 -select f2 from t2; +select f2 from t2 order by f2; f2 4 use priv_db; @@ -698,11 +649,11 @@ ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table revoke INSERT on priv_db.t2 from test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (2); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 2 -select f2 from t2; +4 +select f2 from t2 order by f2; f2 1 use priv_db; @@ -715,12 +666,12 @@ ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 -2 1 -select f2 from t2; +2 +4 +select f2 from t2 order by f2; f2 1 select @aaa; @@ -736,13 +687,13 @@ ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); -select f1 from t1; +select f1 from t1 order by f1; f1 -4 +1 +1 2 -1 -1 -select f2 from t2; +4 +select f2 from t2 order by f2; f2 drop database if exists priv_db; drop user test_yesprivs@localhost; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_0407.result b/mysql-test/suite/funcs_1/r/myisam_trig_0407.result index 4e578888fe5..ade033fa852 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_0407.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_0407.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; Testcase: 3.5: -------------- @@ -88,22 +89,22 @@ Use db_drop; create table t1 (f1 char(30)) engine=myisam; grant INSERT, SELECT on db_drop.t1 to test_general; Use db_drop; -Create trigger trg1 BEFORE INSERT on t1 +Create trigger trg1 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.1'; Use db_drop; Insert into t1 values ('Insert error 3.5.4.1'); -Select * from t1; +Select * from t1 order by f1; f1 Trigger 3.5.4.1 drop trigger trg1; select trigger_schema, trigger_name, event_object_table -from information_schema.triggers; +from information_schema.triggers order by trigger_name; trigger_schema trigger_name event_object_table Insert into t1 values ('Insert no trigger 3.5.4.1'); -Select * from t1; +Select * from t1 order by f1; f1 -Trigger 3.5.4.1 Insert no trigger 3.5.4.1 +Trigger 3.5.4.1 drop trigger trg1; drop database if exists db_drop; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; @@ -127,7 +128,7 @@ drop table if exists t1_433 ; drop table if exists t1_433a ; create table t1_433 (f1 char (30)) engine=myisam; create table t1_433a (f1a char (5)) engine=myisam; -CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row +CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row set new.f1 = 'Trigger 3.5.4.3'; Drop trigger t1.433.trg3; ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.trg3' at line 1 @@ -148,7 +149,7 @@ create database db_drop4; Use db_drop4; create table t1 (f1 char(30)) engine=myisam; grant INSERT, SELECT on db_drop4.t1 to test_general; -Create trigger trg4 BEFORE INSERT on t1 +Create trigger trg4 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.4'; Use db_drop4; Insert into t1 values ('Insert 3.5.4.4'); @@ -184,7 +185,7 @@ create database db_drop5; Use db_drop5; create table t1 (f1 char(50)) engine=myisam; grant INSERT, SELECT on t1 to test_general; -Create trigger trg5 BEFORE INSERT on t1 +Create trigger trg5 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.5'; Use db_drop5; Insert into t1 values ('Insert 3.5.4.5'); @@ -221,7 +222,7 @@ ERROR 42S02: Table 'test.t100' doesn't exist Testcase 3.5.5.2: ----------------- Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); -Create trigger trg2 before INSERT +Create trigger trg2 before INSERT on t1_temp for each row set new.f2=9999; ERROR HY000: Trigger's 't1_temp' is view or temporary table drop table t1_temp; @@ -229,7 +230,7 @@ drop table t1_temp; Testcase 3.5.5.3: ----------------- Create view vw3 as select f118 from tb3; -Create trigger trg3 before INSERT +Create trigger trg3 before INSERT on vw3 for each row set new.f118='s'; ERROR HY000: 'test.vw3' is not BASE TABLE drop view vw3; @@ -257,7 +258,7 @@ use dbtest_one; Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); Warnings: Warning 1265 Data truncated for column 'f1' at row 1 -Select * from dbtest_two.t2; +Select * from dbtest_two.t2 order by f1; f1 1st Insert 3.5. 2nd Insert 3.5. @@ -310,9 +311,9 @@ drop trigger tb3.trg4_2; Testcase 3.5.7.5 / 3.5.7.6: --------------------------- -Create trigger trg5_1 BEFORE INSERT +Create trigger trg5_1 BEFORE INSERT on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; -Create trigger trg5_2 BEFORE INSERT +Create trigger trg5_2 BEFORE INSERT on tb3 for each row set new.f122='Trigger2 3.5.7.5'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); @@ -330,9 +331,9 @@ delete from tb3 where f121='Test 3.5.7.5/6'; Testcase 3.5.7.7 / 3.5.7.8: --------------------------- set @test_var='Before trig 3.5.7.7'; -Create trigger trg6_1 AFTER INSERT +Create trigger trg6_1 AFTER INSERT on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; -Create trigger trg6_2 AFTER INSERT +Create trigger trg6_2 AFTER INSERT on tb3 for each row set @test_var='Trigger2 3.5.7.7'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -358,9 +359,9 @@ delete from tb3 where f121='Test 3.5.7.7/8'; Testcase 3.5.7.9/10: -------------------- -Create trigger trg7_1 BEFORE UPDATE +Create trigger trg7_1 BEFORE UPDATE on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; -Create trigger trg7_2 BEFORE UPDATE +Create trigger trg7_2 BEFORE UPDATE on tb3 for each row set new.f122='Trigger2 3.5.7.9'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); @@ -378,9 +379,9 @@ delete from tb3 where f121='Test 3.5.7.9/10'; Testcase 3.5.7.11/12: --------------------- set @test_var='Before trig 3.5.7.11'; -Create trigger trg8_1 AFTER UPDATE +Create trigger trg8_1 AFTER UPDATE on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; -Create trigger trg8_2 AFTER UPDATE +Create trigger trg8_2 AFTER UPDATE on tb3 for each row set @test_var='Trigger2 3.5.7.11'; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -408,9 +409,9 @@ delete from tb3 where f121='Test 3.5.7.11/12'; Testcase 3.5.7.13/14: --------------------- set @test_var=1; -Create trigger trg9_1 BEFORE DELETE +Create trigger trg9_1 BEFORE DELETE on tb3 for each row set @test_var=@test_var+1; -Create trigger trg9_2 BEFORE DELETE +Create trigger trg9_2 BEFORE DELETE on tb3 for each row set @test_var=@test_var+10; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' select @test_var; @@ -440,12 +441,12 @@ delete from tb3 where f121='Test 3.5.7.13/14'; Testcase 3.5.7.15/16: --------------------- set @test_var=1; -Create trigger trg_3_406010_1 AFTER DELETE +Create trigger trg_3_406010_1 AFTER DELETE on tb3 for each row set @test_var=@test_var+5; -Create trigger trg_3_406010_2 AFTER DELETE +Create trigger trg_3_406010_2 AFTER DELETE on tb3 for each row set @test_var=@test_var+50; ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' -Create trigger trg_3_406010_1 AFTER INSERT +Create trigger trg_3_406010_1 AFTER INSERT on tb3 for each row set @test_var=@test_var+1; ERROR HY000: Trigger already exists select @test_var; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_08.result b/mysql-test/suite/funcs_1/r/myisam_trig_08.result index bab8d0f2ddd..dcfa0aa7ddf 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_08.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_08.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; Testcase: 3.5: -------------- @@ -89,17 +90,17 @@ create database db_test; grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; grant LOCK TABLES on db_test.* to test_general; Use db_test; -create table t1_i ( +create table t1_i ( i120 char ascii not null DEFAULT b'101', i136 smallint zerofill not null DEFAULT 999, i144 int zerofill not null DEFAULT 99999, i163 decimal (63,30)) engine=myisam; -create table t1_u ( +create table t1_u ( u120 char ascii not null DEFAULT b'101', u136 smallint zerofill not null DEFAULT 999, u144 int zerofill not null DEFAULT 99999, u163 decimal (63,30)) engine=myisam; -create table t1_d ( +create table t1_d ( d120 char ascii not null DEFAULT b'101', d136 smallint zerofill not null DEFAULT 999, d144 int zerofill not null DEFAULT 99999, @@ -122,18 +123,18 @@ Insert into t1_d values ('f',222,99999,999.99); use test; Create trigger trg1 AFTER INSERT on tb3 for each row BEGIN -insert into db_test.t1_i +insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); -update db_test.t1_u +update db_test.t1_u set u144=new.f144, u163=new.f163 -where u136=new.f136; +where u136=new.f136; delete from db_test.t1_d where d136= new.f136; -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u -where u136= new.f136; +select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u +where u136= new.f136; END// Use test; set @test_var=0; -Insert into tb3 (f120, f122, f136, f144, f163) +Insert into tb3 (f120, f122, f136, f144, f163) values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; f120 f122 f136 f144 f163 @@ -161,14 +162,22 @@ select @test_var; 3.5.8.4 - single SQL - insert ----------------------------- Create trigger trg2 BEFORE UPDATE on tb3 for each row -insert into db_test.t1_i +BEGIN +insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); +END// +Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; +f120 f122 f136 f144 f163 +1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000 +select * from db_test.t1_i order by i120; +i120 i136 i144 i163 +1 00222 0000023456 1.050000000000000000000000000000 update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' where f122='Test 3.5.8.4'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_i; +select * from db_test.t1_i order by i120; i120 i136 i144 i163 1 00222 0000023456 1.050000000000000000000000000000 I 00222 0000023456 1.050000000000000000000000000000 @@ -177,7 +186,7 @@ I 00222 0000023456 1.050000000000000000000000000000 ----------------------------- drop trigger trg2; Create trigger trg3 BEFORE UPDATE on tb3 for each row -update db_test.t1_u +update db_test.t1_u set u120=new.f120 where u136=new.f136; update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' @@ -185,27 +194,27 @@ update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_u; +select * from db_test.t1_u order by u120; u120 u136 u144 u163 a 00111 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 c 00333 0000099999 999.990000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 -U 00222 0000023456 1.050000000000000000000000000000 f 00333 0000099999 999.990000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 +U 00222 0000023456 1.050000000000000000000000000000 3.5.8.3/4 - single SQL - delete ------------------------------- drop trigger trg3; Create trigger trg4 AFTER UPDATE on tb3 for each row delete from db_test.t1_d where d136= new.f136; -update tb3 set f120='D', f136=444, +update tb3 set f120='D', f136=444, f122='Test 3.5.8.4-Single Delete' where f122='Test 3.5.8.4-Single Update'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; f120 f122 f136 f144 f163 D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000 -select * from db_test.t1_d; +select * from db_test.t1_d order by d120; d120 d136 d144 d163 a 00111 0000099999 999.990000000000000000000000000000 c 00333 0000099999 999.990000000000000000000000000000 @@ -214,10 +223,10 @@ c 00333 0000099999 999.990000000000000000000000000000 ------------------------------- drop trigger trg4; Create trigger trg5 AFTER UPDATE on tb3 for each row -select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u +select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u where u136= new.f136; set @test_var=0; -update tb3 set f120='S', f136=111, +update tb3 set f120='S', f136=111, f122='Test 3.5.8.4-Single Select' where f122='Test 3.5.8.4-Single Delete'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; @@ -245,36 +254,36 @@ set @test_var='three', new.f120='4'; END IF; IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; -ELSE +ELSE set @test_var2='2nd else', new.f120='D'; END IF; END// set @test_var='Empty', @test_var2=0; Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 D Test 3.5.8.5-if 00101 one 2nd else Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 D Test 3.5.8.5-if 00101 two 2nd else D Test 3.5.8.5-if 00102 two 2nd else Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 +d Test 3.5.8.5-if 00010 three 2nd if D Test 3.5.8.5-if 00101 three 2nd if D Test 3.5.8.5-if 00102 three 2nd if -d Test 3.5.8.5-if 00010 three 2nd if Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); -select f120, f122, f136, @test_var, @test_var2 -from tb3 where f122 = 'Test 3.5.8.5-if'; +select f120, f122, f136, @test_var, @test_var2 +from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; f120 f122 f136 @test_var @test_var2 +d Test 3.5.8.5-if 00010 three 2nd else D Test 3.5.8.5-if 00101 three 2nd else D Test 3.5.8.5-if 00102 three 2nd else -d Test 3.5.8.5-if 00010 three 2nd else D Test 3.5.8.5-if 00103 three 2nd else create trigger trg3 before update on tb3 for each row BEGIN @@ -289,7 +298,7 @@ create trigger trg4 before update on tb3 for each row BEGIN IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; -ELSE +ELSE set @test_var2='2nd else', new.f120='D'; END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7 @@ -331,60 +340,60 @@ ELSE set @test_var=CONCAT(new.f120, '*', new.f144); END case; END// set @test_var='Empty'; -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('a', 'Test 3.5.8.5-case', 5, 7); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 A*seven -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('b', 'Test 3.5.8.5-case', 71,16); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 B*0000000016 B Test 3.5.8.5-case 00191 0000000016 B*0000000016 -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('c', 'Test 3.5.8.5-case', 80,1); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var A Test 3.5.8.5-case 00125 0000000007 C=one B Test 3.5.8.5-case 00191 0000000016 C=one C Test 3.5.8.5-case 00200 0000000001 C=one -Insert into tb3 (f120, f122, f136) +Insert into tb3 (f120, f122, f136) values ('d', 'Test 3.5.8.5-case', 152); Warnings: Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 A Test 3.5.8.5-case 00125 0000000007 1*0000099999 B Test 3.5.8.5-case 00191 0000000016 1*0000099999 C Test 3.5.8.5-case 00200 0000000001 1*0000099999 -1 Test 3.5.8.5-case 00152 0000099999 1*0000099999 -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('e', 'Test 3.5.8.5-case', 200, 8); Warnings: Warning 1265 Data truncated for column 'f120' at row 1 -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1=eight +1 Test 3.5.8.5-case 00200 0000000008 1=eight A Test 3.5.8.5-case 00125 0000000007 1=eight B Test 3.5.8.5-case 00191 0000000016 1=eight C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight -Insert into tb3 (f120, f122, f136, f144) +Insert into tb3 (f120, f122, f136, f144) values ('f', 'Test 3.5.8.5-case', 100, 8); -select f120, f122, f136, f144, @test_var -from tb3 where f122 = 'Test 3.5.8.5-case'; +select f120, f122, f136, f144, @test_var +from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; f120 f122 f136 f144 @test_var +1 Test 3.5.8.5-case 00152 0000099999 1=eight +1 Test 3.5.8.5-case 00200 0000000008 1=eight A Test 3.5.8.5-case 00125 0000000007 1=eight B Test 3.5.8.5-case 00191 0000000016 1=eight C Test 3.5.8.5-case 00200 0000000001 1=eight -1 Test 3.5.8.5-case 00152 0000099999 1=eight -1 Test 3.5.8.5-case 00200 0000000008 1=eight create trigger trg3a before update on tb3 for each row BEGIN CASE @@ -398,40 +407,40 @@ delete from tb3 where f121='Test 3.5.8.5-case'; Testcase 3.5.8.5-loop/leave: ---------------------------- Create trigger trg4 after insert on tb3 for each row -BEGIN +BEGIN set @counter=0, @flag='Initial'; -Label1: loop +Label1: loop if new.f136 new.f136 END REPEAT rp_label; END// set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) +Insert into tb3 (f122, f136) values ('Test 3.5.8.5-repeat', 13); select @counter1, @counter2; @counter1 @counter2 15 8 Create trigger trg6_2 after update on tb3 for each row BEGIN -REPEAT -SET @counter2 = @counter2 + 1; +REPEAT +SET @counter2 = @counter2 + 1; END// ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5 drop trigger trg6; @@ -466,33 +475,62 @@ delete from tb3 where f122='Test 3.5.8.5-repeat'; Testcase 3.5.8.5-while: ----------------------- Create trigger trg7 after insert on tb3 for each row -wl_label: WHILE @counter1 < new.f136 DO -SET @counter1 = @counter1 + 1; +wl_label: WHILE @counter1 < new.f136 DO +SET @counter1 = @counter1 + 1; IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; END IF; -SET @counter2 = @counter2 + 1; +SET @counter2 = @counter2 + 1; END WHILE wl_label// set @counter1= 0, @counter2= 0; -Insert into tb3 (f122, f136) +Insert into tb3 (f122, f136) values ('Test 3.5.8.5-while', 7); select @counter1, @counter2; @counter1 @counter2 7 4 Create trigger trg7_2 after update on tb3 for each row BEGIN -WHILE @counter1 < new.f136 -SET @counter1 = @counter1 + 1; +WHILE @counter1 < new.f136 +SET @counter1 = @counter1 + 1; END// -ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1; END' at line 4 delete from tb3 where f122='Test 3.5.8.5-while'; drop trigger trg7; Testcase 3.5.8.6: (requirement void) ------------------------------------ +CREATE PROCEDURE sp_01 () BEGIN set @v1=1; END// +CREATE TRIGGER trg8_1 BEFORE UPDATE ON tb3 FOR EACH ROW +BEGIN +CALL sp_01 (); +END// +Insert into tb3 (f120, f122, f136) values ('6', 'Test 3.5.8.6-insert', 101); +update tb3 set f120='S', f136=111, +f122='Test 3.5.8.6-tr8_1' + where f122='Test 3.5.8.6-insert'; +select f120, f122 +from tb3 where f122 like 'Test 3.5.8.6%' order by f120; +f120 f122 +S Test 3.5.8.6-tr8_1 +DROP TRIGGER trg8_1; +DROP PROCEDURE sp_01; -Testcase 3.5.8.7: (Disabled as a result of bug _____) ------------------------------------------------------ +Testcase 3.5.8.7 +---------------- +Create trigger trg9_1 before update on tb3 for each row +BEGIN +Start transaction; +Set new.f120='U'; +Commit; +END// +ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. +Create trigger trg9_2 before delete on tb3 for each row +BEGIN +Start transaction; +Set @var2=old.f120; +Rollback; +END// +ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger. drop user test_general@localhost; drop user test_general; drop user test_super@localhost; diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_09.result b/mysql-test/suite/funcs_1/r/myisam_trig_09.result index 7cbcd8a6862..3d89bc6d3c5 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_09.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_09.result @@ -1,74 +1,75 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; Testcase 3.5.9.1/2: ------------------- -Create trigger trg1 BEFORE UPDATE on tb3 for each row +Create trigger trg1 BEFORE UPDATE on tb3 for each row set new.f142 = 94087, @counter=@counter+1; TotalRows 10 @@ -80,15 +81,15 @@ NewValuew 0 set @counter=0; Update tb3 Set f142='1' where f130<100; -select count(*) as ExpectedChanged, @counter as TrigCounter +select count(*) as ExpectedChanged, @counter as TrigCounter from tb3 where f142=94087; ExpectedChanged TrigCounter 8 8 -select count(*) as ExpectedNotChange from tb3 +select count(*) as ExpectedNotChange from tb3 where f130<100 and f142<>94087; ExpectedNotChange 0 -select count(*) as NonExpectedChanged from tb3 +select count(*) as NonExpectedChanged from tb3 where f130>=130 and f142=94087; NonExpectedChanged 0 @@ -116,17 +117,17 @@ set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 0 0 0 0 0 -Insert into tb3 (f122, f136, f163) +Insert into tb3 (f122, f136, f163) values ('Test 3.5.9.3', 7, 123.17); Update tb3 Set f136=8 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; +select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; f118 f121 f122 f136 f163 a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 @@ -135,13 +136,13 @@ a NULL Test 3.5.9.3 7 123.170000000000000000000000000000 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 0 0 0 0 0 delete from tb3 where f122='Test 3.5.9.3'; -select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; +select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; f118 f121 f122 f136 f163 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163 a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163 a NULL Test 3.5.9.3 8 123.170000000000000000000000000000 @@ -172,17 +173,17 @@ set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, 0 0 0 0 0 0 @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 0 0 0 0 0 0 -Insert into tb3 (f122, f136, f151, f163) +Insert into tb3 (f122, f136, f151, f163) values ('Test 3.5.9.4', 7, DEFAULT, 995.24); -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4%'; +select f118, f121, f122, f136, f151, f163 from tb3 +where f122 like 'Test 3.5.9.4%' order by f163; f118 f121 f122 f136 f151 f163 a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000 -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000 @@ -194,15 +195,15 @@ Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; Warnings: Warning 1048 Column 'f136' cannot be null -select f118, f121, f122, f136, f151, f163 from tb3 -where f122 like 'Test 3.5.9.4-trig'; +select f118, f121, f122, f136, f151, f163 from tb3 +where f122 like 'Test 3.5.9.4-trig' order by f163; f118 f121 f122 f136 f151 f163 a NULL Test 3.5.9.4-trig 00000 999 NULL -select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, +select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; @tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163 a NULL Test 3.5.9.4-trig 0 999 NULL -select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, +select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; @tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163 a NULL Test 3.5.9.4-trig 0 999 NULL @@ -240,6 +241,7 @@ ERROR HY000: There is no NEW row in on DELETE trigger create trigger trg5b after DELETE on tb3 for each row set new.f122='test'; ERROR HY000: There is no NEW row in on DELETE trigger +drop trigger trg5a; drop trigger trg5b; Testcase 3.5.9.10: (implied in previous tests) diff --git a/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result index c991fb67ec1..fe8fdd29446 100644 --- a/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result +++ b/mysql-test/suite/funcs_1/r/myisam_trig_1011ext.result @@ -1,70 +1,71 @@ USE test; drop table if exists tb3 ; create table tb3 ( -f118 char not null DEFAULT 'a', -f119 char binary not null DEFAULT b'101', -f120 char ascii not null DEFAULT b'101', -f121 tinytext, -f122 text, -f123 mediumtext, -f124 longtext unicode, -f125 tinyblob, -f126 blob, -f127 mediumblob, -f128 longblob, -f129 binary not null DEFAULT b'101', -f130 tinyint not null DEFAULT 99, -f131 tinyint unsigned not null DEFAULT 99, -f132 tinyint zerofill not null DEFAULT 99, -f133 tinyint unsigned zerofill not null DEFAULT 99, -f134 smallint not null DEFAULT 999, -f135 smallint unsigned not null DEFAULT 999, -f136 smallint zerofill not null DEFAULT 999, -f137 smallint unsigned zerofill not null DEFAULT 999, -f138 mediumint not null DEFAULT 9999, -f139 mediumint unsigned not null DEFAULT 9999, -f140 mediumint zerofill not null DEFAULT 9999, -f141 mediumint unsigned zerofill not null DEFAULT 9999, -f142 int not null DEFAULT 99999, -f143 int unsigned not null DEFAULT 99999, -f144 int zerofill not null DEFAULT 99999, -f145 int unsigned zerofill not null DEFAULT 99999, -f146 bigint not null DEFAULT 999999, -f147 bigint unsigned not null DEFAULT 999999, -f148 bigint zerofill not null DEFAULT 999999, -f149 bigint unsigned zerofill not null DEFAULT 999999, -f150 decimal not null DEFAULT 999.999, -f151 decimal unsigned not null DEFAULT 999.17, -f152 decimal zerofill not null DEFAULT 999.999, -f153 decimal unsigned zerofill, -f154 decimal (0), -f155 decimal (64), -f156 decimal (0) unsigned, -f157 decimal (64) unsigned, -f158 decimal (0) zerofill, -f159 decimal (64) zerofill, -f160 decimal (0) unsigned zerofill, -f161 decimal (64) unsigned zerofill, -f162 decimal (0,0), -f163 decimal (63,30), -f164 decimal (0,0) unsigned, -f165 decimal (63,30) unsigned, -f166 decimal (0,0) zerofill, -f167 decimal (63,30) zerofill, -f168 decimal (0,0) unsigned zerofill, -f169 decimal (63,30) unsigned zerofill, -f170 numeric, -f171 numeric unsigned, -f172 numeric zerofill, -f173 numeric unsigned zerofill, -f174 numeric (0), -f175 numeric (64) +f118 char not null DEFAULT 'a', +f119 char binary not null DEFAULT b'101', +f120 char ascii not null DEFAULT b'101', +f121 tinytext, +f122 text, +f123 mediumtext, +f124 longtext unicode, +f125 tinyblob, +f126 blob, +f127 mediumblob, +f128 longblob, +f129 binary not null DEFAULT b'101', +f130 tinyint not null DEFAULT 99, +f131 tinyint unsigned not null DEFAULT 99, +f132 tinyint zerofill not null DEFAULT 99, +f133 tinyint unsigned zerofill not null DEFAULT 99, +f134 smallint not null DEFAULT 999, +f135 smallint unsigned not null DEFAULT 999, +f136 smallint zerofill not null DEFAULT 999, +f137 smallint unsigned zerofill not null DEFAULT 999, +f138 mediumint not null DEFAULT 9999, +f139 mediumint unsigned not null DEFAULT 9999, +f140 mediumint zerofill not null DEFAULT 9999, +f141 mediumint unsigned zerofill not null DEFAULT 9999, +f142 int not null DEFAULT 99999, +f143 int unsigned not null DEFAULT 99999, +f144 int zerofill not null DEFAULT 99999, +f145 int unsigned zerofill not null DEFAULT 99999, +f146 bigint not null DEFAULT 999999, +f147 bigint unsigned not null DEFAULT 999999, +f148 bigint zerofill not null DEFAULT 999999, +f149 bigint unsigned zerofill not null DEFAULT 999999, +f150 decimal not null DEFAULT 999.999, +f151 decimal unsigned not null DEFAULT 999.17, +f152 decimal zerofill not null DEFAULT 999.999, +f153 decimal unsigned zerofill, +f154 decimal (0), +f155 decimal (64), +f156 decimal (0) unsigned, +f157 decimal (64) unsigned, +f158 decimal (0) zerofill, +f159 decimal (64) zerofill, +f160 decimal (0) unsigned zerofill, +f161 decimal (64) unsigned zerofill, +f162 decimal (0,0), +f163 decimal (63,30), +f164 decimal (0,0) unsigned, +f165 decimal (63,30) unsigned, +f166 decimal (0,0) zerofill, +f167 decimal (63,30) zerofill, +f168 decimal (0,0) unsigned zerofill, +f169 decimal (63,30) unsigned zerofill, +f170 numeric, +f171 numeric unsigned, +f172 numeric zerofill, +f173 numeric unsigned zerofill, +f174 numeric (0), +f175 numeric (64) ) Engine = myisam; Warnings: Note 1265 Data truncated for column 'f150' at row 1 Note 1265 Data truncated for column 'f151' at row 1 Note 1265 Data truncated for column 'f152' at row 1 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb3.txt' into table tb3 ; +load data infile '/std_data_ln/funcs_1/myisam_tb3.txt' +into table tb3; Testcase 3.5.10.1/2/3: ---------------------- @@ -86,7 +87,7 @@ Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1); Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); Insert into vw11 (f122, f151) values ('Not in View', 3); select f121, f122, f151, f163 -from tb3 where f122 like 'Test 3.5.10.1/2/3%'; +from tb3 where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000 NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000 @@ -100,7 +101,7 @@ f121 f122 f151 f163 NULL Not in View 3 111.110000000000000000000000000000 Update vw11 set f163=1; select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; +where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000 Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 @@ -114,7 +115,7 @@ before delete 0 delete from vw11 where f151=1; select f121, f122, f151, f163 from tb3 -where f122 like 'Test 3.5.10.1/2/3%'; +where f122 like 'Test 3.5.10.1/2/3%' order by f151; f121 f122 f151 f163 Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000 select f121, f122, f151, f163 from vw11; @@ -141,11 +142,11 @@ set @counter= 0; select @counter as 'Rows Loaded Before'; Rows Loaded Before 0 -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; +load data infile '/std_data_ln/funcs_1/t9.txt' into table tb_load; select @counter as 'Rows Loaded After'; Rows Loaded After 10 -Select * from tb_load limit 10; +Select * from tb_load order by f1 limit 10; f1 f2 f3 -5000 a` 1000 -4999 aaa 999 @@ -240,7 +241,7 @@ insert into t3 (f1) values (new.f1+1000); create trigger tr2_4 after insert on t2_4 for each row insert into t3 (f1) values (new.f1+10000); insert into t1 values (1); -select * from t3; +select * from t3 order by f1; f1 12 102 @@ -275,17 +276,17 @@ create trigger tr4 after insert on t4 for each row insert into t1 (f1) values (new.f4+1); insert into t1 values (1); ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger. -select * from t1; +select * from t1 order by f1; f1 0 1 -select * from t2; +select * from t2 order by f2; f2 2 -select * from t3; +select * from t3 order by f3; f3 3 -select * from t4; +select * from t4 order by f4; f4 4 drop trigger tr1; @@ -297,8 +298,8 @@ drop table t2; drop table t3; drop table t4; -Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889) ----------------------------------------------------------------------- +Testcase y.y.y.4: Recursive trigger/SP references +------------------------------------------------- set @sql_mode='traditional'; create table t1_sp ( count integer, @@ -386,14 +387,14 @@ start transaction; insert into t1 values (1); ERROR 22003: Out of range value adjusted for column 'f4' at row 1 commit; -select * from t1; +select * from t1 order by f1; f1 1 1 -select * from t2; +select * from t2 order by f2; f2 2 -select * from t3; +select * from t3 order by f3; f3 3 drop trigger tr1; diff --git a/mysql-test/suite/funcs_1/r/myisam_views.result b/mysql-test/suite/funcs_1/r/myisam_views.result index a9c4d4c7f43..bde591c13bf 100644 --- a/mysql-test/suite/funcs_1/r/myisam_views.result +++ b/mysql-test/suite/funcs_1/r/myisam_views.result @@ -1,133 +1,135 @@ USE test; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/myisam_tb2.txt' +into table tb2; DROP DATABASE IF EXISTS test1; CREATE DATABASE test1; USE test1; drop table if exists tb2 ; create table tb2 ( -f59 numeric (0) unsigned, -f60 numeric (64) unsigned, -f61 numeric (0) zerofill, -f62 numeric (64) zerofill, -f63 numeric (0) unsigned zerofill, -f64 numeric (64) unsigned zerofill, -f65 numeric (0,0), -f66 numeric (63,30), -f67 numeric (0,0) unsigned, -f68 numeric (63,30) unsigned, -f69 numeric (0,0) zerofill, -f70 numeric (63,30) zerofill, -f71 numeric (0,0) unsigned zerofill, -f72 numeric (63,30) unsigned zerofill, -f73 real, -f74 real unsigned, -f75 real zerofill, -f76 real unsigned zerofill, -f77 double default 7.7, -f78 double unsigned default 7.7, -f79 double zerofill default 7.7, -f80 double unsigned zerofill default 8.8, -f81 float not null default 8.8, -f82 float unsigned not null default 8.8, -f83 float zerofill not null default 8.8, -f84 float unsigned zerofill not null default 8.8, -f85 float(0) not null default 8.8, -f86 float(23) not null default 8.8, -f87 float(0) unsigned not null default 8.8, -f88 float(23) unsigned not null default 8.8, -f89 float(0) zerofill not null default 8.8, -f90 float(23) zerofill not null default 8.8, -f91 float(0) unsigned zerofill not null default 8.8, -f92 float(23) unsigned zerofill not null default 8.8, -f93 float(24) not null default 8.8, -f94 float(53) not null default 8.8, -f95 float(24) unsigned not null default 8.8, -f96 float(53) unsigned not null default 8.8, -f97 float(24) zerofill not null default 8.8, -f98 float(53) zerofill not null default 8.8, -f99 float(24) unsigned zerofill not null default 8.8, -f100 float(53) unsigned zerofill not null default 8.8, -f101 date not null default '2000-01-01', -f102 time not null default 20, -f103 datetime not null default '2/2/2', -f104 timestamp not null default 20001231235959, -f105 year not null default 2000, -f106 year(3) not null default 2000, -f107 year(4) not null default 2000, -f108 enum("1enum","2enum") not null default "1enum", +f59 numeric (0) unsigned, +f60 numeric (64) unsigned, +f61 numeric (0) zerofill, +f62 numeric (64) zerofill, +f63 numeric (0) unsigned zerofill, +f64 numeric (64) unsigned zerofill, +f65 numeric (0,0), +f66 numeric (63,30), +f67 numeric (0,0) unsigned, +f68 numeric (63,30) unsigned, +f69 numeric (0,0) zerofill, +f70 numeric (63,30) zerofill, +f71 numeric (0,0) unsigned zerofill, +f72 numeric (63,30) unsigned zerofill, +f73 real, +f74 real unsigned, +f75 real zerofill, +f76 real unsigned zerofill, +f77 double default 7.7, +f78 double unsigned default 7.7, +f79 double zerofill default 7.7, +f80 double unsigned zerofill default 8.8, +f81 float not null default 8.8, +f82 float unsigned not null default 8.8, +f83 float zerofill not null default 8.8, +f84 float unsigned zerofill not null default 8.8, +f85 float(0) not null default 8.8, +f86 float(23) not null default 8.8, +f87 float(0) unsigned not null default 8.8, +f88 float(23) unsigned not null default 8.8, +f89 float(0) zerofill not null default 8.8, +f90 float(23) zerofill not null default 8.8, +f91 float(0) unsigned zerofill not null default 8.8, +f92 float(23) unsigned zerofill not null default 8.8, +f93 float(24) not null default 8.8, +f94 float(53) not null default 8.8, +f95 float(24) unsigned not null default 8.8, +f96 float(53) unsigned not null default 8.8, +f97 float(24) zerofill not null default 8.8, +f98 float(53) zerofill not null default 8.8, +f99 float(24) unsigned zerofill not null default 8.8, +f100 float(53) unsigned zerofill not null default 8.8, +f101 date not null default '2000-01-01', +f102 time not null default 20, +f103 datetime not null default '2/2/2', +f104 timestamp not null default 20001231235959, +f105 year not null default 2000, +f106 year(3) not null default 2000, +f107 year(4) not null default 2000, +f108 enum("1enum","2enum") not null default "1enum", f109 set("1set","2set") not null default "1set", -f110 VARBINARY(64) null, -f111 VARBINARY(27) null , -f112 VARBINARY(64) null , -f113 VARBINARY(192) null , -f114 VARBINARY(192) , -f115 VARBINARY(27) null , -f116 VARBINARY(64) null, -f117 VARBINARY(192) null +f110 VARBINARY(64) null, +f111 VARBINARY(27) null , +f112 VARBINARY(64) null , +f113 VARBINARY(192) null , +f114 VARBINARY(192) , +f115 VARBINARY(27) null , +f116 VARBINARY(64) null, +f117 VARBINARY(192) null ) engine = myisam; -load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/myisam_tb2.txt' into table tb2 ; +load data infile '/std_data_ln/funcs_1/myisam_tb2.txt' +into table tb2; USE test; Attention: The nesting level @max_level in Testcase 3.3.1.A6 diff --git a/mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc b/mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc index 493c4373d20..bd41f2dcb16 100644 --- a/mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc +++ b/mysql-test/suite/funcs_1/storedproc/cleanup_sp_tb.inc @@ -1,5 +1,6 @@ -let $message= --source suite/funcs_1/storedproc/cleanup_sp_tb.inc; ---source include/show_msg80.inc +--echo +--echo --source suite/funcs_1/storedproc/cleanup_sp_tb.inc +--echo -------------------------------------------------------------------------------- # called both to cleanup possibly existing data before and after the SP tests diff --git a/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc index b7f7b2cae02..5224860925c 100644 --- a/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc +++ b/mysql-test/suite/funcs_1/storedproc/load_sp_tb.inc @@ -1,11 +1,12 @@ -let $message= --source suite/funcs_1/storedproc/load_sp_tb.inc; ---source include/show_msg80.inc +--echo +--echo --source suite/funcs_1/storedproc/load_sp_tb.inc +--echo -------------------------------------------------------------------------------- # ============================================================================== # -# this load script can be called multiple times inside a test script because it +# This load script can be called multiple times inside a test script because it # first cleans up all objects that will be created. -# therefore the same script is used as it will be used at the end of a test. +# Therefore the same script is used as it will be used at the end of a test. # # ============================================================================== @@ -20,46 +21,84 @@ CREATE DATABASE db_storedproc_1; USE db_storedproc; -eval create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t1; +--replace_result $engine_type +eval +create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' into table t1; -eval create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t2; +--replace_result $engine_type +eval +create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' into table t2; -eval create table t3(f1 char(20),f2 char(20),f3 integer) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t3.txt' into table t3; +--replace_result $engine_type +eval +create table t3(f1 char(20),f2 char(20),f3 integer) engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t3.txt' into table t3; -eval create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t4; +--replace_result $engine_type +eval +create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' into table t4; USE db_storedproc_1; -eval create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t6; +--replace_result $engine_type +eval +create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' into table t6; USE db_storedproc; -eval create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t7; +--replace_result $engine_type +eval +create table t7 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t7.txt' into table t7; -eval create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t7.txt' into table t8; +--replace_result $engine_type +eval +create table t8 (f1 char(20), f2 char(25), f3 date, f4 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t7.txt' into table t8; -eval create table t9(f1 int, f2 char(25), f3 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table t9; +--replace_result $engine_type +eval +create table t9(f1 int, f2 char(25), f3 int) engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t9.txt' into table t9; -eval create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t10; +--replace_result $engine_type +eval +create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' into table t10; -eval create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) engine = $engine_type; ---replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR -eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11; +--replace_result $engine_type +eval +create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int) +engine = $engine_type; +--replace_result $MYSQLTEST_VARDIR +eval +load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t4.txt' into table t11; diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc index a8d52fee0b5..0f62a559985 100644 --- a/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc +++ b/mysql-test/suite/funcs_1/storedproc/storedproc_02.inc @@ -5,85 +5,192 @@ # ============================================================================== # (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00) # -# 3.1.2 Syntax checks for the stored procedure-specific programming statements BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE: +# 3.1.2 Syntax checks for the stored procedure-specific programming statements +# BEGIN/END, DECLARE, SET, SELECT/INTO, OPEN, FETCH, CLOSE: # #- 1. Ensure that all subclauses that should be supported are supported. -#- 2. Ensure that all subclauses that should not be supported are disallowed with an appropriate error message. -#- 3. Ensure that all supported subclauses are supported only in the correct order. -#- 4. Ensure that an appropriate error message is returned if a subclause is out-of-order in a stored procedure definition. -#- 5. Ensure that all subclauses that are defined to be mandatory are indeed required to be mandatory by the MySQL server and tools. -#- 6. Ensure that any subclauses that are defined to be optional are indeed treated as optional by the MySQL server and tools. -#- 7. Ensure that every BEGIN statement is coupled with a terminating END statement. -## 8. Ensure that the scope of each BEGIN/END compound statement within a stored procedure definition is properly applied. -#- 9. Ensure that the labels enclosing each BEGIN/END compound statement must match. -#- 10. Ensure that it is possible to put a beginning label at the start of a BEGIN/END compound statement without also requiring an ending label at the end of the same statement. -#- 11. Ensure that it is not possible to put an ending label at the end of a BEGIN/END compound statement without also requiring a matching beginning label at the start of the same statement. +#- 2. Ensure that all subclauses that should not be supported are disallowed +# with an appropriate error message. +#- 3. Ensure that all supported subclauses are supported only in the +# correct order. +#- 4. Ensure that an appropriate error message is returned if a subclause is +# out-of-order in a stored procedure definition. +#- 5. Ensure that all subclauses that are defined to be mandatory are indeed +# required to be mandatory by the MySQL server and tools. +#- 6. Ensure that any subclauses that are defined to be optional are indeed +# treated as optional by the MySQL server and tools. +#- 7. Ensure that every BEGIN statement is coupled with a terminating +# END statement. +## 8. Ensure that the scope of each BEGIN/END compound statement within a +# stored procedure definition is properly applied. +#- 9. Ensure that the labels enclosing each BEGIN/END compound statement +# must match. +#- 10. Ensure that it is possible to put a beginning label at the start of +# a BEGIN/END compound statement without also requiring an ending label +# at the end of the same statement. +#- 11. Ensure that it is not possible to put an ending label at the end of +# a BEGIN/END compound statement without also requiring a matching +# beginning label at the start of the same statement. #- 12. Ensure that every beginning label must end with a colon (:). #- 13. Ensure that every beginning label with the same scope must be unique. -#- 14. Ensure that the variables, cursors, conditions, and handlers declared for a stored procedure (with the DECLARE statement) may only be properly defined. -#- 15. Ensure that the variables, cursors, conditions, and handlers declared for a stored procedure (with the DECLARE statement) may only be defined in the correct order. -#- 16. Ensure that every possible type of variable -- utilizing every data type definition supported by the MySQL server in combination with both no DEFAULT subclause and with DEFAULT subclauses that set the variables default value to a range of appropriate values -- may be declared for a stored procedure. -#- 17. Ensure that the DECLARE statement can declare multiple variables both separately and all at once from a variable list. -#- 18. Ensure that invalid variable declarations are rejected, with an appropriate error message. -#- 19. Ensure that every possible type of cursor may be declared for a stored procedure. -#- 20. Ensure that invalid cursor declarations are rejected, with an appropriate error message. -#- 21. Ensure that every possible type of condition may be declared for a stored procedure. -# -22. Ensure that invalid condition declarations are rejected, with an appropriate error message. -#- 23. Ensure that every possible type of handler may be declared for a stored procedure. -#- 24. Ensure that invalid handler declarations are rejected, with an appropriate error message. -#- 25. Ensure that the scope of every variable, cursor, condition, and handler declared for a stored procedure (with the DECLARE statement) is properly applied. -## 26. Ensure that the initial value of every variable declared for a stored procedure is either NULL or its DEFAULT value, as appropriate. -#- 27. Ensure that the SET statement can assign a value to every local variable declared within a stored procedures definition, as well as to every appropriate global server variable. -#- 28. Ensure that the SET statement can assign values to variables either separately or to multiple variables in a list. -#- 29. Ensure that the SET statement may assign only those values to a variable that are appropriate for that variables data type definition. -## 30. Ensure that, when a stored procedure is called/executed, every variable always uses the correct value: either the value with which it is initialized or the value to which it is subsequently SET or otherwise assigned, as appropriate. -## 31. Ensure that the SELECT ... INTO statement properly assigns values to the variables in its variable list. -## 32. Ensure that a SELECT ... INTO statement that retrieves multiple rows is rejected, with an appropriate error message. -## 33. Ensure that a SELECT ... INTO statement that retrieves too many columns for the number of variables in its variable list is rejected, with an appropriate error message. -## 34. Ensure that a SELECT ... INTO statement that retrieves too few columns for the number of variables in its variable list is rejected, with an appropriate error message. -#- 35. Ensure that a SELECT ... INTO statement that retrieves column values with inappropriate data types for the matching variables in its variable list is rejected, with an appropriate error message. -#- 36. Ensure that the DECLARE ... CONDITION FOR statement can declare a properly-named condition for every possible SQLSTATE and MySQL-specific error code. -#- 37. Ensure that no two conditions declared with the same scope may have the same condition name. +#- 14. Ensure that the variables, cursors, conditions, and handlers declared +# for a stored procedure (with the DECLARE statement) may only be +# properly defined. +#- 15. Ensure that the variables, cursors, conditions, and handlers declared for +# a stored procedure (with the DECLARE statement) may only be defined in +# the correct order. +#- 16. Ensure that every possible type of variable -- utilizing every data type +# definition supported by the MySQL server in combination with both no +# DEFAULT subclause and with DEFAULT subclauses that set the variable’s +# default value to a range of appropriate values -- may be declared for +# a stored procedure. +#- 17. Ensure that the DECLARE statement can declare multiple variables both +# separately and all at once from a variable list. +#- 18. Ensure that invalid variable declarations are rejected, with an +# appropriate error message. +#- 19. Ensure that every possible type of cursor may be declared for a +# stored procedure. +#- 20. Ensure that invalid cursor declarations are rejected, with an appropriate +# error message. +#- 21. Ensure that every possible type of condition may be declared for +# a stored procedure. +# -22. Ensure that invalid condition declarations are rejected, with an +# appropriate error message. +#- 23. Ensure that every possible type of handler may be declared for a +# stored procedure. +#- 24. Ensure that invalid handler declarations are rejected, with an +# appropriate error message. +#- 25. Ensure that the scope of every variable, cursor, condition, and handler +# declared for a stored procedure (with the DECLARE statement) is +# properly applied. +## 26. Ensure that the initial value of every variable declared for a stored +# procedure is either NULL or its DEFAULT value, as appropriate. +#- 27. Ensure that the SET statement can assign a value to every local variable +# declared within a stored procedure’s definition, as well as to every +# appropriate global server variable. +#- 28. Ensure that the SET statement can assign values to variables either +# separately or to multiple variables in a list. +#- 29. Ensure that the SET statement may assign only those values to a variable +# that are appropriate for that variable’s data type definition. +## 30. Ensure that, when a stored procedure is called/executed, every variable +# always uses the correct value: either the value with which it is +# initialized or the value to which it is subsequently SET or otherwise +# assigned, as appropriate. +## 31. Ensure that the SELECT ... INTO statement properly assigns values to the +# variables in its variable list. +## 32. Ensure that a SELECT ... INTO statement that retrieves multiple rows is +# rejected, with an appropriate error message. +## 33. Ensure that a SELECT ... INTO statement that retrieves too many columns +# for the number of variables in its variable list is rejected, with an +# appropriate error message. +## 34. Ensure that a SELECT ... INTO statement that retrieves too few columns +# for the number of variables in its variable list is rejected, with an +# appropriate error message. +#- 35. Ensure that a SELECT ... INTO statement that retrieves column values +# with inappropriate data types for the matching variables in its variable +# list is rejected, with an appropriate error message. +#- 36. Ensure that the DECLARE ... CONDITION FOR statement can declare a +# properly-named condition for every possible SQLSTATE and MySQL-specific +# error code. +#- 37. Ensure that no two conditions declared with the same scope may have the +# same condition name. ## 38. Ensure that the scope of every condition declared is properly applied. -#- 39. Ensure that every SQLSTATE value declared with a DECLARE ... CONDITION FOR statement is a character string that is 5 characters long. -#- 40. Ensure that the DECLARE ... CONDITION FOR statement cannot declare a condition for an invalid SQLSTATE. -#- 41. Ensure that the DECLARE ... CONDITION FOR statement cannot declare a condition for the successful completion SQLSTATE: 00000. -#- 42. Ensure that the DECLARE ... HANDLER FOR statement can declare a CONTINUE, EXIT, and UNDO handler for every condition declared (with a DECLARE ... CONDITION FOR statement), within the scope of the handler, for a stored procedure, as well as for every possible SQLSTATE and MySQL-specific error code, as well as for the predefined conditions SQLWARNING, NOT FOUND, and SQLEXCEPTION. -## 43. Ensure that the DECLARE ... HANDLER FOR statement can not declare any handler for a condition declared outside of the scope of the handler. -## 44. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a handler for any invalid, or undeclared, condition. +#- 39. Ensure that every SQLSTATE value declared with a DECLARE ... CONDITION +# FOR statement is a character string that is 5 characters long. +#- 40. Ensure that the DECLARE ... CONDITION FOR statement cannot declare a +# condition for an invalid SQLSTATE. +#- 41. Ensure that the DECLARE ... CONDITION FOR statement cannot declare a +# condition for the “successful completion SQLSTATE: “00000“. +#- 42. Ensure that the DECLARE ... HANDLER FOR statement can declare a CONTINUE, +# EXIT, and UNDO handler for every condition declared (with a DECLARE ... +# CONDITION FOR statement), within the scope of the handler, for a stored +# procedure, as well as for every possible SQLSTATE and MySQL-specific +# error code, as well as for the predefined conditions SQLWARNING, +# NOT FOUND, and SQLEXCEPTION. +## 43. Ensure that the DECLARE ... HANDLER FOR statement can not declare any +# handler for a condition declared outside of the scope of the handler. +## 44. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a +# handler for any invalid, or undeclared, condition. ## 45. Ensure that the scope of every handler declared is properly applied. -#- 46. Ensure that, within the same scope, no two handlers may be declared for the same condition. -#- 47. Ensure that every SQLSTATE value declared with a DECLARE ... HANDLER FOR statement is a character string that is 5 characters long. -#- 48. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a condition for an invalid SQLSTATE. -#- 49. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a condition for the successful completion SQLSTATE: 00000. -## 50. Ensure that a CONTINUE handler allows the execution of the stored procedure to continue once the handler statement has completed its own execution (that is, once the handler action statement has been executed). -## 51. Ensure that an EXIT handler causes the execution of the stored procedure to terminate, within its scope, once the handler action statement has been executed. -## 52. Ensure that an EXIT handler does not cause the execution of the stored procedure to terminate outside of its scope. -#- 53. Ensure that a handler condition of SQLWARNING takes the same action as a handler condition defined with an SQLSTATE that begins with 01. -## 54. Ensure that a handler with a condition defined with an SQLSTATE that begins with 01 is always exactly equivalent in action to a handler with an SQLWARNING condition. -#- 55. Ensure that a handler condition of NOT FOUND takes the same action as a handler condition defined with an SQLSTATE that begins with 02. -## 56. Ensure that a handler with a condition defined with an SQLSTATE that begins with 02 is always exactly equivalent in action to a handler with a NOT FOUND condition. -#- 57. Ensure that a handler condition of SQLEXCEPTION takes the same action as a handler condition defined with an SQLSTATE that begins with anything other that 01 or 02. -## 58. Ensure that a handler with a condition defined with an SQLSTATE that begins with anything other that 01 or 02 is always exactly equivalent in action to a handler with an SQLEXCEPTION condition. +#- 46. Ensure that, within the same scope, no two handlers may be declared for +# the same condition. +#- 47. Ensure that every SQLSTATE value declared with a DECLARE ... HANDLER FOR +# statement is a character string that is 5 characters long. +#- 48. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a +# condition for an invalid SQLSTATE. +#- 49. Ensure that the DECLARE ... HANDLER FOR statement cannot declare a +# condition for the “successful completion SQLSTATE: “00000“. +## 50. Ensure that a CONTINUE handler allows the execution of the stored +# procedure to continue once the handler statement has completed its +# own execution (that is, once the handler action statement has been +# executed). +## 51. Ensure that an EXIT handler causes the execution of the stored procedure +# to terminate, within its scope, once the handler action statement has +# been executed. +## 52. Ensure that an EXIT handler does not cause the execution of the stored +# procedure to terminate outside of its scope. +#- 53. Ensure that a handler condition of SQLWARNING takes the same action as +# a handler condition defined with an SQLSTATE that begins with “01“. +## 54. Ensure that a handler with a condition defined with an SQLSTATE that +# begins with “01“ is always exactly equivalent in action to a +# handler with an SQLWARNING condition. +#- 55. Ensure that a handler condition of NOT FOUND takes the same action as a +# handler condition defined with an SQLSTATE that begins with “02“. +## 56. Ensure that a handler with a condition defined with an SQLSTATE that +# begins with “02“ is always exactly equivalent in action to a +# handler with a NOT FOUND condition. +#- 57. Ensure that a handler condition of SQLEXCEPTION takes the same action +# as a handler condition defined with an SQLSTATE that begins with +# anything other that “01“ or “02“. +## 58. Ensure that a handler with a condition defined with an SQLSTATE that +# begins with anything other that “01“ or “02“ is always +# exactly equivalent in action to a handler with an SQLEXCEPTION condition. #- 59. Ensure that no two cursors in a stored procedure can have the same name. -#- 60. Ensure that a cursor declaration may not include a SELECT ... INTO statement. -#- 61. Ensure that a cursor declaration that includes an ORDER BY clause may not be an updatable cursor. -#- 62. Ensure that OPEN fails unless a cursor with the same name has already been declared. -#- 63. Ensure that OPEN fails if the same cursor is currently already open. -#- 64. Ensure that FETCH fails unless a cursor with the same name is already open. -## 65. Ensure that FETCH returns the first row of the cursors result set the first time FETCH is executed, that it returns each subsequent row of the cursors result set each of the subsequent times FETCH is executed, and that it returns a NOT FOUND warning if it is executed after the last row of the cursors result set has already been fetched. -#- 66. Ensure that FETCH fails with an appropriate error message if it is executed before the cursor has been opened. -#- 67. Ensure that FETCH fails with an appropriate error message if it is executed after the cursor has been closed. -## 68. Ensure that FETCH fails with an appropriate error message if the number of columns to be fetched does not match the number of variables specified by the FETCH statement. -#- 69. Ensure that FETCH fails with an appropriate error message if the data type of the column values being fetched are not appropriate for the matching FETCH variables to which the data is being assigned. -#- 70. Ensure that CLOSE fails unless a cursor with the same name is already open. -#- 71. Ensure that all cursors are closed when a transaction terminates with a COMMIT statement. -#- 72. Ensure that all cursors are closed when a transaction terminates with a ROLLBACK statement. -#- 73. Ensure that the result set of a cursor that has been closed is not longer available to the FETCH statement. -#- 74. Ensure that every cursor declared within a compound statement is closed when that compound statement ends. -## 75. Ensure that, for nested compound statements, a cursor that was declared and opened during an outer level of the statement is not closed when an inner level of a compound statement ends. -## 76. Ensure that all cursors operate asensitively, so that there is no concurrency conflict between cursors operating on the same, or similar, sets of results during execution of one or more stored procedures. -# 77. Ensure that multiple cursors, nested within multiple compound statements within a stored procedure, always act correctly and return the expected result. +#- 60. Ensure that a cursor declaration may not include a SELECT ... INTO +# statement. +#- 61. Ensure that a cursor declaration that includes an ORDER BY clause may +# not be an updatable cursor. +#- 62. Ensure that OPEN fails unless a cursor with the same name +# has already been declared. +#- 63. Ensure that OPEN fails if the same cursor is currently +# already open. +#- 64. Ensure that FETCH fails unless a cursor with the same name +# is already open. +## 65. Ensure that FETCH returns the first row of the cursor’s +# result set the first time FETCH is executed, that it returns each +# subsequent row of the cursor’s result set each of the subsequent +# times FETCH is executed, and that it returns a NOT FOUND warning if it +# is executed after the last row of the cursor’s result set has already +# been fetched. +#- 66. Ensure that FETCH fails with an appropriate error message +# if it is executed before the cursor has been opened. +#- 67. Ensure that FETCH fails with an appropriate error message +# if it is executed after the cursor has been closed. +## 68. Ensure that FETCH fails with an appropriate error message +# if the number of columns to be fetched does not match the number of +# variables specified by the FETCH statement. +#- 69. Ensure that FETCH fails with an appropriate error message +# if the data type of the column values being fetched are not appropriate +# for the matching FETCH variables to which the data is being assigned. +#- 70. Ensure that CLOSE fails unless a cursor with the same name +# is already open. +#- 71. Ensure that all cursors are closed when a transaction terminates with +# a COMMIT statement. +#- 72. Ensure that all cursors are closed when a transaction terminates with +# a ROLLBACK statement. +#- 73. Ensure that the result set of a cursor that has been closed is not +# longer available to the FETCH statement. +#- 74. Ensure that every cursor declared within a compound statement is closed +# when that compound statement ends. +## 75. Ensure that, for nested compound statements, a cursor that was declared +# and opened during an outer level of the statement is not closed when an +# inner level of a compound statement ends. +## 76. Ensure that all cursors operate asensitively, so that there is no +# concurrency conflict between cursors operating on the same, or similar, +# sets of results during execution of one or more stored procedures. +# 77. Ensure that multiple cursors, nested within multiple compound statements +# within a stored procedure, always act correctly and return the +# expected result. # # ============================================================================== let $message= Section 3.1.2 - Syntax checks for the stored procedure-specific @@ -209,7 +316,7 @@ BEGIN set @x = x; set @y = y; set @z = 234; - SELECT f1, f2 into @x, @y from t2 limit 1; + SELECT f1, f2 into @x, @y from t2 where f1='a`' and f2='a`' limit 1; SELECT @x, @y, @z, invar; BEGIN set @x = 2; @@ -257,7 +364,7 @@ BEGIN declare x integer; declare y integer; set @x=x; set @y=y; - SELECT f4, f3 into @x, @y from t2 limit 1; + SELECT f4, f3 into @x, @y from t2 where f4=-5000 and f3='1000-01-01' limit 1; SELECT @x, @y; END// delimiter ;// @@ -290,8 +397,9 @@ BEGIN END// delimiter ;// -#Error: 1172 SQLSTATE: 42000 (ER_TOO_MANY_ROWS) Message: Result consisted of more than one row ---error 1172 +# Error: SQLSTATE: 42000 (ER_TOO_MANY_ROWS) +# Message: Result consisted of more than one row +--error ER_TOO_MANY_ROWS CALL sp1(); # cleanup 3.1.2.32 @@ -321,7 +429,7 @@ BEGIN END// delimiter ;// ---error 1222 +--error ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT CALL sp1(); # cleanup 3.1.2.33 @@ -352,7 +460,7 @@ BEGIN END// delimiter ;// ---error 1222 +--error ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT CALL sp1(); # cleanup 3.1.2.34 @@ -375,8 +483,10 @@ create table res_t1(w char unique, x char); insert into res_t1 values('a', 'b'); -# Error: 1339 SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND) Message: Case not found for CASE statement -# Error: 1022 SQLSTATE: 23000 (ER_DUP_KEY) Message: Can't write; duplicate key in table '%s' +# Error: SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND) +# Message: Case not found for CASE statement +# Error: SQLSTATE: 23000 (ER_DUP_KEY) +# Message: Can't write; duplicate key in table '%s' delimiter //; CREATE PROCEDURE h1 () @@ -472,7 +582,7 @@ create table res_t1(w char unique, x char); insert into res_t1 values ('a', 'b'); delimiter //; ---error 1319 +--error ER_SP_COND_MISMATCH CREATE PROCEDURE h1 () BEGIN declare x1, x2, x3, x4, x5, x6 int default 0; @@ -561,8 +671,9 @@ DROP PROCEDURE IF EXISTS h1; --enable_warnings delimiter //; -#Error: 1319 SQLSTATE: 42000 (ER_SP_COND_MISMATCH) Message: Undefined CONDITION: %s ---error 1319 +# Error: SQLSTATE: 42000 (ER_SP_COND_MISMATCH) +# Message: Undefined CONDITION: %s +--error ER_SP_COND_MISMATCH CREATE PROCEDURE h1 () BEGIN declare x1, x2, x3, x4, x5, x6 int default 0; @@ -582,8 +693,9 @@ BEGIN END; END// -#Error: 1064 SQLSTATE: 42000 (ER_PARSE_ERROR) Message: %s near '%s' at line %d ---error 1064 +# Error: SQLSTATE: 42000 (ER_PARSE_ERROR) +# Message: %s near '%s' at line %d +--error ER_PARSE_ERROR CREATE PROCEDURE h1 () BEGIN DECLARE x1 INT DEFAULT 0; @@ -593,8 +705,9 @@ BEGIN DECLARE CONTINUE HANDLER FOR condname1 SET x1 = 1; END// -#Error: 1407 SQLSTATE: 42000 (ER_SP_BAD_SQLSTATE) Message: Bad SQLSTATE: '%s' ---error 1407 +# Error: SQLSTATE: 42000 (ER_SP_BAD_SQLSTATE) +# Message: Bad SQLSTATE: '%s' +--error ER_SP_BAD_SQLSTATE CREATE PROCEDURE h1 () BEGIN DECLARE x1 INT DEFAULT 0; @@ -632,7 +745,7 @@ drop table IF EXISTS res_t1; --echo ==> 'UNDO' is still not supported. delimiter //; ---error 1064 +--error ER_PARSE_ERROR create procedure p1undo () begin declare undo handler for sqlexception select '1'; @@ -723,7 +836,7 @@ DROP TABLE res_t1; let $message= Testcase 3.1.2.50:; --source include/show_msg.inc -# testcase: ensure that a continue handler allows the execution of the stored procedure +# Testcase: Ensure that a continue handler allows the execution of the stored procedure # to continue once the handler statement has completed its own execution # (that is, once the handler action statement has been executed). @@ -794,8 +907,9 @@ BEGIN END// delimiter ;// -# Error: 1318 SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS) Message: Incorrect number of arguments for %s %s; expected %u, got %u ---error 1318 +# Error: SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS) +# Message: Incorrect number of arguments for %s %s; expected %u, got %u +--error ER_SP_WRONG_NO_OF_ARGS CALL sp1(1); CALL sp2(); SELECT '-3-', @x2, @x; @@ -858,7 +972,7 @@ let $message= Testcase 3.1.2.54:; --source include/show_msg.inc let $message= Ensure that a handler with a condition defined with an SQLSTATE that begins with -01 is always exactly equivalent in action to a handler with an SQLWARNING +“01“ is always exactly equivalent in action to a handler with an SQLWARNING condition.; --source include/show_msg80.inc @@ -959,7 +1073,7 @@ let $message= Testcase 3.1.2.56:; --source include/show_msg.inc let $message= Ensure that a handler with a condition defined with an SQLSTATE that begins with -02 is always exactly equivalent in action to a handler with a NOT FOUND +“02“ is always exactly equivalent in action to a handler with a NOT FOUND condition.; --source include/show_msg80.inc @@ -1052,7 +1166,7 @@ BEGIN END// delimiter ;// ---error 1329 +--error ER_SP_FETCH_NO_DATA CALL sp0(); SELECT @done, @x; @@ -1081,13 +1195,16 @@ let $message= Testcase 3.1.2.58:; --source include/show_msg.inc let $message= Ensure that a handler with a condition defined with an SQLSTATE that begins with -anything other that 01 or 02 is always exactly equivalent in action to a +anything other that “01“ or “02“ is always exactly equivalent in action to a handler with an SQLEXCEPTION condition.; --source include/show_msg80.inc -# Error: 1339 SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND) Message: Case not found for CASE statement -# Error: 1222 SQLSTATE: 21000 (ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT) Message: The used SELECT statements have a different number of columns -# Error: 1326 SQLSTATE: 24000 (ER_SP_CURSOR_NOT_OPEN) Message: Cursor is not open +# Error: SQLSTATE: 20000 (ER_SP_CASE_NOT_FOUND) +# Message: Case not found for CASE statement +# Error: SQLSTATE: 21000 (ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT) +# Message: The used SELECT statements have a different number of columns +# Error: SQLSTATE: 24000 (ER_SP_CURSOR_NOT_OPEN) +# Message: Cursor is not open --disable_warnings DROP PROCEDURE IF EXISTS sp0; @@ -1271,7 +1388,8 @@ BEGIN declare f5_value char(20); declare f4_value integer; declare f6_value integer; - declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 limit 3; + declare cur1 cursor for SELECT f1, f2, f4, f5, f6 from t2 + where f4 >=-5000 order by f4 limit 3; open cur1; while proceed do SELECT count AS 'loop'; @@ -1282,7 +1400,7 @@ BEGIN END// delimiter ;// ---error 1329 +--error ER_SP_FETCH_NO_DATA CALL sp1(); SELECT * FROM temp; @@ -1338,11 +1456,11 @@ END// delimiter ;// --echo --> not enough columns in FETCH statement ---error 1328 +--error ER_SP_WRONG_NO_OF_FETCH_ARGS CALL sp1(); --echo --> too many columns in FETCH statement ---error 1328 +--error ER_SP_WRONG_NO_OF_FETCH_ARGS CALL sp2(); # cleanup 3.1.2.68 @@ -1366,9 +1484,10 @@ DROP PROCEDURE IF EXISTS sp1; create table temp1( f0 char(20), f1 char(20), f2 char(20), f3 int, f4 char(20) ); -#Error: 1329 SQLSTATE: 02000 (ER_SP_FETCH_NO_DATA) Message: No data to FETCH +# Error: SQLSTATE: 02000 (ER_SP_FETCH_NO_DATA) +# Message: No data to FETCH -SELECT f1, f2, f4, f5 from t2; +SELECT f1, f2, f4, f5 from t2 order by f4; delimiter //; CREATE PROCEDURE sp1( ) @@ -1379,8 +1498,8 @@ BEGIN declare newf2 char(20); declare newf5 char(20); declare newf4 integer; - declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; - declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 limit 5; + declare cur1 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; + declare cur2 cursor for SELECT f1, f2, f4, f5 from t2 where f4 >= -5000 order by f4 limit 5; open cur1; open cur2; BEGIN @@ -1453,8 +1572,10 @@ BEGIN declare i_newf12 char(20); declare i_newf13 date; declare i_newf14 integer; - declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 limit 4; - declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 limit 3; + declare cur1 cursor for SELECT f1, f2, f3, f4 from t2 + where f4>=-5000 order by f4 limit 4; + declare cur2 cursor for SELECT f1, f2, f3, f4 from t2 + where f4>=-5000 order by f4 limit 3; declare continue handler for sqlstate '02000' set proceed=0; open cur1; open cur2; @@ -1486,8 +1607,10 @@ BEGIN DECLARE o_newf12 CHAR(20); DECLARE o_newf13 DATE; DECLARE o_newf14 INTEGER; - DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; - DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 LIMIT 5; + DECLARE cur1 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 + WHERE f4>=-5000 ORDER BY f4 LIMIT 5; + DECLARE cur2 CURSOR FOR SELECT f1, f2, f3, f4 FROM t2 + WHERE f4>=-5000 ORDER BY f4 LIMIT 5; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET proceed=0; OPEN cur1; OPEN cur2; @@ -1526,6 +1649,7 @@ DROP TABLE temp2; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc # ============================================================================== -let $message= . +++ END OF SCRIPT +++; ---source include/show_msg80.inc +--echo +--echo . +++ END OF SCRIPT +++ +--echo -------------------------------------------------------------------------------- # ============================================================================== diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc index 9ffa7d7f66c..01810390a92 100644 --- a/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc +++ b/mysql-test/suite/funcs_1/storedproc/storedproc_03.inc @@ -5,38 +5,67 @@ # ============================================================================== # (numbering from requirement document TP v1.0, Last updated: 25 Jan 2005 01:00) # -# 3.1.3 Syntax checks for the stored procedure-specific flow control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE: +# 3.1.3 Syntax checks for the stored procedure-specific flow control statements +# IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE: # #- 1. Ensure that all subclauses that should be supported are supported. -#- 2. Ensure that all subclauses that should not be supported are disallowed with an appropriate error message. -#- 3. Ensure that all supported subclauses are supported only in the correct order. -#- 4. Ensure that an appropriate error message is returned if a subclause is out-of-order in a stored procedure definition. -#- 5. Ensure that all subclauses that are defined to be mandatory are indeed required to be mandatory by the MySQL server and tools. -#- 6. Ensure that any subclauses that are defined to be optional are indeed treated as optional by the MySQL server and tools. -## 7. Ensure that the IF statement acts correctly for all variants, including cases where statements are nested. -## 8. Ensure that the CASE statement acts correctly for all variants, including cases where statements are nested. -## 9. Ensure that the LOOP statement acts correctly for all variants, including cases where statements are nested. +#- 2. Ensure that all subclauses that should not be supported are disallowed +# with an appropriate error message. +#- 3. Ensure that all supported subclauses are supported only in the +# correct order. +#- 4. Ensure that an appropriate error message is returned if a subclause is +# out-of-order in a stored procedure definition. +#- 5. Ensure that all subclauses that are defined to be mandatory are indeed +# required to be mandatory by the MySQL server and tools. +#- 6. Ensure that any subclauses that are defined to be optional are indeed +# treated as optional by the MySQL server and tools. +## 7. Ensure that the IF statement acts correctly for all variants, including +# cases where statements are nested. +## 8. Ensure that the CASE statement acts correctly for all variants, +# including cases where statements are nested. +## 9. Ensure that the LOOP statement acts correctly for all variants, +# including cases where statements are nested. #- 10. Ensure that the labels enclosing each LOOP statement must match. -#- 11. Ensure that it is possible to put a beginning label at the start of a LOOP statement without also requiring an ending label at the end of the same statement. -#- 12. Ensure that it is not possible to put an ending label at the end of a LOOP statement without also requiring a matching beginning label at the start of the same statement. +#- 11. Ensure that it is possible to put a beginning label at the start of +# a LOOP statement without also requiring an ending label at the end of +# the same statement. +#- 12. Ensure that it is not possible to put an ending label at the end of +# a LOOP statement without also requiring a matching beginning label +# at the start of the same statement. #- 13. Ensure that every beginning label must end with a colon (:). #- 14. Ensure that every beginning label with the same scope must be unique. -## 15. Ensure that the LEAVE statement acts correctly for all variants, including cases where statements are nested. -## 16. Ensure that the ITERATE statement acts correctly for all variants, including cases where statements are nested. -#- 17. Ensure that the ITERATE statement fails, with an appropriate error message, if it appears in any context other than within LOOP, REPEAT, or WHILE statements. -## 18. Ensure that the REPEAT statement acts correctly for all variants, including cases where statements are nested. +## 15. Ensure that the LEAVE statement acts correctly for all variants, +# including cases where statements are nested. +## 16. Ensure that the ITERATE statement acts correctly for all variants, +# including cases where statements are nested. +#- 17. Ensure that the ITERATE statement fails, with an appropriate error +# message, if it appears in any context other than within LOOP, REPEAT, +# or WHILE statements. +## 18. Ensure that the REPEAT statement acts correctly for all variants, +# including cases where statements are nested. #- 19. Ensure that the labels enclosing each REPEAT statement must match. -#- 20. Ensure that it is possible to put a beginning label at the start of a REPEAT statement without also requiring an ending label at the end of the same statement. -#- 21. Ensure that it is not possible to put an ending label at the end of a REPEAT statement without also requiring a matching beginning label at the start of the same statement. +#- 20. Ensure that it is possible to put a beginning label at the start of +# a REPEAT statement without also requiring an ending label at the end +# of the same statement. +#- 21. Ensure that it is not possible to put an ending label at the end of +# a REPEAT statement without also requiring a matching beginning label +# at the start of the same statement. #- 22. Ensure that every beginning label must end with a colon (:). #- 23. Ensure that every beginning label with the same scope must be unique. -## 24. Ensure that the WHILE statement acts correctly for all variants, including cases where statements are nested. +## 24. Ensure that the WHILE statement acts correctly for all variants, +# including cases where statements are nested. #- 25. Ensure that the labels enclosing each WHILE statement must match. -#- 26. Ensure that it is possible to put a beginning label at the start of a WHILE statement without also requiring an ending label at the end of the same statement. -#- 27. Ensure that it is not possible to put an ending label at the end of a WHILE statement without also requiring a matching beginning label at the start of the same statement. +#- 26. Ensure that it is possible to put a beginning label at the start of +# a WHILE statement without also requiring an ending label at the end +# of the same statement. +#- 27. Ensure that it is not possible to put an ending label at the end of +# a WHILE statement without also requiring a matching beginning label +# at the start of the same statement. #- 28. Ensure that every beginning label must end with a colon (:). #- 29. Ensure that every beginning label with the same scope must be unique. -## 30. Ensure that multiple cases of all possible combinations of the control flow statements, nested within multiple compound statements within a stored procedure, always act correctly and return the expected result. +## 30. Ensure that multiple cases of all possible combinations of the control +# flow statements, nested within multiple compound statements within +# a stored procedure, always act correctly and return the expected result. # # ============================================================================== let $message= Section 3.1.3 - Syntax checks for the stored procedure-specific flow @@ -237,8 +266,9 @@ DROP PROCEDURE IF EXISTS sp31316; delimiter //; # wrong label at iterate -#Error: 1308 SQLSTATE: 42000 (ER_SP_LILABEL_MISMATCH) Message: %s with no matching label: %s ---error 1308 +# Error: SQLSTATE: 42000 (ER_SP_LILABEL_MISMATCH) +# Message: %s with no matching label: %s +--error ER_SP_LILABEL_MISMATCH CREATE PROCEDURE sp31316( ) BEGIN declare count1 integer default 1; @@ -436,8 +466,9 @@ BEGIN END// delimiter ;// -#Error: 1318 SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS) Message: Incorrect number of arguments for %s %s; expected %u, got %u ---error 1318 +# Error: SQLSTATE: 42000 (ER_SP_WRONG_NO_OF_ARGS) +# Message: Incorrect number of arguments for %s %s; expected %u, got %u +--error ER_SP_WRONG_NO_OF_ARGS CALL sp31330(); CALL sp31330(1); @@ -459,6 +490,7 @@ drop table res_tbl; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc # ============================================================================== -let $message= . +++ END OF SCRIPT +++; ---source include/show_msg80.inc +--echo +--echo . +++ END OF SCRIPT +++ +--echo -------------------------------------------------------------------------------- # ============================================================================== diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc index e2b9e846b97..1a4dd9ff327 100644 --- a/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc +++ b/mysql-test/suite/funcs_1/storedproc/storedproc_06.inc @@ -7,20 +7,29 @@ # # 3.1.6 Privilege checks: # -# 1. Ensure that no user may create a stored procedure without the GRANT CREATE ROUTINE privilege. +# 1. Ensure that no user may create a stored procedure without the +# GRANT CREATE ROUTINE privilege. # 2. Ensure that root always has the GRANT CREATE ROUTINE privilege. -# 3. Ensure that a user with the GRANT CREATE ROUTINE privilege can always create both a procedure and a function, on any appropriate database. -# 4. Ensure that the default security provision of a stored procedure is SQL SECURITY DEFINER. -# 5. Ensure that a stored procedure defined with SQL SECURITY DEFINER can be called/executed by any user, using only the privileges (including database access privileges) associated with the user who created the stored procedure. -# 6. Ensure that a stored procedure defined with SQL SECURITY INVOKER can be called/executed by any user, using only the privileges (including database access privileges) associated with the user executing the stored procedure. +# 3. Ensure that a user with the GRANT CREATE ROUTINE privilege can always +# create both a procedure and a function, on any appropriate database. +# 4. Ensure that the default security provision of a stored procedure is +# SQL SECURITY DEFINER. +# 5. Ensure that a stored procedure defined with SQL SECURITY DEFINER can be +# called/executed by any user, using only the privileges (including +# database access privileges) associated with the user who created +# the stored procedure. +# 6. Ensure that a stored procedure defined with SQL SECURITY INVOKER can be +# called/executed by any user, using only the privileges (including +# database access privileges) associated with the user executing +# the stored procedure. # # ============================================================================== let $message= Section 3.1.6 - Privilege Checks:; --source include/show_msg80.inc -USE db_storedproc_1; connection default; +USE db_storedproc_1; --source suite/funcs_1/include/show_connection.inc # ------------------------------------------------------------------------------ @@ -47,7 +56,7 @@ connect (user1a, localhost, user_1, , db_storedproc_1); USE db_storedproc_1; delimiter //; ---error 1044 +--error ER_DBACCESS_DENIED_ERROR CREATE PROCEDURE sp1(v1 char(20)) BEGIN SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz'; @@ -58,6 +67,7 @@ disconnect user1a; # add privilege again and check connection default; +USE db_storedproc_1; --source suite/funcs_1/include/show_connection.inc GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost'; @@ -77,6 +87,7 @@ disconnect user1b; # cleanup connection default; +USE db_storedproc_1; --source suite/funcs_1/include/show_connection.inc DROP USER 'user_1'@'localhost'; @@ -132,6 +143,7 @@ disconnect user2; # cleanup connection default; +USE db_storedproc_1; --source suite/funcs_1/include/show_connection.inc drop user 'user_1'@'localhost'; @@ -242,33 +254,33 @@ disconnect user5_1; connect (user5_2, localhost, user_2, , db_storedproc_1); --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_s_i(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_ins(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_sel(); # now 'add' INSERT to DEFINER connection default; --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_sel(); grant insert on db_storedproc_1.* to 'user_1'@'localhost'; flush privileges; connection user5_2; --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_s_i(); CALL sp5_ins(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_sel(); # now 'add' SELECT to DEFINER connection default; --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_sel(); grant SELECT on db_storedproc_1.* to 'user_1'@'localhost'; #grant execute on db_storedproc_1.* to 'user_2'@'localhost'; @@ -288,9 +300,9 @@ flush privileges; connection user5_2; --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_s_i(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_ins(); CALL sp5_sel(); @@ -302,11 +314,11 @@ flush privileges; connection user5_2; --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_s_i(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_ins(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp5_sel(); # cleanup @@ -373,9 +385,9 @@ disconnect user6_1; connect (user6_2, localhost, user_2, , db_storedproc_1); --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp3166_s_i(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp3166_ins(); CALL sp3166_sel(); @@ -405,10 +417,10 @@ FLUSH PRIVILEGES; --replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK connect (user6_4, localhost, user_2, , db_storedproc_1); --source suite/funcs_1/include/show_connection.inc ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp3166_s_i(); CALL sp3166_ins(); ---error 1142 +--error ER_TABLEACCESS_DENIED_ERROR CALL sp3166_sel(); disconnect user6_4; @@ -422,11 +434,11 @@ FLUSH PRIVILEGES; --replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK connect (user6_5, localhost, user_2, , db_storedproc_1); --source suite/funcs_1/include/show_connection.inc ---error 1370 +--error ER_PROCACCESS_DENIED_ERROR CALL sp3166_s_i(); ---error 1370 +--error ER_PROCACCESS_DENIED_ERROR CALL sp3166_ins(); ---error 1370 +--error ER_PROCACCESS_DENIED_ERROR CALL sp3166_sel(); disconnect user6_5; @@ -447,6 +459,7 @@ DROP USER 'user_2'@'localhost'; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc # ============================================================================== -let $message= . +++ END OF SCRIPT +++; ---source include/show_msg80.inc +--echo +--echo . +++ END OF SCRIPT +++ +--echo -------------------------------------------------------------------------------- # ============================================================================== diff --git a/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc b/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc index d7b0a370a82..8e32a43e18f 100644 --- a/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc +++ b/mysql-test/suite/funcs_1/storedproc/storedproc_10.inc @@ -7,14 +7,21 @@ # # 3.1.10 CALL checks: # -## 1. Ensure that a properly defined procedure can always be called, assuming the appropriate privileges exist. -#- 2. Ensure that a procedure cannot be called if the appropriate privileges do not exist. +## 1. Ensure that a properly defined procedure can always be called, assuming +# the appropriate privileges exist. +#- 2. Ensure that a procedure cannot be called if the appropriate privileges +# do not exist. ## 3. Ensure that a function can never be called. -## 4. Ensure that a properly defined function can always be executed, assuming the appropriate privileges exist. -#- 5. Ensure that a function cannot be executed if the appropriate privileges do not exist. +## 4. Ensure that a properly defined function can always be executed, assuming +# the appropriate privileges exist. +#- 5. Ensure that a function cannot be executed if the appropriate privileges +# do not exist. ## 6. Ensure that a procedure can never be executed. -## 7. Ensure that the ROW_COUNT() SQL function always returns the correct number of rows affected by the execution of a stored procedure. -## 8. Ensure that the mysql_affected_rows() C API function always returns the correct number of rows affected by the execution of a stored procedure. +## 7. Ensure that the ROW_COUNT() SQL function always returns the correct +# number of rows affected by the execution of a stored procedure. +## 8. Ensure that the mysql_affected_rows() C API function always returns +# the correct number of rows affected by the execution of a +# stored procedure. # # ============================================================================== let $message= Section 3.1.10 - CALL checks:; @@ -54,7 +61,7 @@ connect (user2_1, localhost, user_1, , db_storedproc); delimiter //; CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER BEGIN - SELECT * FROM db_storedproc.t1 LIMIT 1; + SELECT * FROM db_storedproc.t1 WHERE f4=-5000 LIMIT 1; END// delimiter ;// @@ -74,12 +81,14 @@ connect (user2_2, localhost, user_2, , db_storedproc); --source suite/funcs_1/include/show_connection.inc # no privileges exist ---error 1370 +--error ER_PROCACCESS_DENIED_ERROR CALL sp31102(); SELECT fn31105( 9 ); # now 'add' EXECUTE to INVOKER +--echo connection default; connection default; +USE db_storedproc; --source suite/funcs_1/include/show_connection.inc # root can execute ... CALL sp31102(); @@ -97,7 +106,9 @@ SELECT fn31105( 9 ); disconnect user2_3; # now 'remove' SELECT from INVOKER +--echo connection default; connection default; +USE db_storedproc; --source suite/funcs_1/include/show_connection.inc REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost'; FLUSH PRIVILEGES; @@ -115,6 +126,7 @@ disconnect user2_4; # cleanup connection default; +USE db_storedproc; --source suite/funcs_1/include/show_connection.inc DROP PROCEDURE sp31102; @@ -142,7 +154,7 @@ BEGIN END// delimiter ;// ---error 1305 +--error ER_SP_DOES_NOT_EXIST CALL fn1(); # cleanup @@ -168,7 +180,7 @@ BEGIN END// delimiter ;// ---error 1305 +--error ER_SP_DOES_NOT_EXIST SELECT sp1(); # cleanup @@ -182,26 +194,32 @@ let $message= Ensure that the ROW_COUNT() SQL function always returns the correct number of rows affected by the execution of a stored procedure.; --source include/show_msg80.inc +# Note(mleich): Information taken from a comments in +# Bug#21818 Return value of ROW_COUNT() is incorrect for +# ALTER TABLE, LOAD DATA +# ROW_COUNT() is -1 following any statement which is not DELETE, INSERT +# or UPDATE. +# Also, after a CALL statement, ROW_COUNT() will return the value of the +# last statement in the stored procedure. --disable_warnings DROP PROCEDURE IF EXISTS sp_ins_1; DROP PROCEDURE IF EXISTS sp_ins_3; DROP PROCEDURE IF EXISTS sp_upd; DROP PROCEDURE IF EXISTS sp_ins_upd; +DROP PROCEDURE IF EXISTS sp_del; +DROP PROCEDURE IF EXISTS sp_with_rowcount; --enable_warnings CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT); INSERT INTO temp SELECT * FROM t10; delimiter //; -#FIXME: add to proc: SELECT row_count() 'ins'; CREATE PROCEDURE sp_ins_1() BEGIN INSERT INTO temp VALUES ('abc', 'abc', '20051003', 100, 'uvw', 1000); END// - -#FIXME: add to proc: SELECT row_count() 'ins_3'; CREATE PROCEDURE sp_ins_3() BEGIN INSERT INTO temp VALUES ('abc', 'xyz', '19490523', 100, 'uvw', 1000); @@ -209,26 +227,11 @@ BEGIN INSERT INTO temp VALUES ('abc', 'xyz', '2005-10-24', 100, 'uvw', 1000); END// -# FIXME: add to proc: SELECT row_count() AS 'updated'; CREATE PROCEDURE sp_upd() BEGIN UPDATE temp SET temp.f1 = 'updated' WHERE temp.f1 ='abc'; END// -# FIXME: use commented proc -# CREATE PROCEDURE sp_ins_upd() -# BEGIN -# BEGIN -# INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000); -# INSERT INTO temp VALUES ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000); -# INSERT INTO temp VALUES ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000); -# INSERT INTO temp VALUES ('qwe', 'abc', '2005-11-07', 100, 'uvw', 1000); -# END; -# SELECT row_count() AS 'insert "qwe"'; -# SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1; -# UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc'; -# SELECT row_count() AS 'update "qwe" AND "abc"'; -# END// CREATE PROCEDURE sp_ins_upd() BEGIN BEGIN @@ -240,31 +243,70 @@ BEGIN SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1; UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc'; END// + +CREATE PROCEDURE sp_del() +BEGIN + DELETE FROM temp WHERE temp.f1 ='qwe' OR temp.f1 = 'updated_2'; +END// + +CREATE PROCEDURE sp_with_rowcount() +BEGIN + BEGIN + INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000), + ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000), + ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000), + ('qwe', 'xyz', '2005-11-07', 100, 'uvw', 1000); + END; + SELECT row_count() AS 'row_count() after insert'; + SELECT row_count() AS 'row_count() after select row_count()'; + SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; + UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f2 = 'abc'; + SELECT row_count() AS 'row_count() after update'; + SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3; + DELETE FROM temp WHERE temp.f1 = 'updated_2'; + SELECT row_count() AS 'row_count() after delete'; +END// delimiter ;// CALL sp_ins_1(); SELECT row_count(); +--sorted_result SELECT * FROM temp; CALL sp_ins_3(); -#FIXME: check is 1 correct here? I expect 3 for 3 inserted rows inside the procedure SELECT row_count(); +--sorted_result SELECT * FROM temp; CALL sp_upd(); SELECT row_count(); +--sorted_result SELECT * FROM temp; -#FIXME: check is 3 correct here? I expect 7 for 4 inserted and then 3 updated rows inside the procedure CALL sp_ins_upd(); SELECT row_count(); +--sorted_result SELECT * FROM temp; +CALL sp_del(); +SELECT row_count(); +--sorted_result +SELECT * FROM temp; + +DELETE FROM temp; +CALL sp_with_rowcount(); +SELECT row_count(); +--sorted_result +SELECT * FROM temp; + + # cleanup DROP PROCEDURE sp_ins_1; DROP PROCEDURE sp_ins_3; DROP PROCEDURE sp_upd; DROP PROCEDURE sp_ins_upd; +DROP PROCEDURE sp_del; +DROP PROCEDURE sp_with_rowcount; DROP TABLE temp; @@ -272,7 +314,7 @@ DROP TABLE temp; let $message= Testcase 3.1.10.8:; --source include/show_msg.inc let $message= -Ensure that the mysql_affected_rows() C API function always returns the correct +Ensure that the mysql_affected_rows() C API function always returns the correct number of rows affected by the execution of a stored procedure.; --source include/show_msg80.inc @@ -283,6 +325,7 @@ number of rows affected by the execution of a stored procedure.; --source suite/funcs_1/storedproc/cleanup_sp_tb.inc # ============================================================================== -let $message= . +++ END OF SCRIPT +++; ---source include/show_msg80.inc +--echo +--echo . +++ END OF SCRIPT +++ +--echo -------------------------------------------------------------------------------- # ============================================================================== diff --git a/mysql-test/suite/funcs_1/t/innodb_trig_0407.test b/mysql-test/suite/funcs_1/t/innodb_trig_0407.test index d6b7d4a9942..1a0689847b1 100644 --- a/mysql-test/suite/funcs_1/t/innodb_trig_0407.test +++ b/mysql-test/suite/funcs_1/t/innodb_trig_0407.test @@ -10,7 +10,7 @@ let $engine_type= innodb; # Create some objects needed in many testcases USE test; --source suite/funcs_1/include/innodb_tb3.inc - + --source suite/funcs_1/triggers/triggers_0407.inc DROP TABLE test.tb3; diff --git a/mysql-test/suite/funcs_1/t/is_basics_mixed.test b/mysql-test/suite/funcs_1/t/is_basics_mixed.test index 8097c3ab3b1..30aeba12915 100644 --- a/mysql-test/suite/funcs_1/t/is_basics_mixed.test +++ b/mysql-test/suite/funcs_1/t/is_basics_mixed.test @@ -174,7 +174,7 @@ WHERE table_schema = 'db_datadict' ORDER BY table_name LIMIT 1; SELECT @table_name,@table_schema; # # SELECT INTO OUTFILE -let $OUTFILE = $MYSQL_TMP_DIR/datadict.out; +let $OUTFILE = $MYSQLTEST_VARDIR/tmp/datadict.out; --error 0,1 remove_file $OUTFILE; --replace_result $OUTFILE diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_02.test b/mysql-test/suite/funcs_1/t/memory_storedproc_02.test index f92657ee665..5b5e0b52932 100644 --- a/mysql-test/suite/funcs_1/t/memory_storedproc_02.test +++ b/mysql-test/suite/funcs_1/t/memory_storedproc_02.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/memory_storedproc_02.test # - + let $engine_type= memory; - + --source suite/funcs_1/storedproc/storedproc_02.inc diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_03.test b/mysql-test/suite/funcs_1/t/memory_storedproc_03.test index 8a839b255e1..61a601c8c66 100644 --- a/mysql-test/suite/funcs_1/t/memory_storedproc_03.test +++ b/mysql-test/suite/funcs_1/t/memory_storedproc_03.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/memory_storedproc_03.test # - + let $engine_type= memory; - + --source suite/funcs_1/storedproc/storedproc_03.inc diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_06.test b/mysql-test/suite/funcs_1/t/memory_storedproc_06.test index 059528590b9..ac4b1173553 100644 --- a/mysql-test/suite/funcs_1/t/memory_storedproc_06.test +++ b/mysql-test/suite/funcs_1/t/memory_storedproc_06.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/memory_storedproc_06.test # - + let $engine_type= memory; - + --source suite/funcs_1/storedproc/storedproc_06.inc diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_07.test b/mysql-test/suite/funcs_1/t/memory_storedproc_07.test index 1d7cee3dbd6..be74d5c9c38 100644 --- a/mysql-test/suite/funcs_1/t/memory_storedproc_07.test +++ b/mysql-test/suite/funcs_1/t/memory_storedproc_07.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/memory_storedproc_07.test # - + let $engine_type= memory; - + --source suite/funcs_1/storedproc/storedproc_07.inc diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_08.test b/mysql-test/suite/funcs_1/t/memory_storedproc_08.test index 304be8c477a..d898f288f29 100644 --- a/mysql-test/suite/funcs_1/t/memory_storedproc_08.test +++ b/mysql-test/suite/funcs_1/t/memory_storedproc_08.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/memory_storedproc_08.test # - + let $engine_type= memory; - + --source suite/funcs_1/storedproc/storedproc_08.inc diff --git a/mysql-test/suite/funcs_1/t/memory_storedproc_10.test b/mysql-test/suite/funcs_1/t/memory_storedproc_10.test index 13fbe99fabf..753e5d0bfc7 100644 --- a/mysql-test/suite/funcs_1/t/memory_storedproc_10.test +++ b/mysql-test/suite/funcs_1/t/memory_storedproc_10.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/memory_storedproc_10.test # - + let $engine_type= memory; - + --source suite/funcs_1/storedproc/storedproc_10.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test index 108b0fe5611..be3e0e9685f 100644 --- a/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test +++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_02.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/myisam_storedproc_02.test # - + let $engine_type= myisam; - + --source suite/funcs_1/storedproc/storedproc_02.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test index b181e3ce7ab..740db774552 100644 --- a/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test +++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_03.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/myisam_storedproc_03.test # - + let $engine_type= myisam; - + --source suite/funcs_1/storedproc/storedproc_03.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test index 81d3d24a01f..1038a40b57d 100644 --- a/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test +++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_06.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/myisam_storedproc_06.test # - + let $engine_type= myisam; - + --source suite/funcs_1/storedproc/storedproc_06.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test index a02f2f544ee..674c3ef3fb6 100644 --- a/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test +++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_07.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/myisam_storedproc_07.test # - + let $engine_type= myisam; - + --source suite/funcs_1/storedproc/storedproc_07.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test index 24e574fa9e2..a27d593bd92 100644 --- a/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test +++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_08.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/myisam_storedproc_08.test # - + let $engine_type= myisam; - + --source suite/funcs_1/storedproc/storedproc_08.inc diff --git a/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test b/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test index 6b4f6c21b62..bfa83c01a57 100644 --- a/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test +++ b/mysql-test/suite/funcs_1/t/myisam_storedproc_10.test @@ -1,6 +1,6 @@ #### suite/funcs_1/t/myisam_storedproc_10.test # - + let $engine_type= myisam; - + --source suite/funcs_1/storedproc/storedproc_10.inc diff --git a/mysql-test/suite/funcs_1/triggers/trig_frkey2.inc b/mysql-test/suite/funcs_1/triggers/trig_frkey2.inc index 51cc2a81d18..c3de88a28f7 100644 --- a/mysql-test/suite/funcs_1/triggers/trig_frkey2.inc +++ b/mysql-test/suite/funcs_1/triggers/trig_frkey2.inc @@ -1,17 +1,17 @@ ################################################################# -# This file inclde tests that address the foreign key cases of -# the following requirements since they are specific to innodb. -# Other test cases for these requirements are included in the +# This file inclde tests that address the foreign key cases of +# the following requirements since they are specific to innodb. +# Other test cases for these requirements are included in the # triggers_master.test file. ################################################################# --disable_abort_on_error # OBN - The following tests are disabled until triggers are supported with forign -# keys in innodb (foreign keys tests dispabled - bug 11472) +# keys in innodb (foreign keys tests dispabled - bug 11472) ################################################################################# #Section x.x.x.3 -# Test case: Similar to 3.5.10.5 but with ten tables to see if multiple triggers +# Test case: Similar to 3.5.10.5 but with ten tables to see if multiple triggers # can be executed at once let $message= Testcase x.x.x.3:; --source include/show_msg.inc @@ -21,58 +21,58 @@ let $message= Testcase x.x.x.3:; --enable_warnings eval CREATE TABLE t0 (col1 char(50)) ENGINE=$engine_type; - eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50), + eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50), PRIMARY KEY (id)) ENGINE=$engine_type; - eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL) ENGINE=$engine_type; - eval CREATE TABLE t3 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t3 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t4 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t4 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t5 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t5 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t6 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t6 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t7 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t7 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t8 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t8 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t9 (id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t9 (id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t10(id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t10(id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - eval CREATE TABLE t11(id INT PRIMARY KEY, f_id INT, INDEX par_ind - (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t11(id INT PRIMARY KEY, f_id INT, INDEX par_ind + (f_id), col1 char(50), FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; - create trigger tr1 after update on t2 for each row + create trigger tr1 after update on t2 for each row insert into t0 values ('tr_t2'); - create trigger tr2 after update on t3 for each row + create trigger tr2 after update on t3 for each row insert into t0 values ('tr_t3'); - create trigger tr3 after update on t4 for each row + create trigger tr3 after update on t4 for each row insert into t0 values ('tr_t4'); - create trigger tr3 after update on t5 for each row + create trigger tr3 after update on t5 for each row insert into t0 values ('tr_t5'); - create trigger tr4 after update on t6 for each row + create trigger tr4 after update on t6 for each row insert into t0 values ('tr_t6'); - create trigger tr5 after update on t7 for each row + create trigger tr5 after update on t7 for each row insert into t0 values ('tr_t7'); - create trigger tr5 after update on t8 for each row + create trigger tr5 after update on t8 for each row insert into t0 values ('tr_t8'); - create trigger tr6 after update on t9 for each row + create trigger tr6 after update on t9 for each row insert into t0 values ('tr_t9'); - create trigger tr7 after update on t10 for each row + create trigger tr7 after update on t10 for each row insert into t0 values ('tr_t10'); - create trigger tr8 after update on t11 for each row + create trigger tr8 after update on t11 for each row insert into t0 values ('tr_t11'); insert into t1 values (1,'Department A'); @@ -134,10 +134,10 @@ let $message= Testcase x.x.x.3:; #Section 3.5.10.5 -# Test case: Ensure that every trigger that should be activated by every possible -# type of implicit update of its subject table (e.g. a FOREIGN KEY SET -# DEFAULT action or an UPDATE of a view based on the subject table) -# is indeed activated correctly. +# Test case: Ensure that every trigger that should be activated by every possible +# type of implicit update of its subject table (e.g. a FOREIGN KEY SET +# DEFAULT action or an UPDATE of a view based on the subject table) +# is indeed activated correctly. let $message= Testcase 3.5.10.5 (foreign keys):; --source include/show_msg.inc @@ -146,11 +146,11 @@ let $message= Testcase 3.5.10.5 (foreign keys):; DROP TABLE IF EXISTS t1, t2; --enable_warnings - eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50), + eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50), PRIMARY KEY (id)) ENGINE=$engine_type; - eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, - INDEX par_ind (f_id), col1 char(50), - FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, + INDEX par_ind (f_id), col1 char(50), + FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL ON UPDATE CASCADE) ENGINE=$engine_type; create trigger tr_t2 after update on t2 for each row set @counter=@counter+1; @@ -191,9 +191,9 @@ let $message= Testcase 3.5.10.5 (foreign keys):; #Section 3.5.10.6 -# Test case: Ensure that every trigger that should be activated by every possible -# type of implicit deletion from its subject table (e.g. a FOREIGN KEY -# CASCADE action or a DELETE from a view based on the subject table) +# Test case: Ensure that every trigger that should be activated by every possible +# type of implicit deletion from its subject table (e.g. a FOREIGN KEY +# CASCADE action or a DELETE from a view based on the subject table) # is indeed activated correctly. let $message= Testcase 3.5.10.6 (foreign keys):; --source include/show_msg.inc @@ -202,11 +202,11 @@ let $message= Testcase 3.5.10.6 (foreign keys):; DROP TABLE IF EXISTS t1, t2; --enable_warnings - eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50), + eval CREATE TABLE t1 (id INT NOT NULL, col1 char(50), PRIMARY KEY (id)) ENGINE=$engine_type; - eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, - INDEX par_ind (f_id), col1 char(50), - FOREIGN KEY (f_id) REFERENCES t1(id) + eval CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT, + INDEX par_ind (f_id), col1 char(50), + FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE CASCADE) ENGINE=$engine_type; create trigger tr_t2 before delete on t2 diff --git a/mysql-test/suite/funcs_1/triggers/triggers_0102.inc b/mysql-test/suite/funcs_1/triggers/triggers_0102.inc index b11455c07d3..cadfb9ec9be 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_0102.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_0102.inc @@ -1,7 +1,7 @@ #====================================================================== # -# Trigger Tests -# (test case numbering refer to requirement document TP v1.1) +# Trigger Tests +# (test case numbering refer to requirement document TP v1.1) #====================================================================== # OBM - ToDo @@ -20,37 +20,37 @@ # Testcase: Ensure that all clauses that should be supported are supported. let $message= Testcase: 3.5.1.1:; --source include/show_msg.inc -# OBN - This test case tests basic trigger definition and execution +# OBN - This test case tests basic trigger definition and execution # of INSERT/UPDATE/DELETE actions and BEFORE/AFTER timings. -# As such it covers the equirements in sections 3.5.6.1, 3.5.6.2, +# As such it covers the equirements in sections 3.5.6.1, 3.5.6.2, # 3.5.6.4, 3.5.6.5, 3.5.7.1, 3.5.7.2, 3.5.7.3, 3.5.7.17 below. -# - Note currently as a result of limitations with locking tables in +# - Note currently as a result of limitations with locking tables in # triggers, a specifc lockingof the tables is done. # Once fixed, the locking and alias referances should be removed use test; # Trigger Definition - Create trigger trg1_1 BEFORE INSERT + Create trigger trg1_1 BEFORE INSERT on tb3 for each row set @test_before = 2, new.f142 = @test_before; - Create trigger trg1_2 AFTER INSERT + Create trigger trg1_2 AFTER INSERT on tb3 for each row set @test_after = 6; - Create trigger trg1_4 BEFORE UPDATE - on tb3 for each row set @test_before = 27, - new.f142 = @test_before, + Create trigger trg1_4 BEFORE UPDATE + on tb3 for each row set @test_before = 27, + new.f142 = @test_before, new.f122 = 'Before Update Trigger'; - Create trigger trg1_3 AFTER UPDATE + Create trigger trg1_3 AFTER UPDATE on tb3 for each row set @test_after = '15'; - Create trigger trg1_5 BEFORE DELETE on tb3 for each row - select count(*) into @test_before from tb3 as tr_tb3 + Create trigger trg1_5 BEFORE DELETE on tb3 for each row + select count(*) into @test_before from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; - Create trigger trg1_6 AFTER DELETE on tb3 for each row - select count(*) into @test_after from tb3 as tr_tb3 + Create trigger trg1_6 AFTER DELETE on tb3 for each row + select count(*) into @test_after from tb3 as tr_tb3 where f121 = 'Test 3.5.1.1'; # Trigger Execution Insert (before and after) set @test_before = 1; set @test_after = 5; select @test_before, @test_after; - Insert into tb3 (f121, f122, f142, f144, f134) + Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; select @test_before, @test_after; @@ -59,15 +59,15 @@ use test; set @test_before = 18; set @test_after = 8; select @test_before, @test_after; - Update tb3 set tb3.f122 = 'Update', - tb3.f142 = @test_before, - tb3.f144 = @test_after + Update tb3 set tb3.f122 = 'Update', + tb3.f142 = @test_before, + tb3.f144 = @test_after where tb3.f121 = 'Test 3.5.1.1'; select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; select @test_before, @test_after; # Trigger Execution Delete (before and after) - Insert into tb3 (f121, f122, f142, f144, f134) + Insert into tb3 (f121, f122, f142, f144, f134) values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); set @test_before = 0; set @test_after = 0; @@ -79,35 +79,35 @@ use test; #Cleanup --disable_warnings - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg1_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg1_2; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg1_3; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg1_4; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg1_5; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg1_6; --enable_warnings delete from tb3 where f121='Test 3.5.1.1'; --enable_warnings #Section 3.5.1.2 -# Testcase: Ensure that all clauses that should not be supported are disallowed -# with an appropriate error message. +# Testcase: Ensure that all clauses that should not be supported are disallowed +# with an appropriate error message. let $message= Testcase: 3.5.1.2:; --source include/show_msg.inc - --error 1064 - Create trigger trg_1 after insert + --error ER_PARSE_ERROR + Create trigger trg_1 after insert on tb3 for each statement set @x= 1; -#Cleanup - --disable_warnings - --error 0, 1360 +#Cleanup + --disable_warnings + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg_1; --enable_warnings @@ -116,66 +116,66 @@ let $message= Testcase: 3.5.1.2:; # Testcase: Ensure that all supported clauses are supported only in the correct order. let $message= Testcase 3.5.1.3:; --source include/show_msg.inc - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't'; - --error 1064 + --error ER_PARSE_ERROR CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row; - --error 1064 - CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'; + --error ER_PARSE_ERROR + CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'; #Cleanup # OBN - Although none of the above should have been created we should do a cleanup # since if they have been created, not dropping them will affect following # tests. --disable_warnings - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg3_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg3_2; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg3_3; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg3_4; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg3_5; --enable_warnings #Section 3.5.1.4 -# Testcase: Ensure that an appropriate error message is returned if a clause +# Testcase: Ensure that an appropriate error message is returned if a clause # is out-of-order in an SQL statement. # OBN - FIXME - Missing 3.5.1.4 need to add #Section 3.5.1.5 -# Testcase: Ensure that all clauses that are defined to be mandatory are indeed +# Testcase: Ensure that all clauses that are defined to be mandatory are indeed # required to be mandatory by the MySQL server and tools let $message= Testcase: 3.5.1.5:; --source include/show_msg.inc - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g'; - --error 1064 + --error ER_PARSE_ERROR CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g'; #Cleanup @@ -183,19 +183,19 @@ let $message= Testcase: 3.5.1.5:; # since if they have been created, not dropping them will affect following # tests. --disable_warnings - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4_2; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4_3; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4_4; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4_5; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4_6; - --enable_warnings + --enable_warnings #Section 3.5.1.6 # Testcase: Ensure that any clauses that are defined to be optional are indeed @@ -204,15 +204,15 @@ let $message= Testcase 3.5.1.6: - Need to fix; --source include/show_msg.inc # OBN - FIXME - Missing 3.5.1.6 need to add -#Section 3.5.1.7 -# Testcase: Ensure that all valid, fully-qualified, and non-qualified, +#Section 3.5.1.7 +# Testcase: Ensure that all valid, fully-qualified, and non-qualified, # trigger names are accepted, at creation time. let $message= Testcase 3.5.1.7: - need to fix; --source include/show_msg.inc drop table if exists t1; eval create table t1 (f1 int, f2 char(25),f3 int) engine=$engine_type; - CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 + CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 for each row set new.f3 = '14'; CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; @@ -221,39 +221,39 @@ let $message= Testcase 3.5.1.7: - need to fix; select * from t1; update t1 set f2='update 3.5.1.7'; select * from t1; - select trigger_name from information_schema.triggers; + select trigger_name from information_schema.triggers order by trigger_name; #Cleanup - --disable_warnings - --error 0, 1360 + --disable_warnings + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg5_1; # The above trigger should be dropped since the name was trimmed. drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ; drop table t1; #Section 3.5.1.8 -# Testcase: Ensure that any invalid trigger name is never accepted, and that an +# Testcase: Ensure that any invalid trigger name is never accepted, and that an # appropriate error message is returned when the name is rejected. let $message= Testcase 3.5.1.8:; --source include/show_msg.inc - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; - --error 1064 + --error ER_PARSE_ERROR CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; - --error 1435 - CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 + --error ER_TRG_IN_WRONG_SCHEMA + CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 for each row set new.f120 ='X'; --disable_warnings @@ -265,29 +265,29 @@ let $message= Testcase 3.5.1.8:; # Can't create a trigger in a different database use test; - --error 1146 - CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 + --error ER_NO_SUCH_TABLE + CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 for each row set @ret_trg6_2 = 5; # Can't create a trigger refrencing a table in a different db use trig_db; - --error 1435 - CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 + --error ER_TRG_IN_WRONG_SCHEMA + CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 for each row set @ret_trg6_3 = 18; use test; #Cleanup - --disable_warnings + --disable_warnings drop database trig_db; # OBN - Although none of the above should have been created we should do a cleanup # since if they have been created, not dropping them will affect following # tests. - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg6_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg6_3; - --enable_warnings + --enable_warnings #Section 3.5.1.9 #Testcase: Ensure that a reference to a non-existent trigger is rejected with @@ -297,41 +297,41 @@ let $message= Testcase 3.5.1.9:(cannot be inplemented at this point); #Section 3.5.1.10 -#Testcase: Ensure that it is not possible to create two triggers with the same name on +#Testcase: Ensure that it is not possible to create two triggers with the same name on # the same table let $message= Testcase 3.5.1.10:; --source include/show_msg.inc CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X'; - --error 1359 + --error ER_TRG_ALREADY_EXISTS CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y'; #Cleanup - --disable_warnings - --error 0, 1360 + --disable_warnings + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg7_1; --enable_warnings -#Section 3.5.1.? -# Testcase: Ensure that it is not possible to create two or more triggers with +#Section 3.5.1.? +# Testcase: Ensure that it is not possible to create two or more triggers with # the same name, provided each is associated with a different table. let $message= Testcase 3.5.1.?:; --source include/show_msg.inc - --disable_warnings + --disable_warnings drop table if exists t1; drop table if exists t2; --enable_warnings eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; eval create table t2 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig before insert on t1 + create trigger trig before insert on t1 for each row set new.f1 ='trig t1'; - --error 1359 - create trigger trig before update on t2 + --error ER_TRG_ALREADY_EXISTS + create trigger trig before update on t2 for each row set new.f1 ='trig t2'; insert into t1 value ('insert to t1',1); @@ -343,16 +343,16 @@ let $message= Testcase 3.5.1.?:; select * from t2; #Cleanup - --disable_warnings + --disable_warnings drop table t1; drop table t2; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trig; --enable_warnings -#Section 3.5.1.11 -# Testcase: Ensure that it is possible to create two or more triggers with +#Section 3.5.1.11 +# Testcase: Ensure that it is possible to create two or more triggers with # the same name, provided each resides in a different database let $message= Testcase 3.5.1.11:; --source include/show_msg.inc @@ -367,15 +367,15 @@ let $message= Testcase 3.5.1.11:; create database trig_db3; use trig_db1; eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig before insert on t1 + create trigger trig before insert on t1 for each row set new.f1 ='trig1', @test_var1='trig1'; use trig_db2; eval create table t2 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig before insert on t2 + create trigger trig before insert on t2 for each row set new.f1 ='trig2', @test_var2='trig2'; use trig_db3; eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig before insert on t1 + create trigger trig before insert on t1 for each row set new.f1 ='trig3', @test_var3='trig3'; set @test_var1= '', @test_var2= '', @test_var3= ''; @@ -385,14 +385,14 @@ let $message= Testcase 3.5.1.11:; insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3); insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); select @test_var1, @test_var2, @test_var3; - select * from t1; + select * from t1 order by f2; select * from trig_db2.t2; select * from trig_db3.t1; - select * from t1; + select * from t1 order by f2; use test; #Cleanup - --disable_warnings + --disable_warnings drop database trig_db1; drop database trig_db2; drop database trig_db3; @@ -403,16 +403,16 @@ let $message= Testcase 3.5.1.11:; # Check for the global nature of Triggers # ########################################### -#Section 3.5.2.1 -# Test case: Ensure that if a trigger created without a qualifying database +#Section 3.5.2.1 +# Test case: Ensure that if a trigger created without a qualifying database # name belongs to the database in use at creation time. -#Section 3.5.2.2 -# Test case: Ensure that if a trigger created with a qualifying database name +#Section 3.5.2.2 +# Test case: Ensure that if a trigger created with a qualifying database name # belongs to the database specified. -#Section 3.5.2.3 -# Test case: Ensure that if a trigger created with a qualifying database name -# does not belong to the database in use at creation time unless -# the qualifying database name identifies the database that is +#Section 3.5.2.3 +# Test case: Ensure that if a trigger created with a qualifying database name +# does not belong to the database in use at creation time unless +# the qualifying database name identifies the database that is # also in use at creation time. let $message= Testcase 3.5.2.1/2/3:; --source include/show_msg.inc @@ -427,14 +427,14 @@ let $message= Testcase 3.5.2.1/2/3:; use trig_db1; eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; eval create table trig_db2.t1 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig1_b before insert on t1 + create trigger trig1_b before insert on t1 for each row set @test_var1='trig1_b'; - create trigger trig_db1.trig1_a after insert on t1 + create trigger trig_db1.trig1_a after insert on t1 for each row set @test_var2='trig1_a'; - create trigger trig_db2.trig2 before insert on trig_db2.t1 + create trigger trig_db2.trig2 before insert on trig_db2.t1 for each row set @test_var3='trig2'; select trigger_schema, trigger_name, event_object_table - from information_schema.triggers; + from information_schema.triggers order by trigger_name; set @test_var1= '', @test_var2= '', @test_var3= ''; insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); @@ -442,6 +442,6 @@ let $message= Testcase 3.5.2.1/2/3:; select @test_var1, @test_var2, @test_var3; #Cleanup - --disable_warnings + --disable_warnings drop database trig_db1; drop database trig_db2; diff --git a/mysql-test/suite/funcs_1/triggers/triggers_03.inc b/mysql-test/suite/funcs_1/triggers/triggers_03.inc index 764fccec734..ac76dc83062 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_03.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_03.inc @@ -63,14 +63,14 @@ let $message= Testcase 3.5.3.2:; select current_user; use priv_db; - --error 1227 + --error ER_SPECIFIC_ACCESS_DENIED_ERROR create trigger trg1_1 before INSERT on t1 for each row set new.f1 = 'trig 3.5.3.2_1-no'; connection default; use priv_db; insert into t1 (f1) values ('insert 3.5.3.2-no'); - select f1 from t1; + select f1 from t1 order by f1; connection yes_privs; select current_user; @@ -83,29 +83,27 @@ let $message= Testcase 3.5.3.2:; select current_user; use priv_db; - # Added following the fix to bug 5861 - --error 1143 + --error ER_COLUMNACCESS_DENIED_ERROR insert into t1 (f1) values ('insert 3.5.3.2-yes'); - select f1 from t1; - grant UPDATE on priv_db.t1 to test_yesprivs@localhost; -let $message= note: once 15166 is fixed a similar case for SELECT needs to be added; ---source include/show_msg.inc + select f1 from t1 order by f1; + + grant UPDATE on priv_db.t1 to test_yesprivs@localhost; + insert into t1 (f1) values ('insert 3.5.3.2-yes'); + select f1 from t1 order by f1; - insert into t1 (f1) values ('insert 3.5.3.2-yes'); - select f1 from t1; let $message= Testcase 3.5.3.6:; --source include/show_msg.inc connection no_privs; use priv_db; - --error 1227 + --error ER_SPECIFIC_ACCESS_DENIED_ERROR drop trigger trg1_2; connection default; use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-yes'); - select f1 from t1; + select f1 from t1 order by f1; connection yes_privs; use priv_db; @@ -115,12 +113,12 @@ let $message= Testcase 3.5.3.6:; connection default; use priv_db; insert into t1 (f1) values ('insert 3.5.3.6-no'); - select f1 from t1; + select f1 from t1 order by f1; # Cleanup --disable_warnings connection default; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg1_2; disconnect no_privs; disconnect yes_privs; @@ -131,8 +129,6 @@ let $message= Testcase 3.5.3.6:; # Test case: Ensure that use of the construct "SET NEW. = " # fails at CREATE TRIGGER time, if the current user does not have the # UPDATE privilege on the column specified -# Note: As a result of bug 8884 the triggers are actually created. -# Disabled because of bug 8884 # --- 3.5.3.7a - Privs set on a global level let $message=Testcase 3.5.3.7a:; @@ -156,18 +152,15 @@ let $message=Testcase 3.5.3.7a:; select current_user; use priv_db; show grants; - select f1 from t1; + select f1 from t1 order by f1; -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4a_1 before INSERT on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1a'; + create trigger trg4a_1 before INSERT on t1 for each row + set new.f1 = 'trig 3.5.3.7-1a'; connection default; + --error ER_COLUMNACCESS_DENIED_ERROR insert into t1 (f1) values ('insert 3.5.3.7-1a'); - select f1 from t1; - --error 0, 1360 + select f1 from t1 order by f1; drop trigger trg4a_1; connection yes_privs_424a; @@ -179,14 +172,8 @@ let $message= Trigger create disabled - should fail - Bug 8884; connection default; - - # Added to bypass bug 15166 -let $message= SELECT priv added to bypass bug 15166; ---source include/show_msg.inc - grant SELECT on *.* to test_yesprivs@localhost; - insert into t1 (f1) values ('insert 3.5.3.7-2b'); - select f1 from t1; + select f1 from t1 order by f1; # Cleanup --disable_warnings @@ -220,18 +207,14 @@ let $message= Testcase 3.5.3.7b:; show grants; use priv_db; -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4b_1 before UPDATE on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1b'; + create trigger trg4b_1 before UPDATE on t1 for each row + set new.f1 = 'trig 3.5.3.7-1b'; connection default; insert into t1 (f1) values ('insert 3.5.3.7-1b'); - select f1 from t1; + select f1 from t1 order by f1; update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; - select f1 from t1; - --error 0, 1360 + select f1 from t1 order by f1; drop trigger trg4b_1; connection yes_privs_424b; @@ -242,15 +225,10 @@ let $message= Trigger create disabled - should fail - Bug 8884; connection default; - # Added to bypass bug 15166 -let $message= SELECT priv added to bypass bug 15166; ---source include/show_msg.inc - grant SELECT on priv_db.* to test_yesprivs@localhost; - insert into t1 (f1) values ('insert 3.5.3.7-2b'); - select f1 from t1; + select f1 from t1 order by f1; update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; - select f1 from t1; + select f1 from t1 order by f1; # Cleanup --disable_warnings drop trigger trg4b_2; @@ -283,16 +261,12 @@ let $message= Testcase 3.5.3.7c; show grants; use priv_db; -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4c_1 before INSERT on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1c'; + create trigger trg4c_1 before INSERT on t1 for each row + set new.f1 = 'trig 3.5.3.7-1c'; connection default; insert into t1 (f1) values ('insert 3.5.3.7-1c'); - select f1 from t1; - --error 0, 1360 + select f1 from t1 order by f1; drop trigger trg4c_1; connection yes_privs_424c; @@ -303,13 +277,8 @@ let $message= Trigger create disabled - should fail - Bug 8884; connection default; - # Added to bypass bug 15166 -let $message= SELECT priv added to bypass bug 15166; ---source include/show_msg.inc - grant SELECT on priv_db.t1 to test_yesprivs@localhost; - insert into t1 (f1) values ('insert 3.5.3.7-2c'); - select f1 from t1; + select f1 from t1 order by f1; # Cleanup --disable_warnings @@ -344,16 +313,12 @@ let $message= Testcase 3.5.3.7d:; connection no_privs_424d; show grants; use priv_db; -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4d_1 before INSERT on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1d'; + create trigger trg4d_1 before INSERT on t1 for each row + set new.f1 = 'trig 3.5.3.7-1d'; connection default; insert into t1 (f1) values ('insert 3.5.3.7-1d'); - select f1 from t1; - --error 0, 1360 + select f1 from t1 order by f1; drop trigger trg4d_1; connection yes_privs_424d; @@ -364,13 +329,8 @@ let $message= Trigger create disabled - should fail - Bug 8884; connection default; - # Added to bypass bug 15166 -let $message= SELECT priv added to bypass bug 15166; ---source include/show_msg.inc - grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; - insert into t1 (f1) values ('insert 3.5.3.7-2d'); - select f1 from t1; + select f1 from t1 order by f1; # Cleanup --disable_warnings @@ -408,18 +368,14 @@ let $message= Testcase 3.5.3.8a:; use priv_db; show grants; -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5a_1 before INSERT on t1 for each row -# set @test_var = new.f1; + create trigger trg5a_1 before INSERT on t1 for each row + set @test_var = new.f1; connection default; set @test_var = 'before trig 3.5.3.8-1a'; select @test_var; insert into t1 (f1) values ('insert 3.5.3.8-1a'); select @test_var; - --error 0, 1360 drop trigger trg5a_1; connection yes_privs_425a; @@ -433,11 +389,6 @@ let $message= Trigger create disabled - should fail - Bug 8887; set @test_var= 'before trig 3.5.3.8-2a'; select @test_var; - # Added to bypass bug 15166 -let $message= UPDATE priv added to bypass bug 15166; ---source include/show_msg.inc - grant UPDATE on *.* to test_yesprivs@localhost; - insert into t1 (f1) values ('insert 3.5.3.8-2a'); select @test_var; @@ -473,11 +424,8 @@ let $message= Testcase: 3.5.3.8b; show grants; use priv_db; -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5b_1 before UPDATE on t1 for each row -# set @test_var= new.f1; + create trigger trg5b_1 before UPDATE on t1 for each row + set @test_var= new.f1; connection default; set @test_var= 'before trig 3.5.3.8-1b'; @@ -485,7 +433,6 @@ let $message= Trigger create disabled - should fail - Bug 8887; select @test_var; update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; select @test_var; - --error 0, 1360 drop trigger trg5b_1; connection yes_privs_425b; @@ -499,11 +446,6 @@ let $message= Trigger create disabled - should fail - Bug 8887; insert into t1 (f1) values ('insert 3.5.3.8-2b'); select @test_var; - # Added to bypass bug 15166 -let $message= UPDATE priv added to bypass bug 15166; ---source include/show_msg.inc - grant UPDATE on priv_db.* to test_yesprivs@localhost; - update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; select @test_var; # Cleanup @@ -538,17 +480,13 @@ let $message= Testcase 3.5.3.8c:; show grants; use priv_db; -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5c_1 before INSERT on t1 for each row -# set @test_var= new.f1; + create trigger trg5c_1 before INSERT on t1 for each row + set @test_var= new.f1; connection default; set @test_var= 'before trig 3.5.3.8-1c'; insert into t1 (f1) values ('insert 3.5.3.8-1c'); select @test_var; - --error 0, 1360 drop trigger trg5c_1; connection yes_privs_425c; @@ -560,11 +498,6 @@ let $message= Trigger create disabled - should fail - Bug 8887; connection default; set @test_var='before trig 3.5.3.8-2c'; - # Added to bypass bug 15166 -let $message= UPDATE priv added to bypass bug 15166; ---source include/show_msg.inc - grant UPDATE on priv_db.t1 to test_yesprivs@localhost; - insert into t1 (f1) values ('insert 3.5.3.8-2c'); select @test_var; # Cleanup @@ -598,17 +531,13 @@ let $message=Testcase: 3.5.3.8d:; connection no_privs_425d; show grants; use priv_db; -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5d_1 before INSERT on t1 for each row -# set @test_var= new.f1; + create trigger trg5d_1 before INSERT on t1 for each row + set @test_var= new.f1; connection default; set @test_var='before trig 3.5.3.8-1d'; insert into t1 (f1) values ('insert 3.5.3.8-1d'); select @test_var; - --error 0, 1360 drop trigger trg5d_1; connection yes_privs_425d; @@ -620,11 +549,6 @@ let $message= Trigger create disabled - should fail - Bug 8887; connection default; set @test_var='before trig 3.5.3.8-2d'; - # Added to bypass bug 15166 -let $message= UPDATE priv added to bypass bug 15166; ---source include/show_msg.inc - grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; - insert into t1 (f1) values ('insert 3.5.3.8-2d'); select @test_var; @@ -633,8 +557,7 @@ let $message= UPDATE priv added to bypass bug 15166; drop trigger trg5d_2; --enable_warnings -# --- 3.5.3.x - additional tests following the fix to bug 5861 / WL 2818 -# to test for trigger definer privs in the case of trigger +# --- 3.5.3.x to test for trigger definer privs in the case of trigger # actions (insert/update/delete/select) performed on other # tables. let $message=Testcase: 3.5.3.x:; @@ -671,8 +594,8 @@ let $message=Testcase: 3.5.3.x:; revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant INSERT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (4); - select f1 from t1; - select f2 from t2; + select f1 from t1 order by f1; + select f2 from t2 order by f2; connection yes_353x; use priv_db; @@ -687,8 +610,8 @@ let $message=Testcase: 3.5.3.x:; revoke INSERT on priv_db.t2 from test_yesprivs@localhost; grant UPDATE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (2); - select f1 from t1; - select f2 from t2; + select f1 from t1 order by f1; + select f2 from t2 order by f2; connection yes_353x; use priv_db; @@ -703,8 +626,8 @@ let $message=Testcase: 3.5.3.x:; revoke UPDATE on priv_db.t2 from test_yesprivs@localhost; grant SELECT on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); - select f1 from t1; - select f2 from t2; + select f1 from t1 order by f1; + select f2 from t2 order by f2; select @aaa; connection yes_353x; @@ -720,8 +643,8 @@ let $message=Testcase: 3.5.3.x:; revoke SELECT on priv_db.t2 from test_yesprivs@localhost; grant DELETE on priv_db.t2 to test_yesprivs@localhost; insert into t1 (f1) values (1); - select f1 from t1; - select f2 from t2; + select f1 from t1 order by f1; + select f2 from t2 order by f2; diff --git a/mysql-test/suite/funcs_1/triggers/triggers_0407.inc b/mysql-test/suite/funcs_1/triggers/triggers_0407.inc index 15c94ada975..a05bdb45bac 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_0407.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_0407.inc @@ -1,7 +1,7 @@ #====================================================================== # -# Trigger Tests -# (test case numbering refer to requirement document TP v1.1) +# Trigger Tests +# (test case numbering refer to requirement document TP v1.1) #====================================================================== --disable_abort_on_error @@ -46,32 +46,32 @@ let $message= Testcase 3.5.4.1:; eval create table t1 (f1 char(30)) engine=$engine_type; grant INSERT, SELECT on db_drop.t1 to test_general; Use db_drop; - Create trigger trg1 BEFORE INSERT on t1 + Create trigger trg1 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.1'; connection con1_general; Use db_drop; Insert into t1 values ('Insert error 3.5.4.1'); - Select * from t1; + Select * from t1 order by f1; connection con1_super; drop trigger trg1; select trigger_schema, trigger_name, event_object_table - from information_schema.triggers; + from information_schema.triggers order by trigger_name; connection con1_general; Insert into t1 values ('Insert no trigger 3.5.4.1'); - Select * from t1; + Select * from t1 order by f1; #Cleanup - --disable_warnings + --disable_warnings connection con1_super; --disable_warnings - --error 0,1360 - drop trigger trg1; + --error 0,ER_TRG_DOES_NOT_EXIST + drop trigger trg1; drop database if exists db_drop; revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; --enable_warnings #Section 3.5.4.2 -# Test case: Ensure that DROP TRIGGER fails, with an appropriate error +# Test case: Ensure that DROP TRIGGER fails, with an appropriate error # message, if the trigger name does not exist. let $message= Testcase 3.5.4.2:; --source include/show_msg.inc @@ -83,16 +83,16 @@ let $message= Testcase 3.5.4.2:; drop table if exists t1_432 ; --enable_warnings eval create table t1_432 (f1 char (30)) engine=$engine_type; - --error 1360 + --error ER_TRG_DOES_NOT_EXIST Drop trigger tr_does_not_exit; -#cleanup +#cleanup --disable_warnings drop table if exists t1_432 ; drop database if exists db_drop2; --enable_warnings #Section 3.5.4.3 -# Test case: Ensure that DROP TRIGGER fails, with an appropriate +# Test case: Ensure that DROP TRIGGER fails, with an appropriate # error message, if is not a qualified name. let $message= Testcase 3.5.4.3:; --source include/show_msg.inc @@ -107,33 +107,33 @@ let $message= Testcase 3.5.4.3:; eval create table t1_433 (f1 char (30)) engine=$engine_type; eval create table t1_433a (f1a char (5)) engine=$engine_type; - CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row + CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row set new.f1 = 'Trigger 3.5.4.3'; -# Using table - --error 1064 +# Using table + --error ER_PARSE_ERROR Drop trigger t1.433.trg3; -# Using database.table - --error 1064 +# Using database.table + --error ER_PARSE_ERROR Drop trigger db_drop3.t1.433.trg3; # wrong database - --error 1360 + --error ER_TRG_DOES_NOT_EXIST Drop trigger mysql.trg3; # database does not exist - --error 1360 + --error ER_TRG_DOES_NOT_EXIST Drop trigger tbx.trg3; -#cleanup +#cleanup Drop trigger db_drop3.trg3; drop table if exists t1_433; drop table if exists t1_433a; drop database if exists db_drop3; #Section 3.5.4.4 -# Test case: Ensure that when a database is dropped, all triggers created within +# Test case: Ensure that when a database is dropped, all triggers created within # that database are also cleanly dropped. let $message= Testcase 3.5.4.4:; --source include/show_msg.inc @@ -143,7 +143,7 @@ let $message= Testcase 3.5.4.4:; Use db_drop4; eval create table t1 (f1 char(30)) engine=$engine_type; grant INSERT, SELECT on db_drop4.t1 to test_general; - Create trigger trg4 BEFORE INSERT on t1 + Create trigger trg4 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.4'; connection con1_general; Use db_drop4; @@ -166,14 +166,14 @@ let $message= Testcase 3.5.4.4:; #Cleanup connection con1_super; --disable_warnings - --error 1360 - drop trigger trg4; + --error ER_TRG_DOES_NOT_EXIST + drop trigger trg4; drop database if exists db_drop4; --enable_warnings revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; #Section 3.5.4.5 -# Test case: Ensure that when a table is dropped, all triggers for which it is the +# Test case: Ensure that when a table is dropped, all triggers for which it is the # subject table are also cleanly dropped. let $message= Testcase 3.5.4.5:; --source include/show_msg.inc @@ -183,7 +183,7 @@ let $message= Testcase 3.5.4.5:; Use db_drop5; eval create table t1 (f1 char(50)) engine=$engine_type; grant INSERT, SELECT on t1 to test_general; - Create trigger trg5 BEFORE INSERT on t1 + Create trigger trg5 BEFORE INSERT on t1 for each row set new.f1='Trigger 3.5.4.5'; connection con1_general; Use db_drop5; @@ -204,8 +204,8 @@ let $message= Testcase 3.5.4.5:; #Cleanup connection con1_super; --disable_warnings - --error 1360 - drop trigger trg5; + --error ER_TRG_DOES_NOT_EXIST + drop trigger trg5; drop database if exists db_drop5; --enable_warnings revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; @@ -223,55 +223,55 @@ let $message= Testcase 3.5.5:; use test; #Section 3.5.5.1 -# Test case: Ensure that, if CREATE TRIGGER is executed with a non-existent +# Test case: Ensure that, if CREATE TRIGGER is executed with a non-existent # subject table, the statement fails with an appropriate error message. let $message= Testcase 3.5.5.1:; --source include/show_msg.inc - --error 1146 + --error ER_NO_SUCH_TABLE Create trigger trg1 before INSERT on t100 for each row set new.f2=1000; #Section 3.5.5.2 -# Test case: Ensure that, if CREATE TRIGGER is executed with a temporary table +# Test case: Ensure that, if CREATE TRIGGER is executed with a temporary table # as the subject table, the statement fails with an appropriate error message. let $message= Testcase 3.5.5.2:; --source include/show_msg.inc Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); - --error 1361 - Create trigger trg2 before INSERT + --error ER_TRG_ON_VIEW_OR_TEMP_TABLE + Create trigger trg2 before INSERT on t1_temp for each row set new.f2=9999; #Cleanup - --disable_warnings + --disable_warnings drop table t1_temp; --enable_warnings #Section 3.5.5.3 -# Test case: Ensure that, if CREATE TRIGGER is executed with a view as the subject +# Test case: Ensure that, if CREATE TRIGGER is executed with a view as the subject # table, the statement fails with an appropriate error message. let $message= Testcase 3.5.5.3:; --source include/show_msg.inc Create view vw3 as select f118 from tb3; -# OBN Not sure why the server is returning error 1347 - --error 1347 - Create trigger trg3 before INSERT +# OBN Not sure why the server is returning error ER_WRONG_OBJECT + --error ER_WRONG_OBJECT + Create trigger trg3 before INSERT on vw3 for each row set new.f118='s'; #Cleanup - --disable_warnings + --disable_warnings drop view vw3; --enable_warnings #Section 3.5.5.4 -# Test case: Ensure that, if CREATE TRIGGER is executed with a table that resides -# in a different database than in which the trigger will reside, the +# Test case: Ensure that, if CREATE TRIGGER is executed with a table that resides +# in a different database than in which the trigger will reside, the # statement fails with an appropriate error message; that is, ensure that # the trigger and its subject table must reside in the same database. let $message= Testcase 3.5.5.4:; @@ -283,7 +283,7 @@ let $message= Testcase 3.5.5.4:; use dbtest_two; eval create table t2 (f1 char(15)) engine=$engine_type; use dbtest_one; - --error 1435 + --error ER_TRG_IN_WRONG_SCHEMA create trigger trg4 before INSERT on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4'; grant INSERT, SELECT on dbtest_two.t2 to test_general; @@ -294,11 +294,11 @@ let $message= Testcase 3.5.5.4:; Select * from t2; use dbtest_one; Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); - Select * from dbtest_two.t2; + Select * from dbtest_two.t2 order by f1; #Cleanup connection con1_super; - --disable_warnings + --disable_warnings revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; DROP DATABASE if exists dbtest_one; drop database if EXISTS dbtest_two; @@ -316,7 +316,7 @@ let $message= Testcase 3.5.6:; use test; #Section 3.5.6.1 -# Test case: Ensure that a trigger definition can specify a trigger action time of BEFORE. +# Test case: Ensure that a trigger definition can specify a trigger action time of BEFORE. # See section 3.5.1.1 let $message= Testcase 3.5.6.1 (see Testcase 3.5.1.1); --source include/show_msg.inc @@ -328,37 +328,37 @@ let $message= Testcase 3.5.6.2 (see Testcase 3.5.1.1); --source include/show_msg.inc #Section 3.5.6.3 -# Test case: Ensure that a trigger definition that specifies a trigger action -# time that is not either BEFORE or AFTER fails, with an appropriate +# Test case: Ensure that a trigger definition that specifies a trigger action +# time that is not either BEFORE or AFTER fails, with an appropriate # error message, at CREATE TRIGGER time. let $message= Testcase 3.5.6.3:; --source include/show_msg.inc - --error 1064 + --error ER_PARSE_ERROR Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25; - --error 1064 + --error ER_PARSE_ERROR Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15; -#Cleanup +#Cleanup # OBN - Although none of the above should have been created we should do a cleanup # since if they have been created, not dropping them will affect following # tests. --disable_warnings - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger tb3.trg3_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger tb3.trg3_2; --enable_warnings #Section 3.5.6.4 -# Test case: Ensure that a trigger defined with a trigger action time of BEFORE -# always executes its triggered action immediately before the trigger event. +# Test case: Ensure that a trigger defined with a trigger action time of BEFORE +# always executes its triggered action immediately before the trigger event. # See section 3.5.1.1 let $message= Testcase 3.5.6.4 (see Testcase 3.5.1.1); --source include/show_msg.inc #Section 3.5.6.5 -# Test case: Ensure that a trigger defined with a trigger action time of AFTER +# Test case: Ensure that a trigger defined with a trigger action time of AFTER # always executes its triggered action immediately after the trigger event. let $message= Testcase 3.5.6.5 (see Testcase 3.5.1.1); --source include/show_msg.inc @@ -384,40 +384,40 @@ let $message= Testcase 3.5.7.3 (see Testcase 3.5.1.1); --source include/show_msg.inc #Section 3.5.7.4 -# Test case: Ensure that a trigger definition that specifies a trigger event that -# is not either INSERT, UPDATE or DELETE fails, with an appropriate error +# Test case: Ensure that a trigger definition that specifies a trigger event that +# is not either INSERT, UPDATE or DELETE fails, with an appropriate error # message, at CREATE TRIGGER time. let $message= Testcase 3.5.7.4:; --source include/show_msg.inc - --error 1064 + --error ER_PARSE_ERROR Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5; - --error 1064 + --error ER_PARSE_ERROR Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1; -#Cleanup +#Cleanup # OBN - Although none of the above should have been created we should do a cleanup # since if they have been created, not dropping them will affect following # tests. --disable_warnings - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger tb3.trg4_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger tb3.trg4_2; --enable_warnings -#Section 3.5.7.5 / 3.5.7.6 -# Test case: Ensure that it is not possible to create multiple BEFORE INSERT triggers +#Section 3.5.7.5 / 3.5.7.6 +# Test case: Ensure that it is not possible to create multiple BEFORE INSERT triggers # on the same table, even if the triggers have different names / different # triggered actions. let $message= Testcase 3.5.7.5 / 3.5.7.6:; --source include/show_msg.inc - Create trigger trg5_1 BEFORE INSERT + Create trigger trg5_1 BEFORE INSERT on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; - --error ER_NOT_SUPPORTED_YET - Create trigger trg5_2 BEFORE INSERT + --error ER_NOT_SUPPORTED_YET + Create trigger trg5_2 BEFORE INSERT on tb3 for each row set new.f122='Trigger2 3.5.7.5'; Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); @@ -426,27 +426,27 @@ let $message= Testcase 3.5.7.5 / 3.5.7.6:; Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg5_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg5_2; delete from tb3 where f121='Test 3.5.7.5/6'; --enable_warnings -#Section 3.5.7.7 / 3.5.7.8 -# Test case: Ensure that it is not possible to create multiple AFTER INSERT triggers +#Section 3.5.7.7 / 3.5.7.8 +# Test case: Ensure that it is not possible to create multiple AFTER INSERT triggers # on the same table, even if the triggers have different names / different # triggered actions. let $message= Testcase 3.5.7.7 / 3.5.7.8:; --source include/show_msg.inc set @test_var='Before trig 3.5.7.7'; - Create trigger trg6_1 AFTER INSERT + Create trigger trg6_1 AFTER INSERT on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; - --error ER_NOT_SUPPORTED_YET - Create trigger trg6_2 AFTER INSERT + --error ER_NOT_SUPPORTED_YET + Create trigger trg6_2 AFTER INSERT on tb3 for each row set @test_var='Trigger2 3.5.7.7'; select @test_var; @@ -458,26 +458,26 @@ let $message= Testcase 3.5.7.7 / 3.5.7.8:; select @test_var; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg6_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg6_2; delete from tb3 where f121='Test 3.5.7.7/8'; --enable_warnings #Section 3.5.7.9 / 3.5.7.10 -# Test case: Ensure that it is not possible to create multiple BEFORE UPDATE triggers -# on the same table, even if the triggers have different names / different +# Test case: Ensure that it is not possible to create multiple BEFORE UPDATE triggers +# on the same table, even if the triggers have different names / different # triggered actions. let $message= Testcase 3.5.7.9/10:; --source include/show_msg.inc - Create trigger trg7_1 BEFORE UPDATE + Create trigger trg7_1 BEFORE UPDATE on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; - --error ER_NOT_SUPPORTED_YET - Create trigger trg7_2 BEFORE UPDATE + --error ER_NOT_SUPPORTED_YET + Create trigger trg7_2 BEFORE UPDATE on tb3 for each row set new.f122='Trigger2 3.5.7.9'; Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); @@ -486,25 +486,25 @@ let $message= Testcase 3.5.7.9/10:; Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg7_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg7_2; delete from tb3 where f121='Test 3.5.7.9/10'; #Section 3.5.7.11 / 3.5.7.12 -# Test case: Ensure that it is not possible to create multiple AFTER UPDATE triggers +# Test case: Ensure that it is not possible to create multiple AFTER UPDATE triggers # on the same table, even if the triggers have different names / different -# triggered actions. +# triggered actions. let $message= Testcase 3.5.7.11/12:; --source include/show_msg.inc set @test_var='Before trig 3.5.7.11'; - Create trigger trg8_1 AFTER UPDATE + Create trigger trg8_1 AFTER UPDATE on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; - --error ER_NOT_SUPPORTED_YET - Create trigger trg8_2 AFTER UPDATE + --error ER_NOT_SUPPORTED_YET + Create trigger trg8_2 AFTER UPDATE on tb3 for each row set @test_var='Trigger2 3.5.7.11'; @@ -518,25 +518,25 @@ let $message= Testcase 3.5.7.11/12:; delete from tb3 where f121='Test 3.5.7.11/12'; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg8_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg8_2; delete from tb3 where f121='Test 3.5.7.11/12'; #Section 3.5.7.13 / 3.5.7.14 -# Test case: Ensure that it is not possible to create multiple BEFORE DELETE triggers +# Test case: Ensure that it is not possible to create multiple BEFORE DELETE triggers # on the same table, even if the triggers have different names / different # triggered actions. let $message= Testcase 3.5.7.13/14:; --source include/show_msg.inc set @test_var=1; - Create trigger trg9_1 BEFORE DELETE + Create trigger trg9_1 BEFORE DELETE on tb3 for each row set @test_var=@test_var+1; - --error ER_NOT_SUPPORTED_YET - Create trigger trg9_2 BEFORE DELETE + --error ER_NOT_SUPPORTED_YET + Create trigger trg9_2 BEFORE DELETE on tb3 for each row set @test_var=@test_var+10; select @test_var; @@ -550,29 +550,29 @@ let $message= Testcase 3.5.7.13/14:; select @test_var; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg9_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg9_2; delete from tb3 where f121='Test 3.5.7.13/14'; #Section 3.5.7.15 / 3.5.7.16 -# Test case: Ensure that it is not possible to create multiple AFTER DELETE triggers -# on the same table, even if the triggers have different names / different +# Test case: Ensure that it is not possible to create multiple AFTER DELETE triggers +# on the same table, even if the triggers have different names / different # triggered actions. let $message= Testcase 3.5.7.15/16:; --source include/show_msg.inc set @test_var=1; - Create trigger trg_3_406010_1 AFTER DELETE + Create trigger trg_3_406010_1 AFTER DELETE on tb3 for each row set @test_var=@test_var+5; - --error ER_NOT_SUPPORTED_YET - Create trigger trg_3_406010_2 AFTER DELETE + --error ER_NOT_SUPPORTED_YET + Create trigger trg_3_406010_2 AFTER DELETE on tb3 for each row set @test_var=@test_var+50; - --error 1359 - Create trigger trg_3_406010_1 AFTER INSERT + --error ER_TRG_ALREADY_EXISTS + Create trigger trg_3_406010_1 AFTER INSERT on tb3 for each row set @test_var=@test_var+1; select @test_var; @@ -586,18 +586,18 @@ let $message= Testcase 3.5.7.15/16:; select @test_var; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg_3_406010_1; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg_3_406010_2; delete from tb3 where f121='Test 3.5.7.15/16'; --enable_warnings #Section 3.5.7.17 -# Test case: Ensure that it is possible to have a BEFORE INSERT, an AFTER INSERT, -# a BEFORE UPDATE, an AFTER UPDATE, a BEFORE DELETE, and an AFTER DELETE -# trigger on the same table; that is, ensure that every persistent base +# Test case: Ensure that it is possible to have a BEFORE INSERT, an AFTER INSERT, +# a BEFORE UPDATE, an AFTER UPDATE, a BEFORE DELETE, and an AFTER DELETE +# trigger on the same table; that is, ensure that every persistent base # table may be the subject table for exactly six triggers let $message= Testcase 3.5.7.17 (see Testcase 3.5.1.1); --source include/show_msg.inc diff --git a/mysql-test/suite/funcs_1/triggers/triggers_08.inc b/mysql-test/suite/funcs_1/triggers/triggers_08.inc index 300080e455d..48db2cbf566 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_08.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_08.inc @@ -1,7 +1,7 @@ #====================================================================== # -# Trigger Tests -# (test case numbering refer to requirement document TP v1.1) +# Trigger Tests +# (test case numbering refer to requirement document TP v1.1) #====================================================================== # General setup for Trigger tests @@ -29,22 +29,20 @@ let $message= Testcase: 3.5:; ################################# #Section 3.5.8.1 -# Testcase: Ensure that the triggered action of every trigger always executes +# Testcase: Ensure that the triggered action of every trigger always executes # correctly and the results in all expected changes made to the database let $message= Testcase 3.5.8.1: (implied in previous tests); --source include/show_msg.inc -# OBN - FIXME - Missing 3.5.8.1 need to add - #Section 3.5.8.2 -# Testcase: Ensure that the triggered actions of every trigger never results +# Testcase: Ensure that the triggered actions of every trigger never results # in an unexpected change made to the database. let $message= Testcase 3.5.8.2: (implied in previous tests); --source include/show_msg.inc #Section 3.5.8.3 / 3.5.8.4 -#Test case: Ensure that the triggered action can any valid SQL statement / set +#Test case: Ensure that the triggered action can any valid SQL statement / set # of valid SQL statements, provided the statements are written within # a BEGIN/END compound statement construct # OBN - At this point the tests focuses on the the INSERT/UPDATE/DELETE SQL statements @@ -58,17 +56,17 @@ let $message= Testcase 3.5.8.3/4:; grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; grant LOCK TABLES on db_test.* to test_general; Use db_test; - eval create table t1_i ( + eval create table t1_i ( i120 char ascii not null DEFAULT b'101', i136 smallint zerofill not null DEFAULT 999, i144 int zerofill not null DEFAULT 99999, i163 decimal (63,30)) engine=$engine_type; - eval create table t1_u ( + eval create table t1_u ( u120 char ascii not null DEFAULT b'101', u136 smallint zerofill not null DEFAULT 999, u144 int zerofill not null DEFAULT 99999, u163 decimal (63,30)) engine=$engine_type; - eval create table t1_d ( + eval create table t1_d ( d120 char ascii not null DEFAULT b'101', d136 smallint zerofill not null DEFAULT 999, d144 int zerofill not null DEFAULT 99999, @@ -93,26 +91,29 @@ let $message= 3.5.8.4 - multiple SQL; delimiter //; Create trigger trg1 AFTER INSERT on tb3 for each row BEGIN - insert into db_test.t1_i + insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); - update db_test.t1_u + update db_test.t1_u set u144=new.f144, u163=new.f163 - where u136=new.f136; + where u136=new.f136; delete from db_test.t1_d where d136= new.f136; - select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u - where u136= new.f136; - END// + select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u + where u136= new.f136; + END// delimiter ;// # Test trigger execution - multiple SQL connection con2_general; Use test; set @test_var=0; - Insert into tb3 (f120, f122, f136, f144, f163) + Insert into tb3 (f120, f122, f136, f144, f163) values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; + --sorted_result select * from db_test.t1_i; + --sorted_result select * from db_test.t1_u; + --sorted_result select * from db_test.t1_d; select @test_var; @@ -121,16 +122,22 @@ let $message= 3.5.8.4 - single SQL - insert; --source include/show_msg.inc # Trigger definition - single SQL Insert connection con2_super; + delimiter //; Create trigger trg2 BEFORE UPDATE on tb3 for each row - insert into db_test.t1_i + BEGIN + insert into db_test.t1_i values (new.f120, new.f136, new.f144, new.f163); + END// + delimiter ;// # Trigger exeution - single SQL Insert connection con2_general; + Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; + select * from db_test.t1_i order by i120; update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' where f122='Test 3.5.8.4'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; - select * from db_test.t1_i; + select * from db_test.t1_i order by i120; let $message= 3.5.8.4 - single SQL - update; @@ -139,16 +146,16 @@ let $message= 3.5.8.4 - single SQL - update; connection con2_super; drop trigger trg2; Create trigger trg3 BEFORE UPDATE on tb3 for each row - update db_test.t1_u + update db_test.t1_u set u120=new.f120 - where u136=new.f136; + where u136=new.f136; # Trigger exeution - single SQL - update; connection con2_general; update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' where f122='Test 3.5.8.4-Single Insert'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; - select * from db_test.t1_u; + select * from db_test.t1_u order by u120; let $message= 3.5.8.3/4 - single SQL - delete; @@ -162,12 +169,12 @@ let $message= 3.5.8.3/4 - single SQL - delete; # Trigger exeution - single SQL delete connection con2_general; #lock tables tb3 write, db_test.t1_i write, db_test.t1_u write, db_test.t1_d write; - update tb3 set f120='D', f136=444, + update tb3 set f120='D', f136=444, f122='Test 3.5.8.4-Single Delete' where f122='Test 3.5.8.4-Single Update'; #unlock tables; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; - select * from db_test.t1_d; + select * from db_test.t1_d order by d120; let $message= 3.5.8.3/4 - single SQL - select; @@ -176,13 +183,13 @@ let $message= 3.5.8.3/4 - single SQL - select; connection con2_super; drop trigger trg4; Create trigger trg5 AFTER UPDATE on tb3 for each row - select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u - where u136= new.f136; + select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u + where u136= new.f136; # Trigger exeution - single SQL select connection con2_general; set @test_var=0; - update tb3 set f120='S', f136=111, + update tb3 set f120='S', f136=111, f122='Test 3.5.8.4-Single Select' where f122='Test 3.5.8.4-Single Delete'; Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; @@ -190,7 +197,7 @@ let $message= 3.5.8.3/4 - single SQL - select; #Cleanup connection default; - --disable_warnings + --disable_warnings drop trigger trg1; drop trigger trg5; drop database if exists db_test; @@ -200,8 +207,8 @@ let $message= 3.5.8.3/4 - single SQL - select; #Section 3.5.8.5 (IF) -# Test case: Ensure that the stored procedure-specific flow control statement like IF -# works correctly when it is a part of the triggered action portion of a +# Test case: Ensure that the stored procedure-specific flow control statement like IF +# works correctly when it is a part of the triggered action portion of a # trigger definition. let $message= Testcase 3.5.8.5 (IF):; --source include/show_msg.inc @@ -219,7 +226,7 @@ let $message= Testcase 3.5.8.5 (IF):; IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; - ELSE + ELSE set @test_var2='2nd else', new.f120='D'; END IF; END// @@ -227,50 +234,50 @@ let $message= Testcase 3.5.8.5 (IF):; set @test_var='Empty', @test_var2=0; Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; + select f120, f122, f136, @test_var, @test_var2 + from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; + select f120, f122, f136, @test_var, @test_var2 + from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; + select f120, f122, f136, @test_var, @test_var2 + from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; + select f120, f122, f136, @test_var, @test_var2 + from tb3 where f122 = 'Test 3.5.8.5-if' order by f136; delimiter //; - --error 1064 + --error ER_PARSE_ERROR create trigger trg3 before update on tb3 for each row BEGIN ELSEIF new.f120='2' then END IF; END// - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg3// - --error 1064 + --error ER_PARSE_ERROR create trigger trg4 before update on tb3 for each row BEGIN IF (new.f120='4') and (new.f136=10) then set @test_var2='2nd if', new.f120='d'; - ELSE + ELSE set @test_var2='2nd else', new.f120='D'; END// delimiter ;// - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg2; delete from tb3 where f121='Test 3.5.8.5-if'; --enable_warnings #Section 3.5.8.5 (CASE) -# Test case: Ensure that the stored procedure-specific flow control statement -# like CASE works correctly when it is a part of the triggered action +# Test case: Ensure that the stored procedure-specific flow control statement +# like CASE works correctly when it is a part of the triggered action # portion of a trigger definition. let $message= Testcase 3.5.8.5-case:; --source include/show_msg.inc @@ -310,34 +317,34 @@ let $message= Testcase 3.5.8.5-case:; delimiter ;// set @test_var='Empty'; - Insert into tb3 (f120, f122, f136, f144) + Insert into tb3 (f120, f122, f136, f144) values ('a', 'Test 3.5.8.5-case', 5, 7); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136, f144) + select f120, f122, f136, f144, @test_var + from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; + Insert into tb3 (f120, f122, f136, f144) values ('b', 'Test 3.5.8.5-case', 71,16); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136, f144) + select f120, f122, f136, f144, @test_var + from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; + Insert into tb3 (f120, f122, f136, f144) values ('c', 'Test 3.5.8.5-case', 80,1); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136) + select f120, f122, f136, f144, @test_var + from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; + Insert into tb3 (f120, f122, f136) values ('d', 'Test 3.5.8.5-case', 152); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136, f144) + select f120, f122, f136, f144, @test_var + from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; + Insert into tb3 (f120, f122, f136, f144) values ('e', 'Test 3.5.8.5-case', 200, 8); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - --error 0, 1339 - Insert into tb3 (f120, f122, f136, f144) + select f120, f122, f136, f144, @test_var + from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; + --error 0, ER_SP_CASE_NOT_FOUND + Insert into tb3 (f120, f122, f136, f144) values ('f', 'Test 3.5.8.5-case', 100, 8); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; + select f120, f122, f136, f144, @test_var + from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136; delimiter //; - --error 1064 + --error ER_PARSE_ERROR create trigger trg3a before update on tb3 for each row BEGIN CASE @@ -345,11 +352,11 @@ let $message= Testcase 3.5.8.5-case:; END// delimiter ;// - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg3a; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg3; delete from tb3 where f121='Test 3.5.8.5-case'; --enable_warnings @@ -363,53 +370,53 @@ let $message= Testcase 3.5.8.5-loop/leave:; delimiter //; Create trigger trg4 after insert on tb3 for each row - BEGIN + BEGIN set @counter=0, @flag='Initial'; - Label1: loop + Label1: loop if new.f136 new.f136 END REPEAT rp_label; END// delimiter ;// set @counter1= 0, @counter2= 0; - Insert into tb3 (f122, f136) + Insert into tb3 (f122, f136) values ('Test 3.5.8.5-repeat', 13); select @counter1, @counter2; delimiter //; - --error 1064 + --error ER_PARSE_ERROR Create trigger trg6_2 after update on tb3 for each row BEGIN - REPEAT - SET @counter2 = @counter2 + 1; + REPEAT + SET @counter2 = @counter2 + 1; END// delimiter ;// #Cleanup - --disable_warnings + --disable_warnings drop trigger trg6; delete from tb3 where f122='Test 3.5.8.5-repeat'; --enable_warnings #Section 3.5.8.5 (WHILE) -# Test case: Ensure that the stored procedure-specific flow control -# statements WHILE, work correctly when they are part of +# Test case: Ensure that the stored procedure-specific flow control +# statements WHILE, work correctly when they are part of # the triggered action portion of a trigger definition. let $message= Testcase 3.5.8.5-while:; --source include/show_msg.inc delimiter //; Create trigger trg7 after insert on tb3 for each row - wl_label: WHILE @counter1 < new.f136 DO - SET @counter1 = @counter1 + 1; + wl_label: WHILE @counter1 < new.f136 DO + SET @counter1 = @counter1 + 1; IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; END IF; - SET @counter2 = @counter2 + 1; + SET @counter2 = @counter2 + 1; END WHILE wl_label// delimiter ;// set @counter1= 0, @counter2= 0; - Insert into tb3 (f122, f136) + Insert into tb3 (f122, f136) values ('Test 3.5.8.5-while', 7); select @counter1, @counter2; delimiter //; - --error 1064 + --error ER_PARSE_ERROR Create trigger trg7_2 after update on tb3 for each row BEGIN - WHILE @counter1 < new.f136 - SET @counter1 = @counter1 + 1; + WHILE @counter1 < new.f136 + SET @counter1 = @counter1 + 1; END// delimiter ;// #Cleanup - --disable_warnings + --disable_warnings delete from tb3 where f122='Test 3.5.8.5-while'; drop trigger trg7; --enable_warnings #Section 3.5.8.6 -# Test case: Ensure that a trigger definition that includes a CALL to a stored -# procedure fails, at CREATE TRIGGER time, with an appropriate error -# message -# OBN - requirement void since allowed -# Fails due to Bug 9909 the bug allows the trigger to be created -# and fails in execution time +# Test case: Ensure that a trigger definition that includes a CALL to a stored +# procedure fails, at CREATE TRIGGER time, with an appropriate error +# message. Not more valid requirement. let $message= Testcase 3.5.8.6: (requirement void); --source include/show_msg.inc + delimiter //; + CREATE PROCEDURE sp_01 () BEGIN set @v1=1; END// + + CREATE TRIGGER trg8_1 BEFORE UPDATE ON tb3 FOR EACH ROW + BEGIN + CALL sp_01 (); + END// + delimiter ;// + Insert into tb3 (f120, f122, f136) values ('6', 'Test 3.5.8.6-insert', 101); + update tb3 set f120='S', f136=111, + f122='Test 3.5.8.6-tr8_1' + where f122='Test 3.5.8.6-insert'; + select f120, f122 + from tb3 where f122 like 'Test 3.5.8.6%' order by f120; + DROP TRIGGER trg8_1; + DROP PROCEDURE sp_01; #Section 3.5.8.7 -# Test case: Ensure that a trigger definition that includes a -# transaction-delimiting statement (e.g. COMMIT, -# ROLLBACK, START TRANSACTION) fails, at CREATE TRIGGER +# Test case: Ensure that a trigger definition that includes a +# transaction-delimiting statement (e.g. COMMIT, +# ROLLBACK, START TRANSACTION) fails, at CREATE TRIGGER # time, with an appropriate error message. -# OBN - Fails due to Bug ____ -let $message= Testcase 3.5.8.7: (Disabled as a result of bug _____); +let $message= Testcase 3.5.8.7; --source include/show_msg.inc + + delimiter //; + --error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG + Create trigger trg9_1 before update on tb3 for each row + BEGIN + Start transaction; + Set new.f120='U'; + Commit; + END// -# --error 1314 -# Create trigger trg9_1 before update on tb3 for each row -# BEGIN -# Start transaction; -# Set new.f120='U'; -# Commit; -# END; - -# --error 1314 -# Create trigger trg9_2 before delete on tb3 for each row -# BEGIN -# Start transaction; -# Set @var2=old.f120; -# Rollback; -# END; + --error ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG + Create trigger trg9_2 before delete on tb3 for each row + BEGIN + Start transaction; + Set @var2=old.f120; + Rollback; + END// + delimiter ;// # Cleanup section 3.5 diff --git a/mysql-test/suite/funcs_1/triggers/triggers_09.inc b/mysql-test/suite/funcs_1/triggers/triggers_09.inc index 4eaaf3e35e2..c84b89fa457 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_09.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_09.inc @@ -1,7 +1,7 @@ #====================================================================== # -# Trigger Tests -# (test case numbering refer to requirement document TP v1.1) +# Trigger Tests +# (test case numbering refer to requirement document TP v1.1) #====================================================================== @@ -11,15 +11,15 @@ ################################# #Section 3.5.9.1 -#Test case: Ensure that every trigger executes its triggered action on each row +#Test case: Ensure that every trigger executes its triggered action on each row # that meets the conditions stated in the trigger definition. #Section 3.5.9.2 -#Testcase: Ensure that a trigger never executes its triggered action on any row +#Testcase: Ensure that a trigger never executes its triggered action on any row # that doesn't meet the conditions stated in the trigger definition. let $message= Testcase 3.5.9.1/2:; --source include/show_msg.inc - Create trigger trg1 BEFORE UPDATE on tb3 for each row + Create trigger trg1 BEFORE UPDATE on tb3 for each row set new.f142 = 94087, @counter=@counter+1; --disable_query_log select count(*) as TotalRows from tb3; @@ -29,22 +29,22 @@ let $message= Testcase 3.5.9.1/2:; --enable_query_log set @counter=0; Update tb3 Set f142='1' where f130<100; - select count(*) as ExpectedChanged, @counter as TrigCounter + select count(*) as ExpectedChanged, @counter as TrigCounter from tb3 where f142=94087; - select count(*) as ExpectedNotChange from tb3 + select count(*) as ExpectedNotChange from tb3 where f130<100 and f142<>94087; - select count(*) as NonExpectedChanged from tb3 + select count(*) as NonExpectedChanged from tb3 where f130>=130 and f142=94087; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg1; --enable_warnings #Section 3.5.9.3 -#Test case: Ensure that a reference to OLD. always correctly refers -# to the values of the specified column of the subject table before a +#Test case: Ensure that a reference to OLD. always correctly refers +# to the values of the specified column of the subject table before a # data row is updated or deleted. let $message= Testcase 3.5.9.3:; --source include/show_msg.inc @@ -71,46 +71,46 @@ let $message= Testcase 3.5.9.3:; --disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, + set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, @tr_var_b4_136=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, + set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, @tr_var_af_136=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; --enable_query_log - Insert into tb3 (f122, f136, f163) + Insert into tb3 (f122, f136, f163) values ('Test 3.5.9.3', 7, 123.17); Update tb3 Set f136=8 where f122='Test 3.5.9.3'; - select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; --disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, + set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, @tr_var_b4_136=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, + set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, @tr_var_af_136=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; --enable_query_log delete from tb3 where f122='Test 3.5.9.3'; - select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136; + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_163; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg2_a; drop trigger trg2_b; drop trigger trg2_c; @@ -118,8 +118,8 @@ let $message= Testcase 3.5.9.3:; --enable_warnings #Section 3.5.9.4 -#Test case: Ensure that a reference to NEW. always correctly refers -# to the values of the specified column of the subject table after an +#Test case: Ensure that a reference to NEW. always correctly refers +# to the values of the specified column of the subject table after an # existing data row has been updated or a new data row has been inserted. let $message= Testcase 3.5.9.4:; --source include/show_msg.inc @@ -145,48 +145,48 @@ let $message= Testcase 3.5.9.4:; @tr_var_af_151=new.f151, @tr_var_af_163=new.f163; --disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, + set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, + set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; --enable_query_log - Insert into tb3 (f122, f136, f151, f163) + Insert into tb3 (f122, f136, f151, f163) values ('Test 3.5.9.4', 7, DEFAULT, 995.24); - select f118, f121, f122, f136, f151, f163 from tb3 - where f122 like 'Test 3.5.9.4%'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select f118, f121, f122, f136, f151, f163 from tb3 + where f122 like 'Test 3.5.9.4%' order by f163; + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; --disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, + set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, + set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; --enable_query_log Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL where f122='Test 3.5.9.4'; - select f118, f121, f122, f136, f151, f163 from tb3 - where f122 like 'Test 3.5.9.4-trig'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, + select f118, f121, f122, f136, f151, f163 from tb3 + where f122 like 'Test 3.5.9.4-trig' order by f163; + select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, + select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; #Cleanup - --disable_warnings + --disable_warnings drop trigger trg3_a; drop trigger trg3_b; drop trigger trg3_c; @@ -196,121 +196,119 @@ let $message= Testcase 3.5.9.4:; #Section 3.5.9.5 -# Test case: Ensure that the definition of an INSERT trigger can include a +# Test case: Ensure that the definition of an INSERT trigger can include a # reference to NEW. . let $message= Testcase 3.5.9.5: (implied in previous tests); --source include/show_msg.inc #Section 3.5.9.6 -# Test case: Ensure that the definition of an INSERT trigger cannot include +# Test case: Ensure that the definition of an INSERT trigger cannot include # a reference to OLD. . let $message= Testcase 3.5.9.6:; --source include/show_msg.inc - --error 1363 + --error ER_TRG_NO_SUCH_ROW_IN_TRG create trigger trg4a before insert on tb3 for each row set @temp1= old.f120; - --error 1362 + --error ER_TRG_CANT_CHANGE_ROW create trigger trg4b after insert on tb3 for each row set old.f120= 'test'; #Cleanup - --disable_warnings - --error 0, 1360 + --disable_warnings + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4a; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg4b; --enable_warnings #Section 3.5.9.7 -# Test case: Ensure that the definition of an UPDATE trigger can include a +# Test case: Ensure that the definition of an UPDATE trigger can include a # reference to NEW. . let $message= Testcase 3.5.9.7: (implied in previous tests); --source include/show_msg.inc #Section 3.5.9.8 -# Test case: Ensure that the definition of an UPDATE trigger cannot include a +# Test case: Ensure that the definition of an UPDATE trigger cannot include a # reference to OLD. . let $message= Testcase 3.5.9.8: (implied in previous tests); --source include/show_msg.inc #Section 3.5.9.9 -# Test case: Ensure that the definition of a DELETE trigger cannot include a +# Test case: Ensure that the definition of a DELETE trigger cannot include a # reference to NEW.. let $message= Testcase 3.5.9.9:; --source include/show_msg.inc - --error 1363 + --error ER_TRG_NO_SUCH_ROW_IN_TRG create trigger trg5a before DELETE on tb3 for each row set @temp1=new.f122; - --error 1363 + --error ER_TRG_NO_SUCH_ROW_IN_TRG create trigger trg5b after DELETE on tb3 for each row set new.f122='test'; -let $message= The above returns the wrong error, should be error 1362 (Bug 11648) ---source include/show_msg.inc #Cleanup - --disable_warnings - --error 0, 1360 + --disable_warnings + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg5a; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg5b; --enable_warnings #Section 3.5.9.10 -# Test case: Ensure that the definition of a DELETE trigger can include a reference +# Test case: Ensure that the definition of a DELETE trigger can include a reference # to OLD.. let $message= Testcase 3.5.9.10: (implied in previous tests); --source include/show_msg.inc #Section 3.5.9.11 -# Testcase: Ensure that trigger definition that includes a referance to -# NEW. fails with an appropriate error message, +# Testcase: Ensure that trigger definition that includes a referance to +# NEW. fails with an appropriate error message, # at CREATE TRIGGER time, if the trigger event in not INSERT or UPDATE let $message= Testcase 3.5.9.11: covered by 3.5.9.9; --source include/show_msg.inc #Section 3.5.9.12 -# Testcase: Ensure that trigger definition that includes a referance to -# OLD. fails with an appropriate error message, at +# Testcase: Ensure that trigger definition that includes a referance to +# OLD. fails with an appropriate error message, at # CREATE TRIGGER time, if the trigger event is not DELETE or UPDATE let $message= Testcase 3.5.9.12: covered by 3.5.9.6; --source include/show_msg.inc #Section 3.5.9.13 -# Test case: Ensure that all references to OLD. are read-only, +# Test case: Ensure that all references to OLD. are read-only, # that is, that they cannot be used to modify a data row. let $message= Testcase 3.5.9.13:; --source include/show_msg.inc - --error 1362 + --error ER_TRG_CANT_CHANGE_ROW create trigger trg6a before UPDATE on tb3 for each row set old.f118='C', new.f118='U'; - --error 1362 + --error ER_TRG_CANT_CHANGE_ROW create trigger trg6b after INSERT on tb3 for each row set old.f136=163, new.f118='U'; - --error 1362 + --error ER_TRG_CANT_CHANGE_ROW create trigger trg6c after UPDATE on tb3 for each row set old.f136=NULL; #Cleanup - --disable_warnings - --error 0, 1360 + --disable_warnings + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg6a; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg6b; - --error 0, 1360 + --error 0, ER_TRG_DOES_NOT_EXIST drop trigger trg6c; --enable_warnings #Section 3.5.9.14 -# Test case: Ensure that all references to NEW. may be used both to +# Test case: Ensure that all references to NEW. may be used both to # read a data row and to modify a data row let $message= Testcase 3.5.9.14: (implied in previous tests); --source include/show_msg.inc diff --git a/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc b/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc index 534c4efaa86..b568fc422e4 100644 --- a/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc +++ b/mysql-test/suite/funcs_1/triggers/triggers_1011ext.inc @@ -48,7 +48,7 @@ let $message= Testcase 3.5.10.1/2/3:; Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); Insert into vw11 (f122, f151) values ('Not in View', 3); select f121, f122, f151, f163 - from tb3 where f122 like 'Test 3.5.10.1/2/3%'; + from tb3 where f122 like 'Test 3.5.10.1/2/3%' order by f151; select f121, f122, f151, f163 from vw11; select f121, f122, f151, f163 from tb3 where f122 like 'Not in View'; @@ -56,7 +56,7 @@ let $message= Testcase 3.5.10.1/2/3:; #Section 3.5.10.2 Update vw11 set f163=1; select f121, f122, f151, f163 from tb3 - where f122 like 'Test 3.5.10.1/2/3%'; + where f122 like 'Test 3.5.10.1/2/3%' order by f151; select f121, f122, f151, f163 from vw11; #Section 3.5.10.3 @@ -64,7 +64,7 @@ let $message= Testcase 3.5.10.1/2/3:; Select @test_var as 'before delete'; delete from vw11 where f151=1; select f121, f122, f151, f163 from tb3 - where f122 like 'Test 3.5.10.1/2/3%'; + where f122 like 'Test 3.5.10.1/2/3%' order by f151; select f121, f122, f151, f163 from vw11; Select @test_var as 'after delete'; @@ -94,11 +94,11 @@ let $message= Testcase 3.5.10.4:; set @counter= 0; select @counter as 'Rows Loaded Before'; - --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR - eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; + --replace_result $MYSQLTEST_VARDIR + eval load data infile '$MYSQLTEST_VARDIR/std_data_ln/funcs_1/t9.txt' into table tb_load; select @counter as 'Rows Loaded After'; - Select * from tb_load limit 10; + Select * from tb_load order by f1 limit 10; #Cleanup --disable_warnings @@ -157,7 +157,7 @@ let $message= Testcase 3.5.10.extra:; set @counter=0; select @counter; - --error 1329 + --error ER_SP_FETCH_NO_DATA call trig_sp(); select @counter; select count(*) from tb3; @@ -233,7 +233,7 @@ let $message= Testcase y.y.y.2: Check for triggers starting triggers; #lock tables t1 write, t2_1 write, t2_2 write, t2_3 write, t2_4 write, t3 write; insert into t1 values (1); #unlock tables; - select * from t3; + select * from t3 order by f1; #Cleanup --disable_warnings @@ -271,13 +271,13 @@ let $message= Testcase y.y.y.3: Circular trigger reference; create trigger tr4 after insert on t4 for each row insert into t1 (f1) values (new.f4+1); - # OBN See bug 11896 - --error 1442 + # Bug#11896 Partial locking in case of recursive trigger definittions + --error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG insert into t1 values (1); - select * from t1; - select * from t2; - select * from t3; - select * from t4; + select * from t1 order by f1; + select * from t2 order by f2; + select * from t3 order by f3; + select * from t4 order by f4; #Cleanup --disable_warnings @@ -294,7 +294,7 @@ let $message= Testcase y.y.y.3: Circular trigger reference; #Section y.y.y.4 # Testcase: create recursive trigger/storedprocedures conditions -let $message= Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889); +let $message= Testcase y.y.y.4: Recursive trigger/SP references; --source include/show_msg.inc set @sql_mode='traditional'; @@ -327,7 +327,7 @@ set @sql_mode='traditional'; set @counter=0; select @counter; - --error 1456 + --error ER_SP_RECURSION_LIMIT call trig_sp(); select @counter; select count(*) from tb3; @@ -337,7 +337,7 @@ set @sql_mode='traditional'; set @@max_sp_recursion_depth= 10; set @counter=0; select @counter; - --error 1442 + --error ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG call trig_sp(); select @counter; select count(*) from tb3; @@ -381,12 +381,12 @@ let $message= Testcase y.y.y.5: Roleback of nested trigger references; set autocommit=0; start transaction; - --error 1264 + --error ER_WARN_DATA_OUT_OF_RANGE insert into t1 values (1); commit; - select * from t1; - select * from t2; - select * from t3; + select * from t1 order by f1; + select * from t2 order by f2; + select * from t3 order by f3; #unlock tables; #Cleanup --disable_warnings diff --git a/mysql-test/suite/funcs_1/triggers/triggers_master.test b/mysql-test/suite/funcs_1/triggers/triggers_master.test deleted file mode 100644 index 0f6d4ff555f..00000000000 --- a/mysql-test/suite/funcs_1/triggers/triggers_master.test +++ /dev/null @@ -1,2818 +0,0 @@ -#====================================================================== -# -# Trigger Tests -# (test case numbering refer to requirement document TP v1.1) -#====================================================================== - -# OBM - ToDo -############ -# 1. Information Schema Trigger Table -# 2. Performace -############################################### - -# General setup for Trigger tests -let $message= Testcase: 3.5:; ---source include/show_msg.inc - ---disable_abort_on_error - - create User test_general@localhost; - set password for test_general@localhost = password('PWD'); - revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost; - - create User test_super@localhost; - set password for test_super@localhost = password('PWD'); - grant ALL on *.* to test_super@localhost with grant OPTION; - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (con_general,localhost,test_general,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (con_super,localhost,test_super,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - -##################################################### -################# Section 3.5.1 ##################### -# Syntax checks for CREATE TRIGGER and DROP TRIGGER # -##################################################### - -#Section 3.5.1.1 -# Testcase: Ensure that all clauses that should be supported are supported. -let $message= Testcase: 3.5.1.1:; ---source include/show_msg.inc -# OBN - This test case tests basic trigger definition and execution -# of INSERT/UPDATE/DELETE actions and BEFORE/AFTER timings. -# As such it covers the equirements in sections 3.5.6.1, 3.5.6.2, -# 3.5.6.4, 3.5.6.5, 3.5.7.1, 3.5.7.2, 3.5.7.3, 3.5.7.17 below. -# - Note currently as a result of limitations with locking tables in -# triggers, a specifc lockingof the tables is done. -# Once fixed, the locking and alias referances should be removed - -use test; -# Trigger Definition - Create trigger trg1_1 BEFORE INSERT - on tb3 for each row set @test_before = 2, new.f142 = @test_before; - Create trigger trg1_2 AFTER INSERT - on tb3 for each row set @test_after = 6; - Create trigger trg1_4 BEFORE UPDATE - on tb3 for each row set @test_before = 27, - new.f142 = @test_before, - new.f122 = 'Before Update Trigger'; - Create trigger trg1_3 AFTER UPDATE - on tb3 for each row set @test_after = '15'; - Create trigger trg1_5 BEFORE DELETE on tb3 for each row - select count(*) into @test_before from tb3 as tr_tb3 - where f121 = 'Test 3.5.1.1'; - Create trigger trg1_6 AFTER DELETE on tb3 for each row - select count(*) into @test_after from tb3 as tr_tb3 - where f121 = 'Test 3.5.1.1'; -# Trigger Execution Insert (before and after) - set @test_before = 1; - set @test_after = 5; - select @test_before, @test_after; - Insert into tb3 (f121, f122, f142, f144, f134) - values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1); - select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; - select @test_before, @test_after; - -# Trigger Execution Update (before and after) - set @test_before = 18; - set @test_after = 8; - select @test_before, @test_after; - Update tb3 set tb3.f122 = 'Update', - tb3.f142 = @test_before, - tb3.f144 = @test_after - where tb3.f121 = 'Test 3.5.1.1'; - select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; - select @test_before, @test_after; - -# Trigger Execution Delete (before and after) - Insert into tb3 (f121, f122, f142, f144, f134) - values ('Test 3.5.1.1', 'Second Row', 5, 6, 2); - set @test_before = 0; - set @test_after = 0; - select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; - select @test_before, @test_after; - Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2; - select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1'; - select @test_before, @test_after; - -#Cleanup - --disable_warnings - --error 0, 1360 - drop trigger trg1_1; - --error 0, 1360 - drop trigger trg1_2; - --error 0, 1360 - drop trigger trg1_3; - --error 0, 1360 - drop trigger trg1_4; - --error 0, 1360 - drop trigger trg1_5; - --error 0, 1360 - drop trigger trg1_6; - --enable_warnings - delete from tb3 where f121='Test 3.5.1.1'; - --enable_warnings - -#Section 3.5.1.2 -# Testcase: Ensure that all clauses that should not be supported are disallowed -# with an appropriate error message. -let $message= Testcase: 3.5.1.2:; ---source include/show_msg.inc - - --error 1064 - Create trigger trg_1 after insert - on tb3 for each statement set @x= 1; - -#Cleanup - --disable_warnings - --error 0, 1360 - drop trigger trg_1; - --enable_warnings - - -#Section 3.5.1.3 -# Testcase: Ensure that all supported clauses are supported only in the correct order. -let $message= Testcase 3.5.1.3:; ---source include/show_msg.inc - --error 1064 - CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't'; - - --error 1064 - CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'; - - --error 1064 - CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row; - - --error 1064 - CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row; - - --error 1064 - CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'; - -#Cleanup -# OBN - Although none of the above should have been created we should do a cleanup -# since if they have been created, not dropping them will affect following -# tests. - --disable_warnings - --error 0, 1360 - drop trigger trg3_1; - --error 0, 1360 - drop trigger trg3_2; - --error 0, 1360 - drop trigger trg3_3; - --error 0, 1360 - drop trigger trg3_4; - --error 0, 1360 - drop trigger trg3_5; - --enable_warnings - - -#Section 3.5.1.4 -# Testcase: Ensure that an appropriate error message is returned if a clause -# is out-of-order in an SQL statement. -# OBN - FIXME - Missing 3.5.1.4 need to add - -#Section 3.5.1.5 -# Testcase: Ensure that all clauses that are defined to be mandatory are indeed -# required to be mandatory by the MySQL server and tools -let $message= Testcase: 3.5.1.5:; ---source include/show_msg.inc - - --error 1064 - CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e'; - - --error 1064 - CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f'; - - --error 1064 - CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g'; - - --error 1064 - CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g'; - - --error 1064 - CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'; - - --error 1064 - CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g'; - -#Cleanup -# OBN - Although none of the above should have been created we should do a cleanup -# since if they have been created, not dropping them will affect following -# tests. - --disable_warnings - --error 0, 1360 - drop trigger trg4_1; - --error 0, 1360 - drop trigger trg4_2; - --error 0, 1360 - drop trigger trg4_3; - --error 0, 1360 - drop trigger trg4_4; - --error 0, 1360 - drop trigger trg4_5; - --error 0, 1360 - drop trigger trg4_6; - --enable_warnings - -#Section 3.5.1.6 -# Testcase: Ensure that any clauses that are defined to be optional are indeed -# trated as optional by MySQL server and tools -let $message= Testcase 3.5.1.6: - Need to fix; ---source include/show_msg.inc -# OBN - FIXME - Missing 3.5.1.6 need to add - -#Section 3.5.1.7 -# Testcase: Ensure that all valid, fully-qualified, and non-qualified, -# trigger names are accepted, at creation time. -let $message= Testcase 3.5.1.7: - need to fix; ---source include/show_msg.inc - - drop table if exists t1; - eval create table t1 (f1 int, f2 char(25),f3 int) engine=$engine_type; - CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1 - for each row set new.f3 = '14'; - CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ - BEFORE UPDATE on test.t1 for each row set new.f3 = '42'; - - insert into t1 (f2) values ('insert 3.5.1.7'); - select * from t1; - update t1 set f2='update 3.5.1.7'; - select * from t1; - select trigger_name from information_schema.triggers; - -#Cleanup - --disable_warnings - --error 0, 1360 - drop trigger trg5_1; - # The above trigger should be dropped since the name was trimmed. - drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ; - drop table t1; - -#Section 3.5.1.8 -# Testcase: Ensure that any invalid trigger name is never accepted, and that an -# appropriate error message is returned when the name is rejected. -let $message= Testcase 3.5.1.8:; ---source include/show_msg.inc - - --error 1064 - CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't'; - - --error 1064 - CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't'; - - --error 1064 - CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't'; - - --error 1064 - CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't'; - - --error 1064 - CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't'; - - --error 1435 - CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3 - for each row set new.f120 ='X'; - - --disable_warnings - drop database if exists trig_db; - --enable_warnings - create database trig_db; - use trig_db; - eval create table t1 (f1 integer) engine = $engine_type; - - # Can't create a trigger in a different database - use test; - --error 1435 - CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3 - for each row set @ret_trg6_2 = 5; - - # Can't create a trigger refrencing a table in a different db - use trig_db; - --error 1435 - CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3 - for each row set @ret_trg6_3 = 18; - - use test; - -#Cleanup - --disable_warnings - drop database trig_db; -# OBN - Although none of the above should have been created we should do a cleanup -# since if they have been created, not dropping them will affect following -# tests. - --error 0, 1360 - drop trigger trg6_1; - --error 0, 1360 - drop trigger trg6_3; - --enable_warnings - -#Section 3.5.1.9 -#Testcase: Ensure that a reference to a non-existent trigger is rejected with -# an appropriate error message. -let $message= Testcase 3.5.1.9:(cannot be inplemented at this point); ---source include/show_msg.inc - - -#Section 3.5.1.10 -#Testcase: Ensure that it is not possible to create two triggers with the same name on -# the same table -let $message= Testcase 3.5.1.10:; ---source include/show_msg.inc - - CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X'; - - --error 1359 - CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y'; - -#Cleanup - --disable_warnings - --error 0, 1360 - drop trigger trg7_1; - --enable_warnings - - -#Section 3.5.1.? -# Testcase: Ensure that it is not possible to create two or more triggers with -# the same name, provided each is associated with a different table. -let $message= Testcase 3.5.1.?:; ---source include/show_msg.inc - - --disable_warnings - drop table if exists t1; - drop table if exists t2; - --enable_warnings - eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; - eval create table t2 (f1 char(50), f2 integer) engine = $engine_type; - - create trigger trig before insert on t1 - for each row set new.f1 ='trig t1'; - - --error 1359 - create trigger trig before update on t2 - for each row set new.f1 ='trig t2'; - - insert into t1 value ('insert to t1',1); - select * from t1; - update t1 set f1='update to t1'; - select * from t1; - insert into t2 value ('insert to t2',2); - update t2 set f1='update to t1'; - select * from t2; - -#Cleanup - --disable_warnings - drop table t1; - drop table t2; - --error 0, 1360 - drop trigger trig; - --enable_warnings - - -#Section 3.5.1.11 -# Testcase: Ensure that it is possible to create two or more triggers with -# the same name, provided each resides in a different database -let $message= Testcase 3.5.1.11:; ---source include/show_msg.inc - - --disable_warnings - drop database if exists trig_db1; - drop database if exists trig_db2; - drop database if exists trig_db3; - --enable_warnings - create database trig_db1; - create database trig_db2; - create database trig_db3; - use trig_db1; - eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig before insert on t1 - for each row set new.f1 ='trig1', @test_var1='trig1'; - use trig_db2; - eval create table t2 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig before insert on t2 - for each row set new.f1 ='trig2', @test_var2='trig2'; - use trig_db3; - eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig before insert on t1 - for each row set new.f1 ='trig3', @test_var3='trig3'; - - set @test_var1= '', @test_var2= '', @test_var3= ''; - use trig_db1; - insert into t1 (f1,f2) values ('insert to db1 t1',1); - insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2); - insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3); - insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4); - select @test_var1, @test_var2, @test_var3; - select * from t1; - select * from trig_db2.t2; - select * from trig_db3.t1; - select * from t1; - use test; - -#Cleanup - --disable_warnings - drop database trig_db1; - drop database trig_db2; - drop database trig_db3; - --enable_warnings - -########################################### -################ Section 3.5.2 ############ -# Check for the global nature of Triggers # -########################################### - -#Section 3.5.2.1 -# Test case: Ensure that if a trigger created without a qualifying database -# name belongs to the database in use at creation time. -#Section 3.5.2.2 -# Test case: Ensure that if a trigger created with a qualifying database name -# belongs to the database specified. -#Section 3.5.2.3 -# Test case: Ensure that if a trigger created with a qualifying database name -# does not belong to the database in use at creation time unless -# the qualifying database name identifies the database that is -# also in use at creation time. -let $message= Testcase 3.5.2.1/2/3:; ---source include/show_msg.inc - - - --disable_warnings - drop database if exists trig_db1; - drop database if exists trig_db2; - --enable_warnings - create database trig_db1; - create database trig_db2; - use trig_db1; - eval create table t1 (f1 char(50), f2 integer) engine = $engine_type; - eval create table trig_db2.t1 (f1 char(50), f2 integer) engine = $engine_type; - create trigger trig1_b before insert on t1 - for each row set @test_var1='trig1_b'; - create trigger trig_db1.trig1_a after insert on t1 - for each row set @test_var2='trig1_a'; - create trigger trig_db2.trig2 before insert on trig_db2.t1 - for each row set @test_var3='trig2'; - select trigger_schema, trigger_name, event_object_table - from information_schema.triggers; - - set @test_var1= '', @test_var2= '', @test_var3= ''; - insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352); - insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352); - select @test_var1, @test_var2, @test_var3; - -#Cleanup - --disable_warnings - drop database trig_db1; - drop database trig_db2; - -########################################### -################ Section 3.5.3 ############ -# Check for the global nature of Triggers # -########################################### - -# General setup to be used in all testcases of 3.5.3 -let $message= Testcase 3.5.3:; ---source include/show_msg.inc - - --disable_warnings - drop database if exists priv_db; - --enable_warnings - create database priv_db; - use priv_db; - create table t1 (f1 char(20)); - - create User test_noprivs@localhost; - set password for test_noprivs@localhost = password('PWD'); - - create User test_yesprivs@localhost; - set password for test_yesprivs@localhost = password('PWD'); - -#Section 3.5.3.1 / 3.5.3.2 -# Test case: Ensure SUPER privilege is required to create a trigger -#Section 3.5.3.3 / 3.5.3.4 -# Test case: Ensure that root always has the SUPER privilege. -# OMR - No need to test this since SUPER priv is an existing one and not related -# or added for triggers (TP 2005-06-06) -#Section 3.5.3.5 / 3.5.3.6 -# Test case: Ensure that the SUPER privilege is required to drop a trigger. -let $message= Testcase 3.5.3.2/6:; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant ALL on *.* to test_noprivs@localhost; - revoke SUPER on *.* from test_noprivs@localhost; - show grants for test_noprivs@localhost; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER on *.* to test_yesprivs@localhost; -# Adding the minimal priv to be able to set to the db - grant SELECT on priv_db.t1 to test_yesprivs@localhost; - show grants for test_yesprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - -let $message= Testcase 3.5.3.2:; ---source include/show_msg.inc - - connection no_privs; - select current_user; - use priv_db; - - --error 1227 - create trigger trg1_1 before INSERT on t1 for each row - set new.f1 = 'trig 3.5.3.2_1-no'; - - connection default; - use priv_db; - insert into t1 (f1) values ('insert 3.5.3.2-no'); - select f1 from t1; - - connection yes_privs; - select current_user; - use priv_db; - - create trigger trg1_2 before INSERT on t1 for each row - set new.f1 = 'trig 3.5.3.2_2-yes'; - - connection default; - use priv_db; - insert into t1 (f1) values ('insert 3.5.3.2-yes'); - select f1 from t1; - -let $message= Testcase 3.5.3.6:; ---source include/show_msg.inc - - connection no_privs; - use priv_db; - - --error 1227 - drop trigger trg1_2; - - connection default; - use priv_db; - insert into t1 (f1) values ('insert 3.5.3.6-yes'); - select f1 from t1; - - connection yes_privs; - use priv_db; - - drop trigger trg1_2; - - connection default; - use priv_db; - insert into t1 (f1) values ('insert 3.5.3.6-no'); - select f1 from t1; - -# Cleanup - --disable_warnings - connection default; - --error 0, 1360 - drop trigger trg1_2; - disconnect no_privs; - disconnect yes_privs; - --enable_warnings - - -#Section 3.5.3.7 -# Test case: Ensure that use of the construct "SET NEW. = " -# fails at CREATE TRIGGER time, if the current user does not have the -# UPDATE privilege on the column specified -# Note: As a result of bug 8884 the triggers are actually created. -# Disabled because of bug 8884 - -# --- 3.5.3.7a - Privs set on a global level -let $message=Testcase 3.5.3.7a:; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant ALL on *.* to test_noprivs@localhost; - revoke UPDATE on *.* from test_noprivs@localhost; - show grants for test_noprivs@localhost; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER, UPDATE on *.* to test_yesprivs@localhost; - show grants for test_yesprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_424a,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_424a,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - - connection no_privs_424a; - select current_user; - use priv_db; - show grants; - select f1 from t1; - -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4a_1 before INSERT on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1a'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-1a'); - select f1 from t1; - --error 0, 1360 - drop trigger trg4a_1; - - connection yes_privs_424a; - use priv_db; - select current_user; - show grants; - create trigger trg4a_2 before INSERT on t1 for each row - set new.f1 = 'trig 3.5.3.7-2a'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-2b'); - select f1 from t1; - -# Cleanup - --disable_warnings - drop trigger trg4a_2; - disconnect no_privs_424a; - disconnect yes_privs_424a; - --enable_warnings - -# --- 3.5.3.7b - Privs set on a database level -let $message= Testcase 3.5.3.7b:; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant SUPER on *.* to test_noprivs; - grant ALL on priv_db.* to test_noprivs@localhost; - revoke UPDATE on priv_db.* from test_noprivs@localhost; - show grants for test_noprivs; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER on *.* to test_yesprivs@localhost; - grant UPDATE on priv_db.* to test_yesprivs@localhost; - show grants for test_yesprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_424b,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_424b,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - connection no_privs_424b; - show grants; - use priv_db; - -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4b_1 before UPDATE on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1b'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-1b'); - select f1 from t1; - update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b'; - select f1 from t1; - --error 0, 1360 - drop trigger trg4b_1; - - connection yes_privs_424b; - show grants; - use priv_db; - create trigger trg4b_2 before UPDATE on t1 for each row - set new.f1 = 'trig 3.5.3.7-2b'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-2b'); - select f1 from t1; - update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b'; - select f1 from t1; -# Cleanup - --disable_warnings - drop trigger trg4b_2; - disconnect no_privs_424b; - disconnect yes_privs_424b; - --enable_warnings - -# --- 3.5.3.7c - Privs set on a table level -let $message= Testcase 3.5.3.7c; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant SUPER on *.* to test_noprivs@localhost; - grant ALL on priv_db.t1 to test_noprivs@localhost; - revoke UPDATE on priv_db.t1 from test_noprivs@localhost; - show grants for test_noprivs; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER on *.* to test_yesprivs@localhost; - grant UPDATE on priv_db.t1 to test_yesprivs@localhost; - show grants for test_yesprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_424c,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_424c,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - connection no_privs_424c; - show grants; - use priv_db; - -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4c_1 before INSERT on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1c'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-1c'); - select f1 from t1; - --error 0, 1360 - drop trigger trg4c_1; - - connection yes_privs_424c; - show grants; - use priv_db; - create trigger trg4c_2 before INSERT on t1 for each row - set new.f1 = 'trig 3.5.3.7-2c'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-2c'); - select f1 from t1; - -# Cleanup - --disable_warnings - drop trigger trg4c_2; - disconnect no_privs_424c; - disconnect yes_privs_424c; - --enable_warnings - -# --- 3.5.3.7d - Privs set on a column level ---disable_query_log -let $message= Testcase 3.5.3.7d:; ---enable_query_log ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant SUPER on *.* to test_noprivs@localhost; -# There is no ALL privs on the column level - grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; - show grants for test_noprivs; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER on *.* to test_yesprivs@localhost; - grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost; - show grants for test_noprivs; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_424d,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_424d,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - connection no_privs_424d; - show grants; - use priv_db; -let $message= Trigger create disabled - should fail - Bug 8884; ---source include/show_msg.inc -# --error 1227 -# create trigger trg4d_1 before INSERT on t1 for each row -# set new.f1 = 'trig 3.5.3.7-1d'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-1d'); - select f1 from t1; - --error 0, 1360 - drop trigger trg4d_1; - - connection yes_privs_424d; - show grants; - use priv_db; - create trigger trg4d_2 before INSERT on t1 for each row - set new.f1 = 'trig 3.5.3.7-2d'; - - connection default; - insert into t1 (f1) values ('insert 3.5.3.7-2d'); - select f1 from t1; - -# Cleanup - --disable_warnings - drop trigger trg4d_2; - disconnect no_privs_424d; - disconnect yes_privs_424d; - --enable_warnings - -#Section 3.5.3.8 -# Test case: Ensure that use of the construct "SET = NEW. " fails -# at CREATE TRIGGER time, if the current user does not have the SELECT privilege -# on the column specified. - -# --- 3.5.3.8a - Privs set on a global level -let $message= Testcase 3.5.3.8a:; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant ALL on *.* to test_noprivs@localhost; - revoke SELECT on *.* from test_noprivs@localhost; - show grants for test_noprivs@localhost; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER, SELECT on *.* to test_yesprivs@localhost; - show grants for test_yesprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_425a,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_425a,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - connection no_privs_425a; - select current_user; - use priv_db; - show grants; - -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5a_1 before INSERT on t1 for each row -# set @test_var = new.f1; - - connection default; - set @test_var = 'before trig 3.5.3.8-1a'; - select @test_var; - insert into t1 (f1) values ('insert 3.5.3.8-1a'); - select @test_var; - --error 0, 1360 - drop trigger trg5a_1; - - connection yes_privs_425a; - use priv_db; - select current_user; - show grants; - create trigger trg5a_2 before INSERT on t1 for each row - set @test_var= new.f1; - - connection default; - set @test_var= 'before trig 3.5.3.8-2a'; - select @test_var; - insert into t1 (f1) values ('insert 3.5.3.8-2a'); - select @test_var; - -# Cleanup - --disable_warnings - drop trigger trg5a_2; - disconnect no_privs_425a; - disconnect yes_privs_425a; - --enable_warnings - -# --- 3.5.3.8b - Privs set on a database level -let $message= Testcase: 3.5.3.8b; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant SUPER on *.* to test_noprivs@localhost; - grant ALL on priv_db.* to test_noprivs@localhost; - revoke SELECT on priv_db.* from test_noprivs@localhost; - show grants for test_noprivs@localhost; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER on *.* to test_yesprivs@localhost; - grant SELECT on priv_db.* to test_yesprivs@localhost; - show grants for test_yesprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_425b,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_425b,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - connection no_privs_425b; - show grants; - use priv_db; - -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5b_1 before UPDATE on t1 for each row -# set @test_var= new.f1; - - connection default; - set @test_var= 'before trig 3.5.3.8-1b'; - insert into t1 (f1) values ('insert 3.5.3.8-1b'); - select @test_var; - update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b'; - select @test_var; - --error 0, 1360 - drop trigger trg5b_1; - - connection yes_privs_425b; - show grants; - use priv_db; - create trigger trg5b_2 before UPDATE on t1 for each row - set @test_var= new.f1; - - connection default; - set @test_var= 'before trig 3.5.3.8-2b'; - insert into t1 (f1) values ('insert 3.5.3.8-2b'); - select @test_var; - update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b'; - select @test_var; -# Cleanup - --disable_warnings - drop trigger trg5b_2; - disconnect no_privs_425b; - disconnect yes_privs_425b; - --enable_warnings - -# --- 3.5.3.8c - Privs set on a table level -let $message= Testcase 3.5.3.8c:; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant SUPER on *.* to test_noprivs@localhost; - grant ALL on priv_db.t1 to test_noprivs@localhost; - revoke SELECT on priv_db.t1 from test_noprivs@localhost; - show grants for test_noprivs@localhost; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER on *.* to test_yesprivs@localhost; - grant SELECT on priv_db.t1 to test_yesprivs@localhost; - show grants for test_yesprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_425c,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_425c,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - connection no_privs_425c; - show grants; - use priv_db; - -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5c_1 before INSERT on t1 for each row -# set @test_var= new.f1; - - connection default; - set @test_var= 'before trig 3.5.3.8-1c'; - insert into t1 (f1) values ('insert 3.5.3.8-1c'); - select @test_var; - --error 0, 1360 - drop trigger trg5c_1; - - connection yes_privs_425c; - show grants; - use priv_db; - create trigger trg5c_2 before INSERT on t1 for each row - set @test_var= new.f1; - - connection default; - set @test_var='before trig 3.5.3.8-2c'; - insert into t1 (f1) values ('insert 3.5.3.8-2c'); - select @test_var; -# Cleanup - --disable_warnings - drop trigger trg5c_2; - disconnect no_privs_425c; - disconnect yes_privs_425c; - --enable_warnings - -# --- 3.5.3.8d - Privs set on a column level -let $message=Testcase: 3.5.3.8d:; ---source include/show_msg.inc - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost; - grant SUPER on *.* to test_noprivs@localhost; -# There is no ALL prov on the column level - grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost; - show grants for test_noprivs@localhost; - - revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost; - grant SUPER on *.* to test_yesprivs@localhost; - grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost; - show grants for test_noprivs@localhost; - - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (no_privs_425d,localhost,test_noprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - --replace_result $MASTER_MYPORT MASTER_MYPORT $MASTER_MYSOCK MASTER_MYSOCK - connect (yes_privs_425d,localhost,test_yesprivs,PWD,test,$MASTER_MYPORT,$MASTER_MYSOCK); - connection default; - - connection no_privs_425d; - show grants; - use priv_db; -let $message= Trigger create disabled - should fail - Bug 8887; ---source include/show_msg.inc -# --error 1227 -# create trigger trg5d_1 before INSERT on t1 for each row -# set @test_var= new.f1; - - connection default; - set @test_var='before trig 3.5.3.8-1d'; - insert into t1 (f1) values ('insert 3.5.3.8-1d'); - select @test_var; - --error 0, 1360 - drop trigger trg5d_1; - - connection yes_privs_425d; - show grants; - use priv_db; - create trigger trg5d_2 before INSERT on t1 for each row - set @test_var= new.f1; - - connection default; - set @test_var='before trig 3.5.3.8-2d'; - insert into t1 (f1) values ('insert 3.5.3.8-2d'); - select @test_var; - -# Cleanup 3.5.3.8 - --disable_warnings - drop trigger trg5d_2; - --enable_warnings - -# Cleanup 3.5.3 - --disable_warnings - drop database if exists priv_db; - drop user test_yesprivs@localhost; - drop user test_noprivs@localhost; - drop user test_noprivs; - --enable_warnings - -#################################### -############ Section 3.5.4 ######### -# Drop Trigger Checkes: # -#################################### -let $message= Testcase 3.5.4:; ---source include/show_msg.inc - - connection default; - use test; - -#Section 3.5.4.1 -# Testcase: Ensure that the DROP TRIGGER statement cleanly drops its target trigger. -let $message= Testcase 3.5.4.1:; ---source include/show_msg.inc - - connection con_super; - create database db_drop; - Use db_drop; - eval create table t1 (f1 char(30)) engine=$engine_type; - grant INSERT, SELECT on db_drop.t1 to test_general; - Use db_drop; - Create trigger trg1 BEFORE INSERT on t1 - for each row set new.f1='Trigger 3.5.4.1'; - connection con_general; - Use db_drop; - Insert into t1 values ('Insert error 3.5.4.1'); - Select * from t1; - connection con_super; - drop trigger trg1; - select trigger_schema, trigger_name, event_object_table - from information_schema.triggers; - connection con_general; - Insert into t1 values ('Insert no trigger 3.5.4.1'); - Select * from t1; - -#Cleanup - --disable_warnings - connection con_super; - --disable_warnings - --error 0,1360 - drop trigger trg1; - drop database if exists db_drop; - revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - --enable_warnings - -#Section 3.5.4.2 -# Test case: Ensure that DROP TRIGGER fails, with an appropriate error -# message, if the trigger name does not exist. -let $message= Testcase 3.5.4.2:; ---source include/show_msg.inc - - connection con_super; - create database db_drop2; - Use db_drop2; - --disable_warnings - drop table if exists t1_432 ; - --enable_warnings - eval create table t1_432 (f1 char (30)) engine=$engine_type; - --error 1360 - Drop trigger tr_does_not_exit; -#cleanup - --disable_warnings - drop table if exists t1_432 ; - drop database if exists db_drop2; - --enable_warnings - -#Section 3.5.4.3 -# Test case: Ensure that DROP TRIGGER fails, with an appropriate -# error message, if is not a qualified name. -let $message= Testcase 3.5.4.3:; ---source include/show_msg.inc - - connection con_super; - create database db_drop3; - Use db_drop3; - --disable_warnings - drop table if exists t1_433 ; - drop table if exists t1_433a ; - --enable_warnings - eval create table t1_433 (f1 char (30)) engine=$engine_type; - eval create table t1_433a (f1a char (5)) engine=$engine_type; - - CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row - set new.f1 = 'Trigger 3.5.4.3'; - -# Using table - --error 1064 - Drop trigger t1.433.trg3; - -# Using database.table - --error 1064 - Drop trigger db_drop3.t1.433.trg3; - -# wrong database - --error 1360 - Drop trigger mysql.trg3; - -# database does not exist - --error 1360 - Drop trigger tbx.trg3; - -#cleanup - Drop trigger db_drop3.trg3; - drop table if exists t1_433; - drop table if exists t1_433a; - drop database if exists db_drop3; - -#Section 3.5.4.4 -# Test case: Ensure that when a database is dropped, all triggers created within -# that database are also cleanly dropped. -let $message= Testcase 3.5.4.4:; ---source include/show_msg.inc - - connection con_super; - create database db_drop4; - Use db_drop4; - eval create table t1 (f1 char(30)) engine=$engine_type; - grant INSERT, SELECT on db_drop4.t1 to test_general; - Create trigger trg4 BEFORE INSERT on t1 - for each row set new.f1='Trigger 3.5.4.4'; - connection con_general; - Use db_drop4; - Insert into t1 values ('Insert 3.5.4.4'); - Select * from t1; - connection con_super; - Drop database db_drop4; - Show databases; - select trigger_schema, trigger_name, event_object_table - from information_schema.triggers - where information_schema.triggers.trigger_name='trg4'; - create database db_drop4; - Use db_drop4; - eval create table t1 (f1 char(30)) engine=$engine_type; - grant INSERT, SELECT on db_drop4.t1 to test_general; - connection con_general; - Insert into t1 values ('2nd Insert 3.5.4.4'); - Select * from t1; - -#Cleanup - connection con_super; - --disable_warnings - --error 1360 - drop trigger trg4; - drop database if exists db_drop4; - --enable_warnings - revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - -#Section 3.5.4.5 -# Test case: Ensure that when a table is dropped, all triggers for which it is the -# subject table are also cleanly dropped. -let $message= Testcase 3.5.4.5:; ---source include/show_msg.inc - - connection con_super; - create database db_drop5; - Use db_drop5; - eval create table t1 (f1 char(50)) engine=$engine_type; - grant INSERT, SELECT on t1 to test_general; - Create trigger trg5 BEFORE INSERT on t1 - for each row set new.f1='Trigger 3.5.4.5'; - connection con_general; - Use db_drop5; - Insert into t1 values ('Insert 3.5.4.5'); - Select * from t1; - connection con_super; - Drop table t1; - Show tables; - select trigger_schema, trigger_name, event_object_table - from information_schema.triggers - where information_schema.triggers.trigger_name='trg5'; - eval create table t1 (f1 char(50)) engine=$engine_type; - grant INSERT, SELECT on t1 to test_general; - connection con_general; - Insert into t1 values ('2nd Insert 3.5.4.5'); - Select * from t1; - -#Cleanup - connection con_super; - --disable_warnings - --error 1360 - drop trigger trg5; - drop database if exists db_drop5; - --enable_warnings - revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - - -################################## -######### Section 3.5.5 ########## -# Checks on the Subject Table # -################################## - -let $message= Testcase 3.5.5:; ---source include/show_msg.inc - - connection default; - use test; - -#Section 3.5.5.1 -# Test case: Ensure that, if CREATE TRIGGER is executed with a non-existent -# subject table, the statement fails with an appropriate error message. -let $message= Testcase 3.5.5.1:; ---source include/show_msg.inc - - --error 1146 - Create trigger trg1 before INSERT on t100 for each row set new.f2=1000; - - -#Section 3.5.5.2 -# Test case: Ensure that, if CREATE TRIGGER is executed with a temporary table -# as the subject table, the statement fails with an appropriate error message. -let $message= Testcase 3.5.5.2:; ---source include/show_msg.inc - - Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned); - - --error 1361 - Create trigger trg2 before INSERT - on t1_temp for each row set new.f2=9999; - -#Cleanup - --disable_warnings - drop table t1_temp; - --enable_warnings - - -#Section 3.5.5.3 -# Test case: Ensure that, if CREATE TRIGGER is executed with a view as the subject -# table, the statement fails with an appropriate error message. -let $message= Testcase 3.5.5.3:; ---source include/show_msg.inc - - Create view vw3 as select f118 from tb3; - -# OBN Not sure why the server is returning error 1347 - --error 1347 - Create trigger trg3 before INSERT - on vw3 for each row set new.f118='s'; - -#Cleanup - --disable_warnings - drop view vw3; - --enable_warnings - - -#Section 3.5.5.4 -# Test case: Ensure that, if CREATE TRIGGER is executed with a table that resides -# in a different database than in which the trigger will reside, the -# statement fails with an appropriate error message; that is, ensure that -# the trigger and its subject table must reside in the same database. -let $message= Testcase 3.5.5.4:; ---source include/show_msg.inc - - connection con_super; - create database dbtest_one; - create database dbtest_two; - use dbtest_two; - create table t2 (f1 char(15)); - use dbtest_one; - --error 1435 - create trigger trg4 before INSERT - on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4'; - grant INSERT, SELECT on dbtest_two.t2 to test_general; - grant SELECT on dbtest_one.* to test_general; - connection con_general; - use dbtest_two; - Insert into t2 values ('1st Insert 3.5.5.4'); - Select * from t2; - use dbtest_one; - Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4'); - Select * from dbtest_two.t2; - -#Cleanup - connection con_super; - --disable_warnings - revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - DROP DATABASE if exists dbtest_one; - drop database if EXISTS dbtest_two; - --enable_warnings - -##################################### -########### Section 3.5.6 ########### -# Check on the Trigger Action Time # -##################################### - -let $message= Testcase 3.5.6:; ---source include/show_msg.inc - - connection default; - use test; - -#Section 3.5.6.1 -# Test case: Ensure that a trigger definition can specify a trigger action time of BEFORE. -# See section 3.5.1.1 -let $message= Testcase 3.5.6.1 (see Testcase 3.5.1.1); ---source include/show_msg.inc - -#Section 3.5.6.2 -# Test case: Ensure that a trigger definition can specify a trigger action time of AFTER. -# See section 3.5.1.1 -let $message= Testcase 3.5.6.2 (see Testcase 3.5.1.1); ---source include/show_msg.inc - -#Section 3.5.6.3 -# Test case: Ensure that a trigger definition that specifies a trigger action -# time that is not either BEFORE or AFTER fails, with an appropriate -# error message, at CREATE TRIGGER time. -let $message= Testcase 3.5.6.3:; ---source include/show_msg.inc - - --error 1064 - Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25; - --error 1064 - Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15; - -#Cleanup -# OBN - Although none of the above should have been created we should do a cleanup -# since if they have been created, not dropping them will affect following -# tests. - --disable_warnings - --error 0, 1360 - drop trigger tb3.trg3_1; - --error 0, 1360 - drop trigger tb3.trg3_2; - --enable_warnings - -#Section 3.5.6.4 -# Test case: Ensure that a trigger defined with a trigger action time of BEFORE -# always executes its triggered action immediately before the trigger event. -# See section 3.5.1.1 -let $message= Testcase 3.5.6.4 (see Testcase 3.5.1.1); ---source include/show_msg.inc - -#Section 3.5.6.5 -# Test case: Ensure that a trigger defined with a trigger action time of AFTER -# always executes its triggered action immediately after the trigger event. -let $message= Testcase 3.5.6.5 (see Testcase 3.5.1.1); ---source include/show_msg.inc - -############################# -####### Section 3.5.7 ####### -# Check on Trigger Event # -############################# - -#Section 3.5.7.1 -#Test case: Ensure that a trigger definition can specify a trigger event of INSERT. -let $message= Testcase 3.5.7.1 (see Testcase 3.5.1.1); ---source include/show_msg.inc - -#Section 3.5.7.2 -# Test case: Ensure that a trigger definition can specify a trigger event of UPDATE. -let $message= Testcase 3.5.7.2 (see Testcase 3.5.1.1); ---source include/show_msg.inc - -#Section 3.5.7.3 -# Test case: Ensure that a trigger definition can specify a trigger event of DELETE. -let $message= Testcase 3.5.7.3 (see Testcase 3.5.1.1); ---source include/show_msg.inc - -#Section 3.5.7.4 -# Test case: Ensure that a trigger definition that specifies a trigger event that -# is not either INSERT, UPDATE or DELETE fails, with an appropriate error -# message, at CREATE TRIGGER time. -let $message= Testcase 3.5.7.4:; ---source include/show_msg.inc - - --error 1064 - Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5; - --error 1064 - Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1; - -#Cleanup -# OBN - Although none of the above should have been created we should do a cleanup -# since if they have been created, not dropping them will affect following -# tests. - --disable_warnings - --error 0, 1360 - drop trigger tb3.trg4_1; - --error 0, 1360 - drop trigger tb3.trg4_2; - --enable_warnings - -#Section 3.5.7.5 / 3.5.7.6 -# Test case: Ensure that it is not possible to create multiple BEFORE INSERT triggers -# on the same table, even if the triggers have different names / different -# triggered actions. -let $message= Testcase 3.5.7.5 / 3.5.7.6:; ---source include/show_msg.inc - - Create trigger trg5_1 BEFORE INSERT - on tb3 for each row set new.f122='Trigger1 3.5.7.5/6'; - - --error 1359 - Create trigger trg5_2 BEFORE INSERT - on tb3 for each row set new.f122='Trigger2 3.5.7.5'; - - Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5'); - Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; - update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6'; - Select f121,f122 from tb3 where f121='Test 3.5.7.5/6'; - -#Cleanup - --disable_warnings - drop trigger trg5_1; - --error 0, 1360 - drop trigger trg5_2; - delete from tb3 where f121='Test 3.5.7.5/6'; - --enable_warnings - - -#Section 3.5.7.7 / 3.5.7.8 -# Test case: Ensure that it is not possible to create multiple AFTER INSERT triggers -# on the same table, even if the triggers have different names / different -# triggered actions. -let $message= Testcase 3.5.7.7 / 3.5.7.8:; ---source include/show_msg.inc - - set @test_var='Before trig 3.5.7.7'; - Create trigger trg6_1 AFTER INSERT - on tb3 for each row set @test_var='Trigger1 3.5.7.7/8'; - - --error 1359 - Create trigger trg6_2 AFTER INSERT - on tb3 for each row set @test_var='Trigger2 3.5.7.7'; - - select @test_var; - Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7'); - Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; - select @test_var; - update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8'; - Select f121,f122 from tb3 where f121='Test 3.5.7.7/8'; - select @test_var; - -#Cleanup - --disable_warnings - drop trigger trg6_1; - --error 0, 1360 - drop trigger trg6_2; - delete from tb3 where f121='Test 3.5.7.7/8'; - --enable_warnings - - -#Section 3.5.7.9 / 3.5.7.10 -# Test case: Ensure that it is not possible to create multiple BEFORE UPDATE triggers -# on the same table, even if the triggers have different names / different -# triggered actions. -let $message= Testcase 3.5.7.9/10:; ---source include/show_msg.inc - - Create trigger trg7_1 BEFORE UPDATE - on tb3 for each row set new.f122='Trigger1 3.5.7.9/10'; - - --error 1359 - Create trigger trg7_2 BEFORE UPDATE - on tb3 for each row set new.f122='Trigger2 3.5.7.9'; - - Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9'); - Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; - update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10'; - Select f121,f122 from tb3 where f121='Test 3.5.7.9/10'; - -#Cleanup - --disable_warnings - drop trigger trg7_1; - --error 0, 1360 - drop trigger trg7_2; - delete from tb3 where f121='Test 3.5.7.9/10'; - -#Section 3.5.7.11 / 3.5.7.12 -# Test case: Ensure that it is not possible to create multiple AFTER UPDATE triggers -# on the same table, even if the triggers have different names / different -# triggered actions. -let $message= Testcase 3.5.7.11/12:; ---source include/show_msg.inc - - set @test_var='Before trig 3.5.7.11'; - Create trigger trg8_1 AFTER UPDATE - on tb3 for each row set @test_var='Trigger 3.5.7.11/12'; - - --error 1359 - Create trigger trg8_2 AFTER UPDATE - on tb3 for each row set @test_var='Trigger2 3.5.7.11'; - - - select @test_var; - Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12'); - select @test_var; - Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; - update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12'; - Select f121,f122 from tb3 where f121='Test 3.5.7.11/12'; - select @test_var; - delete from tb3 where f121='Test 3.5.7.11/12'; - -#Cleanup - --disable_warnings - drop trigger trg8_1; - --error 0, 1360 - drop trigger trg8_2; - delete from tb3 where f121='Test 3.5.7.11/12'; - -#Section 3.5.7.13 / 3.5.7.14 -# Test case: Ensure that it is not possible to create multiple BEFORE DELETE triggers -# on the same table, even if the triggers have different names / different -# triggered actions. -let $message= Testcase 3.5.7.13/14:; ---source include/show_msg.inc - - set @test_var=1; - Create trigger trg9_1 BEFORE DELETE - on tb3 for each row set @test_var=@test_var+1; - - --error 1359 - Create trigger trg9_2 BEFORE DELETE - on tb3 for each row set @test_var=@test_var+10; - - select @test_var; - Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13'); - Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; - select @test_var; - delete from tb3 where f121='Test 3.5.7.13/14'; - Select f121,f122 from tb3 where f121='Test 3.5.7.13/14'; - select @test_var; - delete from tb3 where f121='Test 3.5.7.13/14'; - select @test_var; - -#Cleanup - --disable_warnings - drop trigger trg9_1; - --error 0, 1360 - drop trigger trg9_2; - delete from tb3 where f121='Test 3.5.7.13/14'; - -#Section 3.5.7.15 / 3.5.7.16 -# Test case: Ensure that it is not possible to create multiple AFTER DELETE triggers -# on the same table, even if the triggers have different names / different -# triggered actions. -let $message= Testcase 3.5.7.15/16:; ---source include/show_msg.inc - - set @test_var=1; - Create trigger trg_3_406010_1 AFTER DELETE - on tb3 for each row set @test_var=@test_var+5; - - --error 1359 - Create trigger trg_3_406010_2 AFTER DELETE - on tb3 for each row set @test_var=@test_var+50; - - --error 1359 - Create trigger trg_3_406010_1 AFTER INSERT - on tb3 for each row set @test_var=@test_var+1; - - select @test_var; - Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16'); - Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; - select @test_var; - delete from tb3 where f121='Test 3.5.7.15/16'; - Select f121,f122 from tb3 where f121='Test 3.5.7.15/16'; - select @test_var; - delete from tb3 where f121='Test 3.5.7.15/16'; - select @test_var; - -#Cleanup - --disable_warnings - drop trigger trg_3_406010_1; - --error 0, 1360 - drop trigger trg_3_406010_2; - delete from tb3 where f121='Test 3.5.7.15/16'; - --enable_warnings - - -#Section 3.5.7.17 -# Test case: Ensure that it is possible to have a BEFORE INSERT, an AFTER INSERT, -# a BEFORE UPDATE, an AFTER UPDATE, a BEFORE DELETE, and an AFTER DELETE -# trigger on the same table; that is, ensure that every persistent base -# table may be the subject table for exactly six triggers -let $message= Testcase 3.5.7.17 (see Testcase 3.5.1.1); ---source include/show_msg.inc - - -################################# -####### Section 3.5.8 ########### -# Checks on Triggered Actions # -################################# - -#Section 3.5.8.1 -# Testcase: Ensure that the triggered action of every trigger always executes -# correctly and the results in all expected changes made to the database -let $message= Testcase 3.5.8.1: (implied in previous tests); ---source include/show_msg.inc -# OBN - FIXME - Missing 3.5.8.1 need to add - -#Section 3.5.8.2 -# Testcase: Ensure that the triggered actions of every trigger never results -# in an unexpected change made to the database. -let $message= Testcase 3.5.8.2: (implied in previous tests); ---source include/show_msg.inc - - -#Section 3.5.8.3 / 3.5.8.4 -#Test case: Ensure that the triggered action can any valid SQL statement / set -# of valid SQL statements, provided the statements are written within -# a BEGIN/END compound statement construct -# OBN - At this point the tests focuses on the the INSERT/UPDATE/DELETE SQL statements -# as there are the most likely to be used in triggers -let $message= Testcase 3.5.8.3/4:; ---source include/show_msg.inc - -# creating test tables to perform the trigger SQL on - connection con_super; - create database db_test; - grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general; - grant LOCK TABLES on db_test.* to test_general; - Use db_test; - eval create table t1_i ( - i120 char ascii not null DEFAULT b'101', - i136 smallint zerofill not null DEFAULT 999, - i144 int zerofill not null DEFAULT 99999, - i163 decimal (63,30)) engine=$engine_type; - eval create table t1_u ( - u120 char ascii not null DEFAULT b'101', - u136 smallint zerofill not null DEFAULT 999, - u144 int zerofill not null DEFAULT 99999, - u163 decimal (63,30)) engine=$engine_type; - eval create table t1_d ( - d120 char ascii not null DEFAULT b'101', - d136 smallint zerofill not null DEFAULT 999, - d144 int zerofill not null DEFAULT 99999, - d163 decimal (63,30)) engine=$engine_type; - Insert into t1_u values ('a',111,99999,999.99); - Insert into t1_u values ('b',222,99999,999.99); - Insert into t1_u values ('c',333,99999,999.99); - Insert into t1_u values ('d',222,99999,999.99); - Insert into t1_u values ('e',222,99999,999.99); - Insert into t1_u values ('f',333,99999,999.99); - Insert into t1_d values ('a',111,99999,999.99); - Insert into t1_d values ('b',222,99999,999.99); - Insert into t1_d values ('c',333,99999,999.99); - Insert into t1_d values ('d',444,99999,999.99); - Insert into t1_d values ('e',222,99999,999.99); - Insert into t1_d values ('f',222,99999,999.99); - -let $message= 3.5.8.4 - multiple SQL; ---source include/show_msg.inc -# Trigger definition - multiple SQL - use test; - delimiter //; - Create trigger trg1 AFTER INSERT on tb3 for each row - BEGIN - insert into db_test.t1_i - values (new.f120, new.f136, new.f144, new.f163); - update db_test.t1_u - set u144=new.f144, u163=new.f163 - where u136=new.f136; - delete from db_test.t1_d where d136= new.f136; - select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u - where u136= new.f136; - END// - delimiter ;// - -# Test trigger execution - multiple SQL - connection con_general; - Use test; - set @test_var=0; - Insert into tb3 (f120, f122, f136, f144, f163) - values ('1', 'Test 3.5.8.4', 222, 23456, 1.05); - Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4'; - select * from db_test.t1_i; - select * from db_test.t1_u; - select * from db_test.t1_d; - select @test_var; - - -let $message= 3.5.8.4 - single SQL - insert; ---source include/show_msg.inc -# Trigger definition - single SQL Insert - connection con_super; - Create trigger trg2 BEFORE UPDATE on tb3 for each row - insert into db_test.t1_i - values (new.f120, new.f136, new.f144, new.f163); - -# Trigger exeution - single SQL Insert - connection con_general; - update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert' - where f122='Test 3.5.8.4'; - Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; - select * from db_test.t1_i; - - -let $message= 3.5.8.4 - single SQL - update; ---source include/show_msg.inc -# Trigger definition - single SQL update - connection con_super; - drop trigger trg2; - Create trigger trg3 BEFORE UPDATE on tb3 for each row - update db_test.t1_u - set u120=new.f120 - where u136=new.f136; - -# Trigger exeution - single SQL - update; - connection con_general; - update tb3 set f120='U', f122='Test 3.5.8.4-Single Update' - where f122='Test 3.5.8.4-Single Insert'; - Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; - select * from db_test.t1_u; - - -let $message= 3.5.8.3/4 - single SQL - delete; ---source include/show_msg.inc -# Trigger definition - single SQL delete - connection con_super; - drop trigger trg3; - Create trigger trg4 AFTER UPDATE on tb3 for each row - delete from db_test.t1_d where d136= new.f136; - -# Trigger exeution - single SQL delete - connection con_general; -#lock tables tb3 write, db_test.t1_i write, db_test.t1_u write, db_test.t1_d write; - update tb3 set f120='D', f136=444, - f122='Test 3.5.8.4-Single Delete' - where f122='Test 3.5.8.4-Single Update'; -#unlock tables; - Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; - select * from db_test.t1_d; - - -let $message= 3.5.8.3/4 - single SQL - select; ---source include/show_msg.inc -# Trigger definition - single SQL select - connection con_super; - drop trigger trg4; - Create trigger trg5 AFTER UPDATE on tb3 for each row - select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u - where u136= new.f136; - -# Trigger exeution - single SQL select - connection con_general; - set @test_var=0; - update tb3 set f120='S', f136=111, - f122='Test 3.5.8.4-Single Select' - where f122='Test 3.5.8.4-Single Delete'; - Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%'; - select @test_var; - -#Cleanup - connection default; - --disable_warnings - drop trigger trg1; - drop trigger trg5; - drop database if exists db_test; - delete from tb3 where f122 like 'Test 3.5.8.4%'; - revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost'; - --enable_warnings - - -#Section 3.5.8.5 (IF) -# Test case: Ensure that the stored procedure-specific flow control statement like IF -# works correctly when it is a part of the triggered action portion of a -# trigger definition. -let $message= Testcase 3.5.8.5 (IF):; ---source include/show_msg.inc - - delimiter //; - create trigger trg2 before insert on tb3 for each row - BEGIN - IF new.f120='1' then - set @test_var='one', new.f120='2'; - ELSEIF new.f120='2' then - set @test_var='two', new.f120='3'; - ELSEIF new.f120='3' then - set @test_var='three', new.f120='4'; - END IF; - - IF (new.f120='4') and (new.f136=10) then - set @test_var2='2nd if', new.f120='d'; - ELSE - set @test_var2='2nd else', new.f120='D'; - END IF; - END// - delimiter ;// - - set @test_var='Empty', @test_var2=0; - Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; - Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; - Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; - Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103); - select f120, f122, f136, @test_var, @test_var2 - from tb3 where f122 = 'Test 3.5.8.5-if'; - - delimiter //; - --error 1064 - create trigger trg3 before update on tb3 for each row - BEGIN - ELSEIF new.f120='2' then - END IF; - END// - --error 0, 1360 - drop trigger trg3// - - --error 1064 - create trigger trg4 before update on tb3 for each row - BEGIN - IF (new.f120='4') and (new.f136=10) then - set @test_var2='2nd if', new.f120='d'; - ELSE - set @test_var2='2nd else', new.f120='D'; - END// - delimiter ;// - --error 0, 1360 - drop trigger trg4; - -#Cleanup - --disable_warnings - drop trigger trg2; - delete from tb3 where f121='Test 3.5.8.5-if'; - --enable_warnings - - -#Section 3.5.8.5 (CASE) -# Test case: Ensure that the stored procedure-specific flow control statement -# like CASE works correctly when it is a part of the triggered action -# portion of a trigger definition. -let $message= Testcase 3.5.8.5-case:; ---source include/show_msg.inc - - delimiter //; - create trigger trg3 before insert on tb3 for each row - BEGIN - SET new.f120=char(ascii(new.f120)-32); - CASE - when new.f136<100 then set new.f136=new.f136+120; - when new.f136<10 then set new.f144=777; - when new.f136>100 then set new.f120=new.f136-1; - END case; - CASE - when new.f136=200 then set @test_var=CONCAT(new.f120, '='); - ELSE set @test_var=concat(new.f120, '*'); - END case; - CASE new.f144 - when 1 then set @test_var=concat(@test_var, 'one'); - when 2 then set @test_var=concat(@test_var, 'two'); - when 3 then set @test_var=concat(@test_var, 'three'); - when 4 then set @test_var=concat(@test_var, 'four'); - when 5 then set @test_var=concat(@test_var, 'five'); - when 6 then set @test_var=concat(@test_var, 'six'); - when 7 then set @test_var=concat(@test_var, 'seven'); - when 8 then set @test_var=concat(@test_var, 'eight'); - when 9 then set @test_var=concat(@test_var, 'nine'); - when 10 then set @test_var=concat(@test_var, 'ten'); - when 11 then set @test_var=concat(@test_var, 'eleven'); - when 12 then set @test_var=concat(@test_var, 'twelve'); - when 13 then set @test_var=concat(@test_var, 'thirteen'); - when 14 then set @test_var=concat(@test_var, 'fourteen'); - when 15 then set @test_var=concat(@test_var, 'fifteen'); - ELSE set @test_var=CONCAT(new.f120, '*', new.f144); - END case; - END// - delimiter ;// - - set @test_var='Empty'; - Insert into tb3 (f120, f122, f136, f144) - values ('a', 'Test 3.5.8.5-case', 5, 7); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136, f144) - values ('b', 'Test 3.5.8.5-case', 71,16); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136, f144) - values ('c', 'Test 3.5.8.5-case', 80,1); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136) - values ('d', 'Test 3.5.8.5-case', 152); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - Insert into tb3 (f120, f122, f136, f144) - values ('e', 'Test 3.5.8.5-case', 200, 8); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - --error 0, 1339 - Insert into tb3 (f120, f122, f136, f144) - values ('f', 'Test 3.5.8.5-case', 100, 8); - select f120, f122, f136, f144, @test_var - from tb3 where f122 = 'Test 3.5.8.5-case'; - - delimiter //; - --error 1064 - create trigger trg3a before update on tb3 for each row - BEGIN - CASE - when new.f136<100 then set new.f120='p'; - END// - delimiter ;// - - --error 0, 1360 - drop trigger trg3a; - -#Cleanup - --disable_warnings - drop trigger trg3; - delete from tb3 where f121='Test 3.5.8.5-case'; - --enable_warnings - -#Section 3.5.8.5 (LOOP) -# Test case: Ensure that the stored procedure-specific flow control -# statement like LOOP / LEAVE work correctly when they are -# part of the triggered action portion of a trigger definition. -let $message= Testcase 3.5.8.5-loop/leave:; ---source include/show_msg.inc - - delimiter //; - Create trigger trg4 after insert on tb3 for each row - BEGIN - set @counter=0, @flag='Initial'; - Label1: loop - if new.f136 new.f136 END REPEAT rp_label; - END// - delimiter ;// - - set @counter1= 0, @counter2= 0; - Insert into tb3 (f122, f136) - values ('Test 3.5.8.5-repeat', 13); - select @counter1, @counter2; - - - delimiter //; - --error 1064 - Create trigger trg6_2 after update on tb3 for each row - BEGIN - REPEAT - SET @counter2 = @counter2 + 1; - END// - delimiter ;// - -#Cleanup - --disable_warnings - drop trigger trg6; - delete from tb3 where f122='Test 3.5.8.5-repeat'; - --enable_warnings - - -#Section 3.5.8.5 (WHILE) -# Test case: Ensure that the stored procedure-specific flow control -# statements WHILE, work correctly when they are part of -# the triggered action portion of a trigger definition. -let $message= Testcase 3.5.8.5-while:; ---source include/show_msg.inc - - delimiter //; - Create trigger trg7 after insert on tb3 for each row - wl_label: WHILE @counter1 < new.f136 DO - SET @counter1 = @counter1 + 1; - IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label; - END IF; - SET @counter2 = @counter2 + 1; - END WHILE wl_label// - delimiter ;// - - set @counter1= 0, @counter2= 0; - Insert into tb3 (f122, f136) - values ('Test 3.5.8.5-while', 7); - select @counter1, @counter2; - delimiter //; - --error 1064 - Create trigger trg7_2 after update on tb3 for each row - BEGIN - WHILE @counter1 < new.f136 - SET @counter1 = @counter1 + 1; - END// - delimiter ;// - -#Cleanup - --disable_warnings - delete from tb3 where f122='Test 3.5.8.5-while'; - drop trigger trg7; - --enable_warnings - -#Section 3.5.8.6 -# Test case: Ensure that a trigger definition that includes a CALL to a stored -# procedure fails, at CREATE TRIGGER time, with an appropriate error -# message -# OBN - requirement void since allowed -# Fails due to Bug 9909 the bug allows the trigger to be created -# and fails in execution time -let $message= Testcase 3.5.8.6: (requirement void); ---source include/show_msg.inc - - -#Section 3.5.8.7 -# Test case: Ensure that a trigger definition that includes a -# transaction-delimiting statement (e.g. COMMIT, -# ROLLBACK, START TRANSACTION) fails, at CREATE TRIGGER -# time, with an appropriate error message. -# OBN - Fails due to Bug ____ -let $message= Testcase 3.5.8.7: (Disabled as a result of bug _____); ---source include/show_msg.inc - -# --error 1314 -# Create trigger trg9_1 before update on tb3 for each row -# BEGIN -# Start transaction; -# Set new.f120='U'; -# Commit; -# END; - -# --error 1314 -# Create trigger trg9_2 before delete on tb3 for each row -# BEGIN -# Start transaction; -# Set @var2=old.f120; -# Rollback; -# END; - -################################# -####### Section 3.5.9 ########### -# Checks on old and new rows # -################################# - -#Section 3.5.9.1 -#Test case: Ensure that every trigger executes its triggered action on each row -# that meets the conditions stated in the trigger definition. -#Section 3.5.9.2 -#Testcase: Ensure that a trigger never executes its triggered action on any row -# that doesn't meet the conditions stated in the trigger definition. -let $message= Testcase 3.5.9.1/2:; ---source include/show_msg.inc - - Create trigger trg1 BEFORE UPDATE on tb3 for each row - set new.f142 = 94087, @counter=@counter+1; ---disable_query_log - select count(*) as TotalRows from tb3; - select count(*) as Affected from tb3 where f130<100; - select count(*) as NotAffected from tb3 where f130>=100; - select count(*) as NewValuew from tb3 where f142=94087; ---enable_query_log - set @counter=0; - Update tb3 Set f142='1' where f130<100; - select count(*) as ExpectedChanged, @counter as TrigCounter - from tb3 where f142=94087; - select count(*) as ExpectedNotChange from tb3 - where f130<100 and f142<>94087; - select count(*) as NonExpectedChanged from tb3 - where f130>=130 and f142=94087; - -#Cleanup - --disable_warnings - drop trigger trg1; - --enable_warnings - - -#Section 3.5.9.3 -#Test case: Ensure that a reference to OLD. always correctly refers -# to the values of the specified column of the subject table before a -# data row is updated or deleted. -let $message= Testcase 3.5.9.3:; ---source include/show_msg.inc - - Create trigger trg2_a before update on tb3 for each row - set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, - @tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, - @tr_var_b4_163=old.f163; - - Create trigger trg2_b after update on tb3 for each row - set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, - @tr_var_af_122=old.f122, @tr_var_af_136=old.f136, - @tr_var_af_163=old.f163; - - Create trigger trg2_c before delete on tb3 for each row - set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121, - @tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136, - @tr_var_b4_163=old.f163; - - Create trigger trg2_d after delete on tb3 for each row - set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121, - @tr_var_af_122=old.f122, @tr_var_af_136=old.f136, - @tr_var_af_163=old.f163; - - ---disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, - @tr_var_b4_136=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, - @tr_var_af_136=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_163; ---enable_query_log - - Insert into tb3 (f122, f136, f163) - values ('Test 3.5.9.3', 7, 123.17); - Update tb3 Set f136=8 where f122='Test 3.5.9.3'; - - select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_163; - ---disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, - @tr_var_b4_136=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, - @tr_var_af_136=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_163; ---enable_query_log - - delete from tb3 where f122='Test 3.5.9.3'; - - select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_163; -#Cleanup - --disable_warnings - drop trigger trg2_a; - drop trigger trg2_b; - drop trigger trg2_c; - drop trigger trg2_d; - --enable_warnings - -#Section 3.5.9.4 -#Test case: Ensure that a reference to NEW. always correctly refers -# to the values of the specified column of the subject table after an -# existing data row has been updated or a new data row has been inserted. -let $message= Testcase 3.5.9.4:; ---source include/show_msg.inc - - Create trigger trg3_a before insert on tb3 for each row - set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, - @tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, - @tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; - - Create trigger trg3_b after insert on tb3 for each row - set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, - @tr_var_af_122=new.f122, @tr_var_af_136=new.f136, - @tr_var_af_151=new.f151, @tr_var_af_163=new.f163; - - Create trigger trg3_c before update on tb3 for each row - set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121, - @tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136, - @tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163; - - Create trigger trg3_d after update on tb3 for each row - set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121, - @tr_var_af_122=new.f122, @tr_var_af_136=new.f136, - @tr_var_af_151=new.f151, @tr_var_af_163=new.f163; - ---disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, - @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, - @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; ---enable_query_log - - Insert into tb3 (f122, f136, f151, f163) - values ('Test 3.5.9.4', 7, DEFAULT, 995.24); - - select f118, f121, f122, f136, f151, f163 from tb3 - where f122 like 'Test 3.5.9.4%'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; - ---disable_query_log - set @tr_var_b4_118=0, @tr_var_b4_121=0, @tr_var_b4_122=0, - @tr_var_b4_136=0, @tr_var_b4_151=0, @tr_var_b4_163=0; - set @tr_var_af_118=0, @tr_var_af_121=0, @tr_var_af_122=0, - @tr_var_af_136=0, @tr_var_af_151=0, @tr_var_af_163=0; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; ---enable_query_log - - Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL - where f122='Test 3.5.9.4'; - - select f118, f121, f122, f136, f151, f163 from tb3 - where f122 like 'Test 3.5.9.4-trig'; - select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122, - @tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163; - select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122, - @tr_var_af_136, @tr_var_af_151, @tr_var_af_163; -#Cleanup - --disable_warnings - drop trigger trg3_a; - drop trigger trg3_b; - drop trigger trg3_c; - drop trigger trg3_d; - delete from tb3 where f122='Test 3.5.9.4-trig'; - --enable_warnings - - -#Section 3.5.9.5 -# Test case: Ensure that the definition of an INSERT trigger can include a -# reference to NEW. . -let $message= Testcase 3.5.9.5: (implied in previous tests); ---source include/show_msg.inc - -#Section 3.5.9.6 -# Test case: Ensure that the definition of an INSERT trigger cannot include -# a reference to OLD. . -let $message= Testcase 3.5.9.6:; ---source include/show_msg.inc - - --error 1363 - create trigger trg4a before insert on tb3 for each row - set @temp1= old.f120; - --error 1362 - create trigger trg4b after insert on tb3 for each row - set old.f120= 'test'; - -#Cleanup - --disable_warnings - --error 0, 1360 - drop trigger trg4a; - --error 0, 1360 - drop trigger trg4b; - --enable_warnings - - -#Section 3.5.9.7 -# Test case: Ensure that the definition of an UPDATE trigger can include a -# reference to NEW. . -let $message= Testcase 3.5.9.7: (implied in previous tests); ---source include/show_msg.inc - -#Section 3.5.9.8 -# Test case: Ensure that the definition of an UPDATE trigger cannot include a -# reference to OLD. . -let $message= Testcase 3.5.9.8: (implied in previous tests); ---source include/show_msg.inc - -#Section 3.5.9.9 -# Test case: Ensure that the definition of a DELETE trigger cannot include a -# reference to NEW.. -let $message= Testcase 3.5.9.9:; ---source include/show_msg.inc - - --error 1363 - create trigger trg5a before DELETE on tb3 for each row - set @temp1=new.f122; - --error 1363 - create trigger trg5b after DELETE on tb3 for each row - set new.f122='test'; -let $message= The above returns the wrong error, should be error 1362 (Bug 11648) ---source include/show_msg.inc - -#Cleanup - --disable_warnings - --error 0, 1360 - drop trigger trg5a; - --error 0, 1360 - drop trigger trg5b; - --enable_warnings - - -#Section 3.5.9.10 -# Test case: Ensure that the definition of a DELETE trigger can include a reference -# to OLD.. -let $message= Testcase 3.5.9.10: (implied in previous tests); ---source include/show_msg.inc - - -#Section 3.5.9.11 -# Testcase: Ensure that trigger definition that includes a referance to -# NEW. fails with an appropriate error message, -# at CREATE TRIGGER time, if the trigger event in not INSERT or UPDATE -let $message= Testcase 3.5.9.11: covered by 3.5.9.9; ---source include/show_msg.inc - - -#Section 3.5.9.12 -# Testcase: Ensure that trigger definition that includes a referance to -# OLD. fails with an appropriate error message, at -# CREATE TRIGGER time, if the trigger event is not DELETE or UPDATE -let $message= Testcase 3.5.9.12: covered by 3.5.9.6; ---source include/show_msg.inc - - -#Section 3.5.9.13 -# Test case: Ensure that all references to OLD. are read-only, -# that is, that they cannot be used to modify a data row. -let $message= Testcase 3.5.9.13:; ---source include/show_msg.inc - - --error 1362 - create trigger trg6a before UPDATE on tb3 for each row - set old.f118='C', new.f118='U'; - --error 1362 - create trigger trg6b after INSERT on tb3 for each row - set old.f136=163, new.f118='U'; - --error 1362 - create trigger trg6c after UPDATE on tb3 for each row - set old.f136=NULL; - -#Cleanup - --disable_warnings - --error 0, 1360 - drop trigger trg6a; - --error 0, 1360 - drop trigger trg6b; - --error 0, 1360 - drop trigger trg6c; - --enable_warnings - - -#Section 3.5.9.14 -# Test case: Ensure that all references to NEW. may be used both to -# read a data row and to modify a data row -let $message= Testcase 3.5.9.14: (implied in previous tests); ---source include/show_msg.inc - - -############################################## -################ Section 3.5.10 ################# -# Check on Trigger Activation -############################################## -#Section 3.5.10.1 -# Test case: Ensure that every trigger that should be activated by -# every possible type of implicit insertion into its subject -# table (INSERT into a view based on the subject table) is -# indeed activated correctly -#Section 3.5.10.2 -# Test case: Ensure that every trigger that should be activated by every -# possible type of implicit insertion into its subject table -# (UPDATE into a view based on the subject table) is indeed -# activated correctly -#Section 3.5.10.3 -# Test case: Ensure that every trigger that should be activated by every -# possible type of implicit insertion into its subject table -# (DELETE from a view based on the subject table) is indeed -# activated correctly -let $message= Testcase 3.5.10.1/2/3:; ---source include/show_msg.inc - - Create view vw11 as select * from tb3 - where f122 like 'Test 3.5.10.1/2/3%'; - Create trigger trg1a before insert on tb3 - for each row set new.f163=111.11; - Create trigger trg1b after insert on tb3 - for each row set @test_var='After Insert'; - Create trigger trg1c before update on tb3 - for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update'; - Create trigger trg1d after update on tb3 - for each row set @test_var='After Update'; - Create trigger trg1e before delete on tb3 - for each row set @test_var=5; - Create trigger trg1f after delete on tb3 - for each row set @test_var= 2* @test_var+7; - -#Section 3.5.10.1 - Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1); - Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2); - Insert into vw11 (f122, f151) values ('Not in View', 3); - select f121, f122, f151, f163 - from tb3 where f122 like 'Test 3.5.10.1/2/3%'; - select f121, f122, f151, f163 from vw11; - select f121, f122, f151, f163 - from tb3 where f122 like 'Not in View'; - -#Section 3.5.10.2 - Update vw11 set f163=1; - select f121, f122, f151, f163 from tb3 - where f122 like 'Test 3.5.10.1/2/3%'; - select f121, f122, f151, f163 from vw11; - -#Section 3.5.10.3 - set @test_var=0; - Select @test_var as 'before delete'; - delete from vw11 where f151=1; - select f121, f122, f151, f163 from tb3 - where f122 like 'Test 3.5.10.1/2/3%'; - select f121, f122, f151, f163 from vw11; - Select @test_var as 'after delete'; - -#Cleanup - --disable_warnings - drop view vw11; - drop trigger trg1a; - drop trigger trg1b; - drop trigger trg1c; - drop trigger trg1d; - drop trigger trg1e; - drop trigger trg1f; - delete from tb3 where f122 like 'Test 3.5.10.1/2/3%'; - --enable_warnings - - -#Section 3.5.10.4 -# Test case: Ensure that every trigger that should be activated by every -# possible type of implicit insertion into its subject table -# (LOAD into the subject table) is indeed activated correctly -let $message= Testcase 3.5.10.4:; ---source include/show_msg.inc - - eval create table tb_load (f1 int, f2 char(25),f3 int) engine=$engine_type; - Create trigger trg4 before insert on tb_load - for each row set new.f3=-(new.f1 div 5), @counter= @counter+1; - - set @counter= 0; - select @counter as 'Rows Loaded Before'; - --replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR - eval load data infile '$MYSQL_TEST_DIR/suite/funcs_1/data/t9.txt' into table tb_load; - - select @counter as 'Rows Loaded After'; - Select * from tb_load limit 10; - -#Cleanup - --disable_warnings - drop trigger trg4; - drop table tb_load; - --enable_warnings - - -#Section 3.5.10.5 -# Testcase: Ensure that every trigger that should be activated by every possible -# type of implicit update of its subject table (e.g.a FOREIGN KEY SET -# DEFAULT action or an UPDATE of a view based on the subject table) is -# indeed activated correctly -let $message= Testcase 3.5.10.5: (implemented in trig_frkey.test); ---source include/show_msg.inc - - -#Section 3.5.10.6 -# Testcase: Ensure that every trigger that should be activated by every possible -# type of implicit deletion from its subject table (e.g.a FOREIGN KEY -# CASCADE action or a DELETE from a view based on the subject table) is -# indeed activated correctly -let $message= Testcase 3.5.10.6: (implemented in trig_frkey.test); ---source include/show_msg.inc - -#Section 3.5.10.extra -# Testcase: Ensure that every trigger that should be activated by every possible -# type of implicit deletion from its subject table (e.g. an action performed -# on the subject table from a stored procedure is indeed activated correctly -let $message= Testcase 3.5.10.extra:; ---source include/show_msg.inc - - eval create table t1_sp (var136 tinyint, var151 decimal) engine=$engine_type; - - create trigger trg before insert on t1_sp - for each row set @counter=@counter+1; - # declare continue handler for sqlstate '01000' set done = 1; - - delimiter //; - create procedure trig_sp() - begin - declare done int default 0; - declare var151 decimal; - declare var136 tinyint; - declare cur1 cursor for select f136, f151 from tb3; - declare continue handler for sqlstate '01000' set done = 1; - open cur1; - fetch cur1 into var136, var151; - wl_loop: WHILE NOT done DO - insert into t1_sp values (var136, var151); - fetch cur1 into var136, var151; - END WHILE wl_loop; - close cur1; - end// - delimiter ;// - - set @counter=0; - select @counter; - --error 1329 - call trig_sp(); - select @counter; - select count(*) from tb3; - select count(*) from t1_sp; - -#Cleanup - --disable_warnings - drop procedure trig_sp; - drop trigger trg; - drop table t1_sp; - --enable_warnings - -################################## -########## Section 3.5.11 ######## -# Check on Trigger Performance # -################################## -#Section 3.5.11.1 -# Testcase: Ensure that a set of complicated, interlocking triggers that are activated -# by multiple trigger events on no fewer than 50 different tables with at least -# 500,000 rows each, all work correctly, return the correct results, and have -# the correct effects on the database. It is expected that the Services Provider -# will use its own skills and experience in database testing to devise tables and -# triggers that fulfill this requirement. -let $message= Testcase 3.5.11.1 (implemented in trig_perf.test); ---source include/show_msg.inc - -# Cleanup section 3.5 - connection default; - drop user test_general@localhost; - drop user test_general; - drop user test_super@localhost; - -########################################## -# Other Scenasrios (not in requirements) # -########################################## -# Testcase: y.y.y.2: -# Checking for triggers starting triggers (no direct requirement) -let $message= Testcase y.y.y.2: Check for triggers starting triggers; ---source include/show_msg.inc - - use test; - --disable_warnings - drop table if exists t1; - drop table if exists t2_1; - drop table if exists t2_2; - drop table if exists t2_3; - drop table if exists t2_4; - drop table if exists t3; - --enable_warnings - - create table t1 (f1 integer); - create table t2_1 (f1 integer); - create table t2_2 (f1 integer); - create table t2_3 (f1 integer); - create table t2_4 (f1 integer); - create table t3 (f1 integer); - - insert into t1 values (1); - delimiter //; - create trigger tr1 after insert on t1 for each row - BEGIN - insert into t2_1 (f1) values (new.f1+1); - insert into t2_2 (f1) values (new.f1+1); - insert into t2_3 (f1) values (new.f1+1); - insert into t2_4 (f1) values (new.f1+1); - END// - delimiter ;// - - create trigger tr2_1 after insert on t2_1 for each row - insert into t3 (f1) values (new.f1+10); - create trigger tr2_2 after insert on t2_2 for each row - insert into t3 (f1) values (new.f1+100); - create trigger tr2_3 after insert on t2_3 for each row - insert into t3 (f1) values (new.f1+1000); - create trigger tr2_4 after insert on t2_4 for each row - insert into t3 (f1) values (new.f1+10000); - -#lock tables t1 write, t2_1 write, t2_2 write, t2_3 write, t2_4 write, t3 write; - insert into t1 values (1); -#unlock tables; - select * from t3; - -#Cleanup - --disable_warnings - drop trigger tr1; - drop trigger tr2_1; - drop trigger tr2_2; - drop trigger tr2_3; - drop trigger tr2_4; - drop table t1, t2_1, t2_2, t2_3, t2_4, t3; - --enable_warnings - -# Testcase: y.y.y.3: -# Checking for circular trigger definitions -let $message= Testcase y.y.y.3: Circular trigger reference; ---source include/show_msg.inc - use test; - --disable_warnings - drop table if exists t1; - drop table if exists t2; - drop table if exists t3; - drop table if exists t4; - --enable_warnings - eval create table t1 (f1 integer) engine = $engine_type; - eval create table t2 (f2 integer) engine = $engine_type; - eval create table t3 (f3 integer) engine = $engine_type; - eval create table t4 (f4 integer) engine = $engine_type; - - insert into t1 values (0); - create trigger tr1 after insert on t1 - for each row insert into t2 (f2) values (new.f1+1); - create trigger tr2 after insert on t2 - for each row insert into t3 (f3) values (new.f2+1); - create trigger tr3 after insert on t3 - for each row insert into t4 (f4) values (new.f3+1); - create trigger tr4 after insert on t4 - for each row insert into t1 (f1) values (new.f4+1); - - # OBN See bug 11896 - --error 1442 - insert into t1 values (1); - select * from t1; - select * from t2; - select * from t3; - select * from t4; - -#Cleanup - --disable_warnings - drop trigger tr1; - drop trigger tr2; - drop trigger tr3; - drop trigger tr4; - drop table t1; - drop table t2; - drop table t3; - drop table t4; - --enable_warnings - - -#Section y.y.y.4 -# Testcase: create recursive trigger/storedprocedures conditions -let $message= Testcase y.y.y.4: Recursive trigger/SP references (disabled bug 11889); ---source include/show_msg.inc - -set @sql_mode='traditional'; - eval create table t1_sp ( - count integer, - var136 tinyint, - var151 decimal) engine=$engine_type; - - delimiter //; - create procedure trig_sp() - begin - declare done int default 0; - declare var151 decimal; - declare var136 tinyint; - declare cur1 cursor for select f136, f151 from tb3; - declare continue handler for sqlstate '01000' set done = 1; - set @counter= @counter+1; - open cur1; - fetch cur1 into var136, var151; - wl_loop: WHILE NOT done DO - insert into t1_sp values (@counter, var136, var151); - fetch cur1 into var136, var151; - END WHILE wl_loop; - close cur1; - end// - delimiter ;// - - create trigger trg before insert on t1_sp - for each row call trig_sp(); - - set @counter=0; - select @counter; - --error 1424 - call trig_sp(); - select @counter; - select count(*) from tb3; - select count(*) from t1_sp; - -#Cleanup - --disable_warnings - drop procedure trig_sp; - drop trigger trg; - drop table t1_sp; - --enable_warnings - - -# Testcase: y.y.y.5: -# Checking rollback of nested trigger definitions -let $message= Testcase y.y.y.5: Roleback of nested trigger references; ---source include/show_msg.inc - - set @@sql_mode='traditional'; - use test; - --disable_warnings - drop table if exists t1; - drop table if exists t2; - drop table if exists t3; - drop table if exists t4; - --enable_warnings - eval create table t1 (f1 integer) engine = $engine_type; - eval create table t2 (f2 integer) engine = $engine_type; - eval create table t3 (f3 integer) engine = $engine_type; - eval create table t4 (f4 tinyint) engine = $engine_type; - show create table t1; - insert into t1 values (1); - create trigger tr1 after insert on t1 - for each row insert into t2 (f2) values (new.f1+1); - create trigger tr2 after insert on t2 - for each row insert into t3 (f3) values (new.f2+1); - create trigger tr3 after insert on t3 - for each row insert into t4 (f4) values (new.f3+1000); - -#lock tables t1 write, t2 write, t3 write, t4 write; - - set autocommit=0; - start transaction; - --error 1264 - insert into t1 values (1); - commit; - select * from t1; - select * from t2; - select * from t3; -#unlock tables; -#Cleanup - --disable_warnings - drop trigger tr1; - drop trigger tr2; - drop trigger tr3; - drop table t1; - drop table t2; - drop table t3; - drop table t4; - --enable_warnings - diff --git a/mysql-test/suite/funcs_1/views/func_view.inc b/mysql-test/suite/funcs_1/views/func_view.inc index c477eafc610..fee9fe190b2 100644 --- a/mysql-test/suite/funcs_1/views/func_view.inc +++ b/mysql-test/suite/funcs_1/views/func_view.inc @@ -3,11 +3,8 @@ # Functions within VIEWs # # # ################################################### -# 14.09.2005 ML +# Created 2005-09-14 mleich -let $message= ! Attention: The file with the expected results suffers from -Bug#10713: mysqldump includes database in create view and referenced tables; ---source include/show_msg80.inc # # 0. Some notes about this test: # ################################################################# @@ -15,9 +12,9 @@ Bug#10713: mysqldump includes database in create view and referenced tables; # 0.1 This test is unfinished and incomplete, but already useful. # ----------------------------------------------------------------- # 0.1.1 There will be architectural changes in future. -# The long sequences with +# The long sequences with # let $col_type= ; -# --source suite/funcs_1/views/ # per every column type do not look very smart. # @@ -42,20 +39,13 @@ Bug#10713: mysqldump includes database in create view and referenced tables; # which was valid during VIEW creation time. This means some variations # of the SQL mode are needed. # 0.1.3 There are much more functions to be tested. -# 0.1.4 There are problems with the option "--ps-protocol". -# Double values with 15 digit mantissa are printed with 14 digit -# mantissa (Bug#11589). -# I altered the Minimum/Maximum double values to 14 digit mantissa -# to avoid these problems. But there are some other unsolved problems -# with "--ps-protocol". ---disable_ps_protocol -# 0.1.5 The result sets of some CAST sub testcases with ugly function parameter +# 0.1.4 The result sets of some CAST sub testcases with ugly function parameter # column data type combinations must be discussed. # # # 0.2 How to valuate the test results: # --------------------------------------------------------------------------- -# Due to the extreme "greedy bug hunting" architecture (combinatorics +# Due to the extreme "greedy bug hunting" architecture (combinatorics # + heavy use of sourced scripts) of the following tests, there will be # - no abort of the test execution, when one statements gets an return # code != 0 (The sub testcases are independend.) @@ -68,13 +58,13 @@ Bug#10713: mysqldump includes database in create view and referenced tables; # But there will be a special messages within the protocol files. # Example: # "Attention: CAST --> SIGNED INTEGER -# The file with expected results suffers from Bug 5083 5913 9809"; +# The file with expected results suffers from Bug 5913"; # means, the file with expected results contains result sets which # are known to be wrong. -# "Attention: The last failed" +# "Attention: The last failed" # means, a statement which should be successful (bugfree MySQL) # failed. -# +# # "Passed" : The behaviour of your MySQL version does not differ from the # version used to generate the files with expected results. # Known bugs affecting these tests could be retrieved by @@ -96,7 +86,7 @@ Bug#10713: mysqldump includes database in create view and referenced tables; # with the suspicious result set or server response. # Now all t1_values records are preloaded. # 2. Start the server without the initial cleanup of databases etc. -# This preserves the content of the table t1_values, which +# This preserves the content of the table t1_values, which # might be needed for replaying the situation. # Example: # ./mysql-test-run.pl --socket=var/tmp/master.sock --start-dirty @@ -157,7 +147,7 @@ Bug#10713: mysqldump includes database in create view and referenced tables; # The script will work with the VIEWs, but omit the simple selects. # The "reject" file contains the view select result sets. # 3. Compare the "reject" files of 1. and 2. within a graphical diff tool. -# +# # --disable_warnings @@ -187,6 +177,7 @@ CREATE TABLE t1_modes --enable_query_log # The table to be used in the FROM parts of the SELECTs +--replace_result $type eval CREATE TABLE t1_values ( id BIGINT AUTO_INCREMENT, @@ -197,7 +188,7 @@ eval CREATE TABLE t1_values ##### BEGIN Basic preparations ####################################### # # 1. Extend t1_values with the columns you need -# - the column name must show the data type +# - the column name must show the data type # - do not add NOT NULL columns # - do not worry if the intended column data type is not # available for some storage engines @@ -229,7 +220,7 @@ ALTER TABLE t1_values ADD my_decimal DECIMAL(64,30); # we do not want to start with "illegal/unexpected/..." values. # Such experiments should be done in other testcases. # Please be careful -# - modifying column values of predefined rows they might change many +# - modifying column values of predefined rows they might change many # result sets # - additional predefined rows should be really useful for the majority of # all sub testcases, since they blow up all result sets. @@ -255,20 +246,18 @@ INSERT INTO t1_values SET my_bigint = -9223372036854775808, my_decimal = -9999999999999999999999999999999999.999999999999999999999999999999 , my_double = -1.7976931348623E+308; -# Note(ML): Values like -# - my_timestamp = '19700101030000' do not work -# - my_double = -1.7976931348623157E+308 cause problems with -# --ps-protocol (Bug#11589) +# shortened due to bug#32285 +# my_double = -1.7976931348623157E+308; # # 2.3 record -- everything to "maximum" # numbers, date/time types -> maximum of range # strings, blobs, binaries -> '<- full length of used data type>' # FIXME enum, set ?? INSERT INTO t1_values SET - my_char_30 = '<--------30 characters------->', + my_char_30 = '<--------30 characters------->', my_varchar_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), - my_binary_30 = '<--------30 characters------->', + my_binary_30 = '<--------30 characters------->', my_varbinary_1000 = CONCAT('<---------1000 characters', RPAD('',965,'-'),'--------->'), my_datetime = '9999-12-31 23:59:59', @@ -279,10 +268,8 @@ INSERT INTO t1_values SET my_bigint = 9223372036854775807, my_decimal = +9999999999999999999999999999999999.999999999999999999999999999999 , my_double = 1.7976931348623E+308; -# Note(ML): Values like -# - my_timestamp = '20380101030000' do not work -# - my_double = 1.7976931348623157E+308 cause problems with -# --ps-protocol (Bug#11589) +# shortened due to bug#32285 +# my_double = -1.7976931348623157E+308; # # 2.4 record -- everything to "magic" value if available or # other interesting value @@ -291,28 +278,28 @@ INSERT INTO t1_values SET # characters and preceeding and trailing spaces # FIXME enum, set ?? INSERT INTO t1_values SET - my_char_30 = ' ---äÖüß@µ*$-- ', - my_varchar_1000 = ' ---äÖüß@µ*$-- ', - my_binary_30 = ' ---äÖüß@µ*$-- ', - my_varbinary_1000 = ' ---äÖüß@µ*$-- ', + my_char_30 = ' ---äÖüß@µ*$-- ', + my_varchar_1000 = ' ---äÖüß@µ*$-- ', + my_binary_30 = ' ---äÖüß@µ*$-- ', + my_varbinary_1000 = ' ---äÖüß@µ*$-- ', my_datetime = '2004-02-29 23:59:59', my_date = '2004-02-29', my_timestamp = '2004-02-29 23:59:59', my_time = '13:00:00', my_year = 2000, - my_bigint = 0, + my_bigint = 0, my_decimal = 0.0, my_double = 0; # # 2.5 record -- everything to "harmless" value if available # numbers -> -1 (logical) -# strings, blobs, binaries -> '-1' useful for numeric functions +# strings, blobs, binaries -> '-1' useful for numeric functions # FIXME enum, set ?? INSERT INTO t1_values SET - my_char_30 = '-1', - my_varchar_1000 = '-1', - my_binary_30 = '-1', - my_varbinary_1000 = '-1', + my_char_30 = '-1', + my_varchar_1000 = '-1', + my_binary_30 = '-1', + my_varbinary_1000 = '-1', my_datetime = '2005-06-28 10:00:00', my_date = '2005-06-28', my_timestamp = '2005-06-28 10:00:00', @@ -330,11 +317,11 @@ INSERT INTO t1_values SET # records which should be used dedicated to the SELECT above # - Please avoid WHERE clauses # - Include the PRIMARY KEY ("id") of the base table t1_values into the -# select column list -# - Include the base table column used as function parameter into the -# select column list, because it is much easier to check the results +# select column list +# - Include the base table column used as function parameter into the +# select column list, because it is much easier to check the results # - Do not forget to escape single quotes -# Example: +# Example: # SET @my_select = 'SELECT sqrt(my_bigint), my_bigint, id FROM t1_values' # SET @my_select = 'SELECT CONCAT(\'A\',my_char_30), id FROM t1_values'; # - Statements, which reveal open crashing bugs MUST be disabled. @@ -347,10 +334,10 @@ INSERT INTO t1_values SET # most preferred function. # This method avoids that we forget a function and gives a better # overview. -# +# # If you have the time to check the result sets do the insert of the # SELECT with function via: -# eval SET @my_select = +# eval SET @my_select = # ''; # --source suite/funcs_1/views/fv1.inc # fv1.inc sets t1_selects.disable_result to 'No' and the effect will be, @@ -358,7 +345,7 @@ INSERT INTO t1_values SET # # If you do have the time to check the result sets do the insert of the # SELECT with function via: -# eval SET @my_select = +# eval SET @my_select = # ''; # --source suite/funcs_1/views/fv2.inc # fv2.inc sets t1_selects.disable_result to 'Yes' and the effect will be, @@ -384,7 +371,7 @@ INSERT INTO t1_values SET # # Example: # The function to be tested is "sqrt". -# The minimum, maximum, default and NULL value are covered by the +# The minimum, maximum, default and NULL value are covered by the # predefined rows. # A value where sqrt() = in strict mathematics # would be of interest. @@ -416,11 +403,11 @@ eval INSERT INTO t1_values SET select_id = @select_id, $col_type = -25; # SELECT * FROM t1_values; -# 1. Cast Functions and Operators -# 1.1. CAST +# 1. Cast Functions and Operators +# 1.1 CAST # # Note(ML): I guess the CAST routines are used in many other functions. -# Therefore check also nearly all "ugly" variants like +# Therefore check also nearly all "ugly" variants like # CAST( AS DECIMAL) here. # # suite/funcs_1/views/fv_cast.inc contains @@ -428,6 +415,7 @@ eval INSERT INTO t1_values SET select_id = @select_id, # # # 1.1.1. CAST --> BINARY +--echo ##### 1.1.1. CAST --> BINARY let $target_type= BINARY; # let $col_type= my_char_30; @@ -457,6 +445,7 @@ let $col_type= my_year; # 1.1.2. CAST --> CHAR +--echo ##### 1.1.2. CAST --> CHAR let $target_type= CHAR; # let $col_type= my_char_30; @@ -486,6 +475,7 @@ let $col_type= my_year; # 1.1.3. CAST --> DATE +--echo ##### 1.1.3. CAST --> DATE let $target_type= DATE; # let $col_type= my_char_30; @@ -525,6 +515,7 @@ let $col_type= my_year; # 1.1.4. CAST --> DATETIME +--echo ##### 1.1.4. CAST --> DATETIME let $target_type= DATETIME; # let $col_type= my_char_30; @@ -564,6 +555,7 @@ let $col_type= my_year; # 1.1.5. CAST --> TIME +--echo ##### 1.1.5. CAST --> TIME let $target_type= TIME; # let $col_type= my_char_30; @@ -587,15 +579,10 @@ let $col_type= my_bigint; eval INSERT INTO t1_values SET select_id = @select_id, $col_type = 1758; let $col_type= my_double; -let $message= some statements disabled because of -Bug#12440: CAST(data type DOUBLE AS TIME) strange results; ---source include/show_msg80.inc -if (0) -{ +# Bug#12440: CAST(data type DOUBLE AS TIME) strange results; --source suite/funcs_1/views/fv_cast.inc eval INSERT INTO t1_values SET select_id = @select_id, $col_type = +1.758E+3; -} let $col_type= my_datetime; --source suite/funcs_1/views/fv_cast.inc let $col_type= my_date; @@ -609,6 +596,7 @@ let $col_type= my_year; # 1.1.6. CAST --> DECIMAL +--echo ##### 1.1.6. CAST --> DECIMAL # Set the following to (37,2) since the default was changed to (10,0) - OBN let $target_type= DECIMAL(37,2); # @@ -632,16 +620,11 @@ let $col_type= my_bigint; --source suite/funcs_1/views/fv_cast.inc let $col_type= my_decimal; --source suite/funcs_1/views/fv_cast.inc -let $message= some statements disabled because of -Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian; ---source include/show_msg80.inc -if (0) -{ +# Bug#13349: CAST(1.0E+300 TO DECIMAL) returns wrong result + diff little/big endian; let $col_type= my_double; --source suite/funcs_1/views/fv_cast.inc eval INSERT INTO t1_values SET select_id = @select_id, $col_type = -0.33333333E+4; -} let $col_type= my_datetime; --source suite/funcs_1/views/fv_cast.inc let $col_type= my_date; @@ -655,15 +638,13 @@ let $col_type= my_year; # 1.1.7. CAST --> SIGNED INTEGER +--echo ##### 1.1.7. CAST --> SIGNED INTEGER let $target_type= SIGNED INTEGER; # -let $message= +let $message= "Attention: CAST --> SIGNED INTEGER - The file with expected results suffers from - Bug#5083 Big integer values are inserted as negative into - decimal/string columns Bug#5913 Traditional mode: BIGINT range not correctly delimited - Both have the status: To be fixed later"; + Status: To be fixed later"; --source include/show_msg80.inc let $col_type= my_char_30; --source suite/funcs_1/views/fv_cast.inc @@ -677,14 +658,9 @@ let $col_type= my_bigint; --source suite/funcs_1/views/fv_cast.inc let $col_type= my_decimal; --source suite/funcs_1/views/fv_cast.inc -let $message= some statements disabled because of -Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result; ---source include/show_msg80.inc -if (0) -{ +# Bug #13344: CAST(1E+300 TO signed int) on little endian CPU, wrong result; let $col_type= my_double; --source suite/funcs_1/views/fv_cast.inc -} let $col_type= my_datetime; --source suite/funcs_1/views/fv_cast.inc let $col_type= my_date; @@ -698,11 +674,12 @@ let $col_type= my_year; # 1.1.8. CAST --> UNSIGNED INTEGER +--echo ##### 1.1.8. CAST --> UNSIGNED INTEGER let $target_type= UNSIGNED INTEGER; # -let $message= +let $message= "Attention: CAST --> UNSIGNED INTEGER - The file with expected results suffers from Bug 5083 5913 9809"; + The file with expected results suffers from Bug 5913"; --source include/show_msg80.inc let $col_type= my_char_30; --source suite/funcs_1/views/fv_cast.inc @@ -717,13 +694,11 @@ let $col_type= my_bigint; let $col_type= my_decimal; --source suite/funcs_1/views/fv_cast.inc let $message= some statements disabled because of -Bugs#8663: cant use bgint unsigned as input to cast; +Bug#5913 Traditional mode: BIGINT range not correctly delimited; --source include/show_msg80.inc -if (0) -{ +# Bug#8663 cant use bgint unsigned as input to cast let $col_type= my_double; --source suite/funcs_1/views/fv_cast.inc -} let $col_type= my_datetime; --source suite/funcs_1/views/fv_cast.inc let $col_type= my_date; @@ -748,38 +723,38 @@ let $col_type= my_year; let $target_charset= utf8; # let $col_type= my_char_30; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_varchar_1000; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_binary_30; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_varbinary_1000; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc # # 1.3.2 CONVERT(expr USING koi8r) let $target_charset= koi8r; let $col_type= my_char_30; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_varchar_1000; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_binary_30; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_varbinary_1000; -eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), +eval SET @my_select = 'SELECT CONVERT($col_type USING $target_charset), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc @@ -787,7 +762,7 @@ $col_type, id FROM t1_values'; # 2. Control Flow Functions # 2.1. CASE value WHEN [compare-value] THEN result [WHEN ...] [ELSE result] # END or -# CASE WHEN [condition] THEN result [WHEN ...] [ELSE result] END +# CASE WHEN [condition] THEN result [WHEN ...] [ELSE result] END # # FIXME: to be implemented # @@ -848,11 +823,6 @@ let $col_type= my_year; # select if(isnull(`test`.`t1`.`f1`),_latin1'IS NULL', # _latin1'IS NOT NULL'),... # -let $message= -"Attention: IF($col_type IS NULL, ... - The file with expected results suffers from - Bug#11689. successful CREATE VIEW but SELECT on view fails."; ---source include/show_msg80.inc # Bug#11689 success on Create view .. IF(col1 IS NULL,...), col2 ; but SELECT fails let $col_type= my_char_30; --source suite/funcs_1/views/fv_if2.inc @@ -891,7 +861,7 @@ let $col_type= my_year; --source suite/funcs_1/views/fv_if2.inc -# 2.3. IFNULL(expr1,expr2) +# 2.3. IFNULL(expr1,expr2) # If expr1 is not NULL, IFNULL() returns expr1, else it returns expr2. # # suite/funcs_1/views/fv_ifnull.inc contains @@ -942,7 +912,7 @@ let $col_type= my_year; # 2.4. NULLIF(expr1,expr2) # Returns NULL if expr1 = expr2 is true, else returns expr1. -# This is the same as +# This is the same as # CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END. # # FIXME: to be implemented @@ -979,11 +949,11 @@ $col_type, id FROM t1_values'; # 3.5. CHAR_LENGTH(str) # 3.6 CHARACTER_LENGTH(str) # CHARACTER_LENGTH() is a synonym for CHAR_LENGTH(). -# 3.7. COMPRESS(string_to_compress) +# 3.7. COMPRESS(string_to_compress) # 3.8. CONCAT(str1,str2,...) # 3.9. CONCAT_WS(separator,str1,str2,...) # 3.10. CONV(N,from_base,to_base) -# 3.11. ELT(N,str1,str2,str3,...) +# 3.11. ELT(N,str1,str2,str3,...) # 3.12. EXPORT_SET(bits,on,off[,separator[,number_of_bits]]) # 3.13. FIELD(str,str1,str2,str3,...) # 3.14. FIND_IN_SET(str,strlist) @@ -1011,55 +981,38 @@ $col_type, id FROM t1_values'; # 3.19. LEFT(str,len) -# Returns the leftmost len characters from the string str. +# Returns the leftmost len characters from the string str. let $col_type= my_char_30; -eval SET @my_select = +eval SET @my_select = 'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_varchar_1000; -eval SET @my_select = +eval SET @my_select = 'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_binary_30; -eval SET @my_select = +eval SET @my_select = 'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc let $col_type= my_varbinary_1000; -eval SET @my_select = +eval SET @my_select = 'SELECT LEFT($col_type, 2), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc -# -let $message= -"Attention: LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', ) - The file with expected results suffers from Bug 10963 11728" - and the testcases with length = BIGINT or DOUBLE column are deactivated, - because there are 32/64 Bit differences; ---source include/show_msg80.inc # Bug#11728 string function LEFT, strange undocumented behaviour, strict mode # Bug#10963 LEFT string function returns wrong result with large length let $col_type= my_bigint; -if (0) -{ -# Bug#10963 LEFT string function returns wrong result with large length -eval SET @my_select = +eval SET @my_select = 'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', $col_type), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc -} -# let $col_type= my_decimal; eval SET @my_select = 'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', $col_type), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc -# -if (0) -{ # Bug#10963 LEFT string function returns wrong result with large length let $col_type= my_double; eval SET @my_select = 'SELECT LEFT(''AaBbCcDdEeFfGgHhIiJjÄäÜüÖö'', $col_type), $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv1.inc -} - # 3.20. LENGTH(str) let $col_type= my_char_30; @@ -1085,8 +1038,11 @@ $col_type, id FROM t1_values'; # If the file doesn't exist or cannot be read ... , # the function returns NULL. # SELECT LOADFILE -eval SET @my_select = -'SELECT LOAD_FILE(''../log/current_test''), id FROM t1_values'; +--replace_result $MYSQLTEST_VARDIR +eval SET @my_select = +'SELECT LOAD_FILE(''$MYSQLTEST_VARDIR/std_data_ln/funcs_1/load_file.txt'') + AS my_col, + id FROM t1_values'; --source suite/funcs_1/views/fv1.inc @@ -1253,8 +1209,8 @@ $col_type, id FROM t1_values'; --source suite/funcs_1/views/fv2.inc -# 3.26. MAKE_SET(bits,str1,str2,...) -# ..... +# 3.26. MAKE_SET(bits,str1,str2,...) +# ..... # FIXME: to be implemented ################################################################################ @@ -1278,6 +1234,7 @@ SET sql_mode = ''; # let $message= "# The basic preparations end and the main test starts here"; --source include/show_msg80.inc +--disable_ps_protocol ##### The tests start here ##################################################### @@ -1306,18 +1263,18 @@ while ($select_id) if ($view_select_result) { # Create the VIEW + --replace_result $MYSQLTEST_VARDIR eval CREATE VIEW v1 AS $my_select; --disable_query_log eval set @got_errno= $mysql_errno ; let $run0= `SELECT @got_errno = 0`; - let $print_warning= `SELECT @got_errno`; - if ($print_warning) - { - SELECT 'Attention: The last CREATE VIEW failed ' AS "" - UNION - SELECT '' ; - } --enable_query_log + if (!$run0) + { + --echo + --echo Attention: The last CREATE VIEW failed + --echo + } } # FIXME The loop over the modes will start here. @@ -1325,27 +1282,24 @@ while ($select_id) if ($simple_select_result) { # Simple SELECT on the base table of the VIEW for comparison - + if ($run_no_result) { --disable_result_log } + --replace_result $MYSQLTEST_VARDIR eval $my_select - WHERE select_id = $select_id OR select_id IS NULL; + WHERE select_id = $select_id OR select_id IS NULL order by id; if ($run_no_result) { --enable_result_log } - --disable_query_log - eval set @got_errno= $mysql_errno ; - let $print_warning= `SELECT @got_errno`; - if ($print_warning) + if ($mysql_errno) { - SELECT 'Attention: The last SELECT on the base table failed' AS "" - UNION - SELECT '' ; + --echo + --echo Attention: The last SELECT on the base table failed + --echo } - --enable_query_log } # $run0 is 1, if CREATE VIEW was successful. @@ -1353,17 +1307,14 @@ while ($select_id) if ($run0) { # Check the CREATE VIEW statement + --replace_result $MYSQLTEST_VARDIR SHOW CREATE VIEW v1; - --disable_query_log - eval set @got_errno= $mysql_errno ; - let $print_warning= `SELECT @got_errno`; - if ($print_warning) + if ($mysql_errno) { - SELECT 'Attention: The last SHOW CREATE VIEW failed' AS "" - UNION - SELECT '' ; + --echo + --echo Attention: The last SHOW CREATE VIEW failed + --echo } - --enable_query_log # Maybe a Join is faster if ($run_no_result) @@ -1372,21 +1323,17 @@ while ($select_id) } eval SELECT v1.* FROM v1 WHERE v1.id IN (SELECT id FROM t1_values - WHERE select_id = $select_id OR select_id IS NULL); + WHERE select_id = $select_id OR select_id IS NULL) order by id; if ($run_no_result) { --enable_result_log } - --disable_query_log - eval set @got_errno= $mysql_errno ; - let $print_warning= `SELECT @got_errno`; - if ($print_warning) + if ($mysql_errno) { - SELECT 'Attention: The last SELECT from VIEW failed' AS "" - UNION - SELECT '' ; + --echo + --echo Attention: The last SELECT from VIEW failed + --echo } - --enable_query_log DROP VIEW v1; } @@ -1395,11 +1342,12 @@ while ($select_id) # Produce two empty lines as separator between different SELECTS # to be tested. - --disable_query_log - SELECT '' AS ""; - --enable_query_log + --echo + --echo dec $select_id ; } +--enable_ps_protocol + DROP TABLE t1_selects, t1_modes, t1_values; diff --git a/mysql-test/suite/funcs_1/views/views_master.inc b/mysql-test/suite/funcs_1/views/views_master.inc index f08082676ed..b6628070705 100644 --- a/mysql-test/suite/funcs_1/views/views_master.inc +++ b/mysql-test/suite/funcs_1/views/views_master.inc @@ -4,7 +4,7 @@ # 2007-10-05 mleich # 1. Fix for Bug#31237 Test "ndb_views" fails because of differing order ... # 2. Cleanup of test -# 2007-11-15 hhunger WL#4084: Review and fix all disabled tests ... +# 2007-11-15 hhunger WL#4084: Review and fix all disabled tests ... let $message= ! Attention: The file with the expected results is not | thoroughly checked. @@ -19,7 +19,7 @@ let $message= ! Attention: The file with the expected results is not # If this bug is fixed, please # 1. set the following variable to 0 # 2. check, if the test passes -# 3. remove the workarounds +# 3. remove the workarounds let $have_bug_32285= 1; if ($have_bug_32285) { @@ -2004,7 +2004,7 @@ let $message= Testcase 3.3.1.49A ; # The annoying redundant # eval INSERT INTO t1_results VALUES (@v3_to_v1_options,@statement, # @v3_to_v1_violation,$mysql_errno); -# could not be put into a file to be sourced because of the closed +# could not be put into a file to be sourced because of the closed # Bug#10267 mysqltest, wrong number of loops when a script is sourced # within a loop # To be implemented later. From edc7090a5a6dc08c31b0f79e68319860542a716f Mon Sep 17 00:00:00 2001 From: "mkindahl@dl145h.mysql.com" <> Date: Tue, 1 Apr 2008 12:29:53 +0200 Subject: [PATCH 131/139] Post-merge fixes. --- mysql-test/r/binlog_index.result | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/r/binlog_index.result b/mysql-test/r/binlog_index.result index 9c22a33435a..82fc26092f4 100644 --- a/mysql-test/r/binlog_index.result +++ b/mysql-test/r/binlog_index.result @@ -9,7 +9,7 @@ master-bin.000003 # master-bin.000004 # purge binary logs TO 'master-bin.000004'; Warnings: -Warning 1476 Being purged log MYSQLTEST_VARDIR/log/master-bin.000001 was not found +Warning 1477 Being purged log MYSQLTEST_VARDIR/log/master-bin.000001 was not found *** must show a list starting from the 'TO' argument of PURGE *** show binary logs; Log_name File_size @@ -20,7 +20,7 @@ flush logs; flush logs; *** must be a warning master-bin.000001 was not found *** Warnings: -Warning 1476 Being purged log MYSQLTEST_VARDIR/log/master-bin.000001 was not found +Warning 1477 Being purged log MYSQLTEST_VARDIR/log/master-bin.000001 was not found *** must show one record, of the active binlog, left in the index file after PURGE *** show binary logs; Log_name File_size From 7a9f12e1c47fe85e4cae638ac5fb9180e2e83dcf Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Tue, 1 Apr 2008 12:26:12 -0400 Subject: [PATCH 132/139] Test updated. --- mysql-test/r/type_blob.result | 1 + 1 file changed, 1 insertion(+) diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result index 599a2224472..84f2d815bdd 100644 --- a/mysql-test/r/type_blob.result +++ b/mysql-test/r/type_blob.result @@ -807,6 +807,7 @@ set @@sql_mode='TRADITIONAL'; create table t1 (a text default ''); ERROR 42000: BLOB/TEXT column 'a' can't have a default value set @@sql_mode=''; +drop table if exists b15776; create table b15776 (data blob(2147483647)); drop table b15776; create table b15776 (data blob(-1)); From c01918948c4d0ce6d3938b87503d1d904c23bfcf Mon Sep 17 00:00:00 2001 From: "mleich@five.local.lan" <> Date: Wed, 2 Apr 2008 19:47:20 +0200 Subject: [PATCH 133/139] Correct the location of the directory for "funcs_1" data load --- mysql-test/Makefile.am | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am index c11b8e0d5fe..a53075ef81c 100644 --- a/mysql-test/Makefile.am +++ b/mysql-test/Makefile.am @@ -46,7 +46,7 @@ dist-hook: $(distdir)/std_data \ $(distdir)/std_data/ndb_backup50_data_be $(distdir)/std_data/ndb_backup50_data_le \ $(distdir)/lib \ - $(distdir)/funcs_1 + $(distdir)/std_data/funcs_1 -$(INSTALL_DATA) $(srcdir)/t/*.def $(distdir)/t $(INSTALL_DATA) $(srcdir)/t/*.test $(distdir)/t -$(INSTALL_DATA) $(srcdir)/t/*.imtest $(distdir)/t @@ -80,7 +80,7 @@ install-data-local: $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_be \ $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_le \ $(DESTDIR)$(testdir)/lib \ - $(DESTDIR)$(testdir)/funcs_1 + $(DESTDIR)$(testdir)/std_data/funcs_1 $(INSTALL_DATA) $(srcdir)/README $(DESTDIR)$(testdir) -$(INSTALL_DATA) $(srcdir)/t/*.def $(DESTDIR)$(testdir)/t $(INSTALL_DATA) $(srcdir)/t/*.test $(DESTDIR)$(testdir)/t From 9ff7a0cedca7b92b5c16f282e52e83460a6d7092 Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Thu, 3 Apr 2008 11:32:00 -0400 Subject: [PATCH 134/139] Bug#26294: library name conflict between MySQL 4.x, 5.0 and Qt 3.3 When linking with some external programs, "multiple definition of `init_time'" Rename init_time() to my_init_time() to avoid collision with other libraries (particularly libmng). --- client/mysqlbinlog.cc | 2 +- include/my_time.h | 2 +- sql-common/my_time.c | 6 +++--- sql/init.cc | 2 +- sql/tztime.cc | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc index b4086b59c01..f0a4c8d2abf 100644 --- a/client/mysqlbinlog.cc +++ b/client/mysqlbinlog.cc @@ -1474,7 +1474,7 @@ int main(int argc, char** argv) DBUG_ENTER("main"); DBUG_PROCESS(argv[0]); - init_time(); // for time functions + my_init_time(); // for time functions parse_args(&argc, (char***)&argv); defaults_argv=argv; diff --git a/include/my_time.h b/include/my_time.h index 99eb5c36c6b..014327d6fd8 100644 --- a/include/my_time.h +++ b/include/my_time.h @@ -94,7 +94,7 @@ long calc_daynr(uint year,uint month,uint day); uint calc_days_in_year(uint year); uint year_2000_handling(uint year); -void init_time(void); +void my_init_time(void); /* diff --git a/sql-common/my_time.c b/sql-common/my_time.c index ecc5aaf8af2..1781251fca1 100644 --- a/sql-common/my_time.c +++ b/sql-common/my_time.c @@ -704,9 +704,9 @@ int check_time_range(struct st_mysql_time *my_time, int *warning) Prepare offset of system time zone from UTC for my_system_gmt_sec() func. SYNOPSIS - init_time() + my_init_time() */ -void init_time(void) +void my_init_time(void) { time_t seconds; struct tm *l_time,tm_tmp; @@ -795,7 +795,7 @@ long calc_daynr(uint year,uint month,uint day) NOTES The idea is to cache the time zone offset from UTC (including daylight saving time) for the next call to make things faster. But currently we - just calculate this offset during startup (by calling init_time() + just calculate this offset during startup (by calling my_init_time() function) and use it all the time. Time value provided should be legal time value (e.g. '2003-01-01 25:00:00' is not allowed). diff --git a/sql/init.cc b/sql/init.cc index b3b68926683..2dd2031cdaa 100644 --- a/sql/init.cc +++ b/sql/init.cc @@ -30,7 +30,7 @@ void unireg_init(ulong options) wild_many='%'; wild_one='_'; wild_prefix='\\'; /* Change to sql syntax */ current_pid=(ulong) getpid(); /* Save for later ref */ - init_time(); /* Init time-functions (read zone) */ + my_init_time(); /* Init time-functions (read zone) */ #ifndef EMBEDDED_LIBRARY my_abort_hook=unireg_abort; /* Abort with close of databases */ #endif diff --git a/sql/tztime.cc b/sql/tztime.cc index bedbf921cae..2b951c4b061 100644 --- a/sql/tztime.cc +++ b/sql/tztime.cc @@ -1035,7 +1035,7 @@ public: return lowest possible my_time_t in case of ambiguity or if we provide time corresponding to the time-gap. - You should call init_time() function before using this function. + You should call my_init_time() function before using this function. RETURN VALUE Corresponding my_time_t value or 0 in case of error @@ -2757,7 +2757,7 @@ main(int argc, char **argv) } printf("gmt_sec_to_TIME = localtime for time_t in [1000000000,1100000000) range\n"); - init_time(); + my_init_time(); /* Be careful here! my_system_gmt_sec doesn't fully handle unnormalized From 7498f9e6b8ea62f1bf8b68fdd68856d3be3394c5 Mon Sep 17 00:00:00 2001 From: "mleich@five.local.lan" <> Date: Fri, 4 Apr 2008 17:41:14 +0200 Subject: [PATCH 135/139] Backport of fix made in 5.1 to 5.0 mysql-test/Makefile.am : Fix a copy-paste error ... --- mysql-test/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am index a53075ef81c..0dee970cd58 100644 --- a/mysql-test/Makefile.am +++ b/mysql-test/Makefile.am @@ -106,7 +106,7 @@ install-data-local: $(INSTALL_DATA) $(srcdir)/std_data/*.cnf $(DESTDIR)$(testdir)/std_data $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_be/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_be $(INSTALL_DATA) $(srcdir)/std_data/ndb_backup50_data_le/BACKUP* $(DESTDIR)$(testdir)/std_data/ndb_backup50_data_le - $(INSTALL_DATA) $(srcdir)/std_data/funcs_1/* $(distdir)/std_data/funcs_1 + $(INSTALL_DATA) $(srcdir)/std_data/funcs_1/* $(DESTDIR)$(testdir)/std_data/funcs_1 $(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib for f in `(cd $(srcdir); find suite -type f | grep -v SCCS)`; \ do \ From 3e2457b71a902039d2edfbcd5ce2df01c04d1713 Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Wed, 9 Apr 2008 12:27:30 -0400 Subject: [PATCH 136/139] Follow-up to B-g#15776, test failures on 64-bit linux. Make maximum blob size to be 2**32-1, regardless of word size. Fix failure of timestamp with size of 2**31-1. The method of rounding up to the nearest even number would overflow. --- mysql-test/r/type_blob.result | 6 +++++- mysql-test/t/type_blob.test | 4 +++- sql/field.cc | 24 +++++++++++++++++------- sql/unireg.h | 2 +- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/mysql-test/r/type_blob.result b/mysql-test/r/type_blob.result index 84f2d815bdd..4c9ee9b84e3 100644 --- a/mysql-test/r/type_blob.result +++ b/mysql-test/r/type_blob.result @@ -880,9 +880,13 @@ Warnings: Warning 1287 'TIMESTAMP(4294967294)' is deprecated; use 'TIMESTAMP' instead DROP TABLE b15776; CREATE TABLE b15776 (a timestamp(4294967295)); -ERROR 42000: Display width out of range for column 'a' (max = 255) +Warnings: +Warning 1287 'TIMESTAMP(4294967295)' is deprecated; use 'TIMESTAMP' instead +DROP TABLE b15776; CREATE TABLE b15776 (a timestamp(4294967296)); ERROR 42000: Display width out of range for column 'a' (max = 4294967295) +CREATE TABLE b15776 (a timestamp(-1)); +ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1))' at line 1 CREATE TABLE b15776 (a timestamp(-2)); ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-2))' at line 1 CREATE TABLE b15776 (a int(999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999)); diff --git a/mysql-test/t/type_blob.test b/mysql-test/t/type_blob.test index ad578a18979..d7af7c40d23 100644 --- a/mysql-test/t/type_blob.test +++ b/mysql-test/t/type_blob.test @@ -528,11 +528,13 @@ CREATE TABLE b15776 (a year(-2)); ## For timestamp, we silently rewrite widths to 14 or 19. CREATE TABLE b15776 (a timestamp(4294967294)); DROP TABLE b15776; ---error ER_TOO_BIG_DISPLAYWIDTH CREATE TABLE b15776 (a timestamp(4294967295)); +DROP TABLE b15776; --error ER_TOO_BIG_DISPLAYWIDTH CREATE TABLE b15776 (a timestamp(4294967296)); --error ER_PARSE_ERROR +CREATE TABLE b15776 (a timestamp(-1)); +--error ER_PARSE_ERROR CREATE TABLE b15776 (a timestamp(-2)); diff --git a/sql/field.cc b/sql/field.cc index 2950f349580..99b61ec1ee0 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -6848,6 +6848,7 @@ uint32 Field_blob::get_length(const char *pos) return (uint32) tmp; } } + /* When expanding this, see also MAX_FIELD_BLOBLENGTH. */ return 0; // Impossible } @@ -8395,11 +8396,11 @@ bool create_field::init(THD *thd, char *fld_name, enum_field_types fld_type, (fld_type_modifier & NOT_NULL_FLAG) && fld_type != FIELD_TYPE_TIMESTAMP) flags|= NO_DEFAULT_VALUE_FLAG; - if (fld_length != 0) + if (fld_length != NULL) { errno= 0; length= strtoul(fld_length, NULL, 10); - if (errno != 0) + if ((errno != 0) || (length > MAX_FIELD_BLOBLENGTH)) { my_error(ER_TOO_BIG_DISPLAYWIDTH, MYF(0), fld_name, MAX_FIELD_BLOBLENGTH); DBUG_RETURN(TRUE); @@ -8556,7 +8557,7 @@ bool create_field::init(THD *thd, char *fld_name, enum_field_types fld_type, } break; case FIELD_TYPE_TIMESTAMP: - if (!fld_length) + if (fld_length == NULL) { /* Compressed date YYYYMMDDHHMMSS */ length= MAX_DATETIME_COMPRESSED_WIDTH; @@ -8565,12 +8566,21 @@ bool create_field::init(THD *thd, char *fld_name, enum_field_types fld_type, { /* We support only even TIMESTAMP lengths less or equal than 14 - and 19 as length of 4.1 compatible representation. + and 19 as length of 4.1 compatible representation. Silently + shrink it to MAX_DATETIME_COMPRESSED_WIDTH. */ - length= ((length+1)/2)*2; /* purecov: inspected */ - length= min(length, MAX_DATETIME_COMPRESSED_WIDTH); /* purecov: inspected */ + DBUG_ASSERT(MAX_DATETIME_COMPRESSED_WIDTH < UINT_MAX); + if (length != UINT_MAX) /* avoid overflow; is safe because of min() */ + length= ((length+1)/2)*2; + length= min(length, MAX_DATETIME_COMPRESSED_WIDTH); } flags|= ZEROFILL_FLAG | UNSIGNED_FLAG; + /* + Since we silently rewrite down to MAX_DATETIME_COMPRESSED_WIDTH bytes, + the parser should not raise errors unless bizzarely large. + */ + max_field_charlength= UINT_MAX; + if (fld_default_value) { /* Grammar allows only NOW() value for ON UPDATE clause */ @@ -8677,7 +8687,7 @@ bool create_field::init(THD *thd, char *fld_name, enum_field_types fld_type, ((length > max_field_charlength && fld_type != FIELD_TYPE_SET && fld_type != FIELD_TYPE_ENUM && (fld_type != MYSQL_TYPE_VARCHAR || fld_default_value)) || - (!length && + ((length == 0) && fld_type != MYSQL_TYPE_STRING && fld_type != MYSQL_TYPE_VARCHAR && fld_type != FIELD_TYPE_GEOMETRY))) { diff --git a/sql/unireg.h b/sql/unireg.h index 0ab2a40048b..24e57b4e584 100644 --- a/sql/unireg.h +++ b/sql/unireg.h @@ -60,7 +60,7 @@ #define MAX_MBWIDTH 3 /* Max multibyte sequence */ #define MAX_FIELD_CHARLENGTH 255 #define MAX_FIELD_VARCHARLENGTH 65535 -#define MAX_FIELD_BLOBLENGTH UINT_MAX +#define MAX_FIELD_BLOBLENGTH UINT_MAX32 /* cf field_blob::get_length() */ #define CONVERT_IF_BIGGER_TO_BLOB 512 /* Used for CREATE ... SELECT */ /* Max column width +1 */ From 82d8a99c057f51b72a1b0a0a386ef69209947b9c Mon Sep 17 00:00:00 2001 From: "cmiller@zippy.cornsilk.net" <> Date: Thu, 10 Apr 2008 15:55:37 -0400 Subject: [PATCH 137/139] Fix mismerge. --- sql/field.cc | 2 +- sql/item_create.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/field.cc b/sql/field.cc index 91f356988e4..18bb7153060 100644 --- a/sql/field.cc +++ b/sql/field.cc @@ -8615,7 +8615,7 @@ bool create_field::init(THD *thd, char *fld_name, enum_field_types fld_type, and 19 as length of 4.1 compatible representation. Silently shrink it to MAX_DATETIME_COMPRESSED_WIDTH. */ - DBUG_ASSERT(MAX_DATETIME_COMPRESSED_WIDTH < UINT_MAX); + DBUG_ASSERT(MAX_DATETIME_COMPRESSED_WIDTH < UINT_MAX); if (length != UINT_MAX) /* avoid overflow; is safe because of min() */ length= ((length+1)/2)*2; length= min(length, MAX_DATETIME_COMPRESSED_WIDTH); diff --git a/sql/item_create.cc b/sql/item_create.cc index 6f3608b6b9a..c897b7aef79 100644 --- a/sql/item_create.cc +++ b/sql/item_create.cc @@ -531,7 +531,7 @@ Item *create_func_cast(Item *a, Cast_target cast_type, ulong decoded_size; errno= 0; decoded_size= strtoul(c_len, NULL, 10); - if (errno != 0) + if ((errno != 0) || (decoded_size > MAX_FIELD_BLOBLENGTH)) { my_error(ER_TOO_BIG_DISPLAYWIDTH, MYF(0), "cast as char", MAX_FIELD_BLOBLENGTH); return NULL; From c29de2c3a5561f32a2f7f3ff09b2efa5c4b31a20 Mon Sep 17 00:00:00 2001 From: "joerg@trift2." <> Date: Thu, 17 Apr 2008 18:41:23 +0200 Subject: [PATCH 138/139] Fix for Bug #34291 compile-amd64-debug-max-no-ndb missing Include several "BUILD/compile-*" files in a source tarball ("make dist" target) which might be useful to community users who want to build from source. When merging this up, the "BUILD/compile-*" file list needs to be checked. --- BUILD/Makefile.am | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/BUILD/Makefile.am b/BUILD/Makefile.am index d06106d4431..ee0f07864e8 100644 --- a/BUILD/Makefile.am +++ b/BUILD/Makefile.am @@ -27,6 +27,8 @@ EXTRA_DIST = FINISH.sh \ compile-alpha-cxx \ compile-alpha-debug \ compile-amd64-debug-max \ + compile-amd64-gcov \ + compile-amd64-gprof \ compile-amd64-max \ compile-amd64-max-sci \ compile-darwin-mwcc \ @@ -54,6 +56,8 @@ EXTRA_DIST = FINISH.sh \ compile-pentium-valgrind-max \ compile-pentium64-debug \ compile-pentium64-debug-max \ + compile-pentium64-gcov \ + compile-pentium64-gprof \ compile-pentium64-max-sci \ compile-pentium64-valgrind-max \ compile-ppc \ @@ -61,6 +65,10 @@ EXTRA_DIST = FINISH.sh \ compile-ppc-debug-max \ compile-ppc-debug-max-no-ndb \ compile-ppc-max \ + compile-solaris-amd64 \ + compile-solaris-amd64-debug \ + compile-solaris-amd64-forte \ + compile-solaris-amd64-forte-debug \ compile-solaris-sparc \ compile-solaris-sparc-debug \ compile-solaris-sparc-forte \ From 2b104da994eb36f6043771cb6591d369219b00f5 Mon Sep 17 00:00:00 2001 From: "kent/mysqldev@mysql.com/production.mysql.com" <> Date: Wed, 23 Apr 2008 20:54:53 +0200 Subject: [PATCH 139/139] Raise version number after cloning 5.0.60 --- configure.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 9c35dbcc7c7..d40df7b7895 100644 --- a/configure.in +++ b/configure.in @@ -7,7 +7,7 @@ AC_INIT(sql/mysqld.cc) AC_CANONICAL_SYSTEM # The Docs Makefile.am parses this line! # remember to also change ndb version below and update version.c in ndb -AM_INIT_AUTOMAKE(mysql, 5.0.60) +AM_INIT_AUTOMAKE(mysql, 5.0.62) AM_CONFIG_HEADER([include/config.h:config.h.in]) PROTOCOL_VERSION=10 @@ -23,7 +23,7 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0 # ndb version NDB_VERSION_MAJOR=5 NDB_VERSION_MINOR=0 -NDB_VERSION_BUILD=60 +NDB_VERSION_BUILD=62 NDB_VERSION_STATUS="" # Set all version vars based on $VERSION. How do we do this more elegant ?